* [bug#66870] [PATCH 0/6] gnu: Add yabridge. @ 2023-11-01 9:07 Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 1/6] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via ` (9 more replies) 0 siblings, 10 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-01 9:07 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki This series of patches adds yabridge. Sughosha (6): gnu: asio: Update to 1.28.0. gnu: Add bitsery. gnu: Add function2. gnu: Add tomlplusplus. gnu: Add clap. gnu: Add yabridge. gnu/local.mk | 2 + gnu/packages/audio.scm | 151 ++++++++++++++ gnu/packages/cpp.scm | 79 ++++++++ gnu/packages/networking.scm | 6 +- ...3sdk-3.7.7-allow-winelib-compilation.patch | 191 ++++++++++++++++++ .../patches/yabridge-5.0.4-dependencies.patch | 36 ++++ 6 files changed, 462 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch create mode 100644 gnu/packages/patches/yabridge-5.0.4-dependencies.patch base-commit: c0895371c5759c7d9edb330774e90f192cc4cf2c -- 2.41.0 ^ permalink raw reply [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH 1/6] gnu: asio: Update to 1.28.0. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via @ 2023-11-01 9:09 ` Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 2/6] gnu: Add bitsery Sughosha via Guix-patches via ` (8 subsequent siblings) 9 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-01 9:09 UTC (permalink / raw) To: 66870; +Cc: Sughosha From: Sughosha <sughosha@proton.me> * gnu/packages/networking.scm (asio): Update to 1.28.0. --- gnu/packages/networking.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 86309e4ab3..1d50025d83 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -3412,14 +3412,14 @@ (define-public can-utils (define-public asio (package (name "asio") - (version "1.22.2") + (version "1.28.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asio/asio/" - version " (Stable)/asio-" version ".tar.bz2")) + version " (Stable)/asio-" version ".tar.gz")) (sha256 - (base32 "0v5w9j4a02j2rkc7mrdj3ms0kfpqbgq2ipkixlz2l0p8xs0vfsvp")))) + (base32 "15yavn07m6fasf0lrxljx3p79zi23mzn0g0fhggrnngyqqyaam78")))) (build-system gnu-build-system) (inputs (list boost openssl)) -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH 2/6] gnu: Add bitsery. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 1/6] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via @ 2023-11-01 9:09 ` Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 3/6] gnu: Add function2 Sughosha via Guix-patches via ` (7 subsequent siblings) 9 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-01 9:09 UTC (permalink / raw) To: 66870; +Cc: Sughosha From: Sughosha <sughosha@proton.me> * gnu/packages/cpp.scm (bitsery): New variable. --- gnu/packages/cpp.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 0ce60c49de..7d91c72489 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2278,6 +2278,30 @@ (define-public gulrak-filesystem (home-page "https://github.com/gulrak/filesystem") (license license:expat))) +(define-public bitsery + (package + (name "bitsery") + (version "5.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fraillt/bitsery") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hv2fya7w53bfhlk79b1qnjg1qy076s8kvg22sfdq05bh0hxqrxf")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags #~(list "-DBITSERY_BUILD_TESTS=ON"))) + (native-inputs (list googletest)) + (synopsis "Header only C++ binary serialization library") + (description "This package provides header only C++ binary serialization +library. It is designed around the networking requirements for real-time data +delivery, especially for games.") + (home-page "https://github.com/fraillt/bitsery") + (license license:expat))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH 3/6] gnu: Add function2. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 1/6] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 2/6] gnu: Add bitsery Sughosha via Guix-patches via @ 2023-11-01 9:09 ` Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 4/6] gnu: Add tomlplusplus Sughosha via Guix-patches via ` (6 subsequent siblings) 9 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-01 9:09 UTC (permalink / raw) To: 66870; +Cc: Sughosha From: Sughosha <sughosha@proton.me> * gnu/packages/cpp.scm (function2): New variable. Change-Id: I29eb928aa943fa6b796d699271ca523075d44d38 --- gnu/packages/cpp.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 7d91c72489..6c99f39639 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2302,6 +2302,39 @@ (define-public bitsery (home-page "https://github.com/fraillt/bitsery") (license license:expat))) +(define-public function2 + (package + (name "function2") + (version "4.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Naios/function2") + (commit version) + ;; Tests require to compile googletest with custom + ;; features. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0zdi6jk3srjkx82kbmd9rfmj9c1rr2xlsz2hbdcjvcjp63vzzxd1")))) + (build-system cmake-build-system) + ;; The test size_match_layout fails on i586/i686. For more info: + ;; https://github.com/Naios/function2/issues/57 + (arguments + (list #:tests? #f)) + (synopsis "Improved implementations of std::function") + (description "This package provides the following implementations of +std::function: +@itemize +@item copyable fu2::function +@item move-only fu2::unique_function (capable of holding move only types) +@item non-owning fu2::function_view (capable of referencing callables in a non +owning way) +@end itemize") + (home-page "https://naios.github.io/function2/") + (license license:boost1.0))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH 4/6] gnu: Add tomlplusplus. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via ` (2 preceding siblings ...) 2023-11-01 9:09 ` [bug#66870] [PATCH 3/6] gnu: Add function2 Sughosha via Guix-patches via @ 2023-11-01 9:09 ` Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 5/6] gnu: Add clap Sughosha via Guix-patches via ` (5 subsequent siblings) 9 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-01 9:09 UTC (permalink / raw) To: 66870; +Cc: Sughosha * gnu/packages/cpp.scm (tomlplusplus): New variable. Change-Id: I7c12b76fe135cd22b54a56560aac699e452009bb --- gnu/packages/cpp.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 6c99f39639..450c4b3dc1 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -78,6 +78,7 @@ (define-module (gnu packages cpp) #:use-module (gnu packages build-tools) #:use-module (gnu packages c) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages code) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) @@ -2335,6 +2336,27 @@ (define-public function2 (home-page "https://naios.github.io/function2/") (license license:boost1.0))) +(define-public tomlplusplus + (package + (name "tomlplusplus") + (version "3.4.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/marzer/tomlplusplus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hvbifzcc97r9jwjzpnq31ynqnj5y93cjz4frmgddnkg8hxmp6w7")))) + (build-system meson-build-system) + (native-inputs (list cmake-minimal)) + (synopsis "Header-only TOML config file parser and serializer for C++17") + (description "This package provides Header-only TOML config file parser and +serializer for C++17.") + (home-page "https://marzer.github.io/tomlplusplus/") + (license license:expat))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH 5/6] gnu: Add clap. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via ` (3 preceding siblings ...) 2023-11-01 9:09 ` [bug#66870] [PATCH 4/6] gnu: Add tomlplusplus Sughosha via Guix-patches via @ 2023-11-01 9:09 ` Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 6/6] gnu: Add yabridge Sughosha via Guix-patches via ` (4 subsequent siblings) 9 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-01 9:09 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki * gnu/packages/audio.scm (clap): New variable. Change-Id: I595adff236eacaf2934f4649e2f27a367f33d0ae --- gnu/packages/audio.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 7c49ba1841..3a99131d1b 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2715,6 +2715,28 @@ (define-public jalv plugin function as a JACK application.") (license license:isc))) +(define-public clap + (package + (name "clap") + (version "1.1.9") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0z1van2wj68qv5rcvf19rc4xg57ywycdzmc0wrzss334cd9z8qyg")))) + (build-system cmake-build-system) + (synopsis "Audio Plugin API") + (description + "CLAP stands for CLever Audio Plugin. It is an audio plugin ABI which +defines a standard for Digital Audio Workstations and audio plugins to work +together.") + (home-page "https://cleveraudio.org/") + (license license:expat))) + (define-public ladspa (package (name "ladspa") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH 6/6] gnu: Add yabridge. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via ` (4 preceding siblings ...) 2023-11-01 9:09 ` [bug#66870] [PATCH 5/6] gnu: Add clap Sughosha via Guix-patches via @ 2023-11-01 9:09 ` Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via ` (3 subsequent siblings) 9 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-01 9:09 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki * gnu/packages/audio.scm (yabridge): New variable. * gnu/packages/patches/yabridge-5.0.4-fix-dependency-search.patch: New file. * gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch: New file. * gnu/local.mk: Register the patch files. Change-Id: I10331fbc9827bf1665a03afafe44a6c45c2c4c76 --- gnu/local.mk | 2 + gnu/packages/audio.scm | 129 ++++++++++++ ...3sdk-3.7.7-allow-winelib-compilation.patch | 191 ++++++++++++++++++ .../patches/yabridge-5.0.4-dependencies.patch | 36 ++++ 4 files changed, 358 insertions(+) create mode 100644 gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch create mode 100644 gnu/packages/patches/yabridge-5.0.4-dependencies.patch diff --git a/gnu/local.mk b/gnu/local.mk index 27e57302ae..d0867724e1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2114,6 +2114,7 @@ dist_patch_DATA = \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ + %D%/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/vtk-7-gcc-10-compat.patch \ @@ -2165,6 +2166,7 @@ dist_patch_DATA = \ %D%/packages/patches/xterm-370-explicit-xcursor.patch \ %D%/packages/patches/xygrib-fix-finding-data.patch \ %D%/packages/patches/xygrib-newer-proj.patch \ + %D%/packages/patches/yabridge-5.0.4-fix-dependency-search.patch \ %D%/packages/patches/yggdrasil-extra-config.patch \ %D%/packages/patches/zig-0.9-riscv-support.patch \ %D%/packages/patches/zig-do-not-link-against-librt.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 3a99131d1b..aae97d4169 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -73,7 +73,9 @@ (define-module (gnu packages audio) #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages curl) #:use-module (gnu packages dbm) #:use-module (gnu packages documentation) @@ -136,6 +138,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages vim) ;xxd #:use-module (gnu packages web) #:use-module (gnu packages webkit) + #:use-module (gnu packages wine) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) @@ -5927,6 +5930,132 @@ (define-public mbelib (license (list license:bsd-3 ; test/ framework license:isc))))) ; the rest +(define-public yabridge + (package + (name "yabridge") + (version "5.0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robbert-vdh/yabridge") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ayl706nv67jkixbrh9z7225gdwg2s4rzndx77761x33mk6by7a8")) + (patches + (search-patches + "yabridge-5.0.4-dependencies.patch")) + (modules '((guix build utils))))) + (build-system meson-build-system) + (arguments + (list #:configure-flags + #~(list (string-append "--cross-file=" #$source "/cross-wine.conf")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'add-vst3-subproject + (lambda* (#:key inputs #:allow-other-keys) + (symlink (assoc-ref inputs "vst3sdk") "subprojects/vst3"))) + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/chainloader/utils.cpp" + (("\"/usr/local/lib64\",") + (string-append "\"/usr/local/lib64\",\n\"" + #$output "/lib\","))) + (let ((wine + #$(match (%current-system) + ((or "x86_64-linux" "aarch64-linux") "wine64") + (_ "wine32"))) + (arch + #$(match (%current-system) + ((or "x86_64-linux" "aarch64-linux") + "x86_64-unix") + (_ "i386-unix")))) + (substitute* "meson.build" + (("-lole32") + (search-input-file inputs + (string-append "/lib/" wine "/wine/" + arch "/libole32.a"))) + (("-lshell32") + (search-input-file inputs + (string-append "/lib/" wine "/wine/" + arch "/libshell32.a"))) + (("-luuid") + (search-input-file inputs + (string-append "/lib/" wine "/wine/" + arch "/libuuid.a"))))))) + (replace 'install + (lambda _ + (for-each + (lambda (file) + (install-file file (string-append #$output "/bin"))) + (find-files "." "-host\\.exe(|\\.so)$")) + (for-each + (lambda (file) + (install-file file (string-append #$output "/lib"))) + (find-files "." "libyabridge"))))))) + (native-inputs + ;; NOTE: Use the default clap version with the next update of yabrigde. + ;; https://github.com/robbert-vdh/yabridge/commit/f67a170a882266d30e76977653272471498eab68 + `(("clap" + ,(let ((version "1.1.7")) + (package/inherit clap + (version version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name "clap" version)) + (sha256 + (base32 + "1afjvllmzf2xmrpy8mcxk7zhii93b447ciaqw9lkj2wh9z217hsr"))))))) + ("cmake-minimal" ,cmake-minimal) + ("function2" ,function2) + ("gulrak-filesystem" ,gulrak-filesystem) + ("pkg-config" ,pkg-config) + ("tomlplusplus" ,tomlplusplus) + ;; This is VST3 SDK v3.7.7_build_19 with the documentation and VSTGUI + ;; submodules removed and a dummy `meson.build` file that just lists all + ;; source files. + ("vst3sdk" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robbert-vdh/vst3sdk") + (commit (string-append "v3.7.7_build_19-patched")) + ;; Required for vst3_base, vst3_pluginterfaces, + ;; and vst3_public_sdk. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09axvpshwbf5061kcbl26v74dcmwxmgmlxb15b75bnqbh0zcghrf")) + (patches + (search-patches + "vst3sdk-3.7.7-allow-winelib-compilation.patch")))))) + (inputs + (list asio + bitsery + dbus + libxcb + (match (%current-system) + ((or "x86_64-linux" "aarch64") wine64) + (_ wine)))) + ;; Support the platforms that are supported by wine and wine64. + (supported-systems + (package-supported-systems wine64)) + (home-page "https://github.com/robbert-vdh/yabridge") + (synopsis "Implementation of Windows VST2, VST3 and CLAP plugin APIs") + (description + "@code{yabridge} is Yet Another way to use Windows audio plugins. It +supports using both 32-bit and 64-bit Windows VST2, VST3, and CLAP plugins in +64-bit Linux plugin hosts as if they were native plugins, with optional support +for plugin groups to enable inter-plugin communication for VST2 plugins and +quick startup times.") + (license license:gpl3+))) + (define-public ableton-link (package (name "ableton-link") diff --git a/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch b/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch new file mode 100644 index 0000000000..43639f978f --- /dev/null +++ b/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch @@ -0,0 +1,191 @@ +This patch is taken from yabridge project: +https://github.com/robbert-vdh/yabridge. + +Submodule base contains modified content +diff --git a/base/source/fdebug.cpp b/base/source/fdebug.cpp +index b1d1dcc..9093022 100644 +--- a/base/source/fdebug.cpp ++++ b/base/source/fdebug.cpp +@@ -117,8 +117,6 @@ bool AmIBeingDebugged () + #if _MSC_VER + #include <intrin.h> + #endif +-#define vsnprintf _vsnprintf +-#define snprintf _snprintf + + #elif SMTG_OS_MACOS + #include <errno.h> +Submodule pluginterfaces contains modified content +diff --git a/pluginterfaces/base/fstrdefs.h b/pluginterfaces/base/fstrdefs.h +index 848e8ee..8846d31 100644 +--- a/pluginterfaces/base/fstrdefs.h ++++ b/pluginterfaces/base/fstrdefs.h +@@ -22,6 +22,16 @@ + /** string methods defines unicode / ASCII */ + //---------------------------------------------------------------------------- + ++// We can use most of the VST3 SDK's Windows UTF-16 functionality by just ++// creating aliases for equivalent Linux functions ++#if __WINE__ ++#define wcsicmp wcscasecmp ++#define wcsnicmp wcsncasecmp ++#define _vsnwprintf vswprintf ++#define stricmp strcasecmp ++#define strnicmp strncasecmp ++#endif ++ + // 16 bit string operations + #if SMTG_CPP11 // if c++11 unicode string literals + #define SMTG_CPP11_CAT_PRIVATE_DONT_USE(a,b) a ## b +diff --git a/pluginterfaces/base/ftypes.h b/pluginterfaces/base/ftypes.h +index 133dbba..33ecae3 100644 +--- a/pluginterfaces/base/ftypes.h ++++ b/pluginterfaces/base/ftypes.h +@@ -154,7 +154,7 @@ namespace Steinberg + // always inline macros (only when RELEASE is 1) + //---------------------------------------------------------------------------- + #if RELEASE +- #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__MINGW32__) ++ #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__WINE__) + #define SMTG_ALWAYS_INLINE __inline__ __attribute__((__always_inline__)) + #define SMTG_NEVER_INLINE __attribute__((noinline)) + #elif SMTG_OS_WINDOWS +diff --git a/pluginterfaces/base/ustring.cpp b/pluginterfaces/base/ustring.cpp +index 24a412f..8e631c9 100644 +--- a/pluginterfaces/base/ustring.cpp ++++ b/pluginterfaces/base/ustring.cpp +@@ -38,6 +38,10 @@ + + #endif + ++#ifdef __WINE__ ++#include <wchar.h> ++#endif ++ + //------------------------------------------------------------------------ + namespace Steinberg { + +@@ -173,7 +177,7 @@ bool UString::scanFloat (double& value) const + bool UString::printFloat (double value, int32 precision) + { + #if SMTG_OS_WINDOWS +- return swprintf ((wchar_t*)thisBuffer, L"%.*lf", precision, value) != -1; ++ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%.*lf", precision, value) != -1; + #elif SMTG_OS_MACOS + bool result = false; + CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%.*lf"), precision, value); +@@ -238,7 +242,7 @@ bool UString::scanInt (int64& value) const + bool UString::printInt (int64 value) + { + #if SMTG_OS_WINDOWS +- return swprintf ((wchar_t*)thisBuffer, L"%I64d", value) != -1; ++ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%I64d", value) != -1; + + #elif SMTG_OS_MACOS + CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%lld"), value); +Submodule public.sdk contains modified content +diff --git a/public.sdk/source/common/systemclipboard_win32.cpp b/public.sdk/source/common/systemclipboard_win32.cpp +index c5cb2b8..2ee3d65 100644 +--- a/public.sdk/source/common/systemclipboard_win32.cpp ++++ b/public.sdk/source/common/systemclipboard_win32.cpp +@@ -111,7 +111,7 @@ bool copyTextToClipboard (const std::string& text) + { + if (auto* data = static_cast<WCHAR*> (GlobalLock (memory))) + { +-#if defined(__MINGW32__) ++#if defined(__WINE__) + memcpy (data, wideStr.data (), byteSize); + #else + memcpy_s (data, byteSize, wideStr.data (), byteSize); +diff --git a/public.sdk/source/vst/hosting/module_win32.cpp b/public.sdk/source/vst/hosting/module_win32.cpp +index 2ba9319..ab6d72a 100644 +--- a/public.sdk/source/vst/hosting/module_win32.cpp ++++ b/public.sdk/source/vst/hosting/module_win32.cpp +@@ -44,35 +44,10 @@ + #include <algorithm> + #include <iostream> + +-#if SMTG_CPP17 +- +-#if __has_include(<filesystem>) +-#define USE_FILESYSTEM 1 +-#elif __has_include(<experimental/filesystem>) +-#define USE_FILESYSTEM 0 +-#endif +- +-#else // !SMTG_CPP17 +- +-#define USE_FILESYSTEM 0 +- +-#endif // SMTG_CPP17 +- +-#if USE_FILESYSTEM == 1 +- +-#include <filesystem> +-namespace filesystem = std::filesystem; +- +-#else // USE_FILESYSTEM == 0 +- +-// The <experimental/filesystem> header is deprecated. It is superseded by the C++17 <filesystem> +-// header. You can define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to silence the +-// warning, otherwise the build will fail in VS2019 16.3.0 +-#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING +-#include <experimental/filesystem> +-namespace filesystem = std::experimental::filesystem; +- +-#endif // USE_FILESYSTEM ++// `std::filesystem` doesn't work correctly with wineg++, resulting in weird ++// memory errors. This library is a drop-in replacement. ++#include <ghc/filesystem.hpp> ++namespace filesystem = ghc::filesystem; + + #pragma comment(lib, "Shell32") + +@@ -320,7 +295,7 @@ VST3::Optional<filesystem::path> resolveShellLink (const filesystem::path& p) + #elif USE_OLE + Ole::instance (); + +- IShellLink* shellLink = nullptr; ++ IShellLinkW* shellLink = nullptr; + if (!SUCCEEDED (CoCreateInstance (CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER, + IID_IShellLink, reinterpret_cast<LPVOID*> (&shellLink)))) + return {}; +@@ -405,13 +380,13 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext, + filesystem::path result; + if (checkVST3Package (p, &result)) + { +- pathList.push_back (result.generic_u8string ()); ++ pathList.push_back (result.generic_string ()); + continue; + } + findFilesWithExt (cp, ext, pathList, recursive); + } + else +- pathList.push_back (cp.generic_u8string ()); ++ pathList.push_back (cp.generic_string ()); + } + else if (recursive) + { +@@ -431,18 +406,18 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext, + filesystem::path result; + if (checkVST3Package (*resolvedLink, &result)) + { +- pathList.push_back (result.generic_u8string ()); ++ pathList.push_back (result.generic_string ()); + continue; + } + findFilesWithExt (*resolvedLink, ext, pathList, recursive); + } + else +- pathList.push_back (resolvedLink->generic_u8string ()); ++ pathList.push_back (resolvedLink->generic_string ()); + } + else if (filesystem::is_directory (*resolvedLink)) + { +- const auto& str = resolvedLink->generic_u8string (); +- if (cp.generic_u8string ().compare (0, str.size (), str.data (), ++ const auto& str = resolvedLink->generic_string (); ++ if (cp.generic_string ().compare (0, str.size (), str.data (), + str.size ()) != 0) + findFilesWithExt (*resolvedLink, ext, pathList, recursive); + } diff --git a/gnu/packages/patches/yabridge-5.0.4-dependencies.patch b/gnu/packages/patches/yabridge-5.0.4-dependencies.patch new file mode 100644 index 0000000000..77db050e91 --- /dev/null +++ b/gnu/packages/patches/yabridge-5.0.4-dependencies.patch @@ -0,0 +1,36 @@ +Meson fails to detect bitsery, function2 and gulrak-filesystem. +https://github.com/robbert-vdh/yabridge/issues/18 + +This patch removes these dependencies in "meson.build". + + +diff --git a/meson.build b/meson.build +index d8d9135b..b35ebfcd 100644 +--- a/meson.build ++++ b/meson.build +@@ -248,22 +248,13 @@ else + asio_dep = dependency('asio', version : '>=1.22.0') + endif + +-if meson.version().version_compare('>=0.60') +- # Bitsery's CMake build definition is capitalized for some reason +- bitsery_dep = dependency('bitsery', 'Bitsery', version : '>=5.2.0') +-else +- # Mmeson <=0.6.0 didn't support multiple names for a dependency, and since at +- # the moment this is only relevant for packing on Arch btw, it's probably +- # better to remove this conditional later than it is to bump the minimum Meson +- # version now. +- bitsery_dep = dependency('bitsery', version : '>=5.2.0') +-endif ++bitsery_dep = declare_dependency() + + # The D-Bus headers are also only accessed through the include path. We don't + # link to libdbus-1 to make soname changes don't completely break yabridge. + dbus_dep = dependency('dbus-1').partial_dependency(compile_args : true, includes : true) +-function2_dep = dependency('function2', version : '>=4.0.0') +-ghc_filesystem_dep = dependency('ghc_filesystem', modules : 'ghcFilesystem::ghc_filesystem', version : '>=1.5.0') ++function2_dep = declare_dependency() ++ghc_filesystem_dep = declare_dependency() + threads_dep = dependency('threads') + # Tomlplusplus recently added a shraed library version. We don't want to link to that. + tomlplusplus_dep = dependency('tomlplusplus', version : '>=3.3.0', default_options : ['compile_library=false']).partial_dependency(compile_args : true, includes : true) -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v2 0/7] gnu: Add yabridge. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via ` (5 preceding siblings ...) 2023-11-01 9:09 ` [bug#66870] [PATCH 6/6] gnu: Add yabridge Sughosha via Guix-patches via @ 2023-11-30 9:02 ` Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via ` (6 more replies) 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via ` (2 subsequent siblings) 9 siblings, 7 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 9:02 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha, Gabriel Wicki This v2 series contains updates and fixes mistakes in v1. Sughosha (7): gnu: asio: Update to 1.28.0. gnu: Add bitsery. gnu: Add function2. gnu: Add tomlplusplus. gnu: Add clap. gnu: Add clap-1.1.7. gnu: Add yabridge. gnu/local.mk | 2 + gnu/packages/audio.scm | 125 ++++++++++++ gnu/packages/cpp.scm | 76 +++++++ gnu/packages/networking.scm | 8 +- ...3sdk-3.7.7-allow-winelib-compilation.patch | 191 ++++++++++++++++++ .../patches/yabridge-5.0.4-dependencies.patch | 36 ++++ 6 files changed, 434 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch create mode 100644 gnu/packages/patches/yabridge-5.0.4-dependencies.patch base-commit: bdbb9dc27a590b08651d058f06a42caa26e04abb -- 2.41.0 ^ permalink raw reply [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v2 1/7] gnu: asio: Update to 1.28.0. 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via @ 2023-11-30 9:02 ` Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 2/7] gnu: Add bitsery Sughosha via Guix-patches via ` (5 subsequent siblings) 6 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 9:02 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki From: Sughosha <sughosha@proton.me> * gnu/packages/networking.scm (asio): Update to 1.28.0. [home-page]: Fix homepage. Change-Id: I7c21512a60a2621911d856d53cef14638e4d2afb --- gnu/packages/networking.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 6b415076e8..bfd53e0a3f 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -3381,14 +3381,14 @@ (define-public can-utils (define-public asio (package (name "asio") - (version "1.22.2") + (version "1.28.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asio/asio/" - version " (Stable)/asio-" version ".tar.bz2")) + version " (Stable)/asio-" version ".tar.gz")) (sha256 - (base32 "0v5w9j4a02j2rkc7mrdj3ms0kfpqbgq2ipkixlz2l0p8xs0vfsvp")))) + (base32 "15yavn07m6fasf0lrxljx3p79zi23mzn0g0fhggrnngyqqyaam78")))) (build-system gnu-build-system) (inputs (list boost openssl)) @@ -3397,7 +3397,7 @@ (define-public asio (list (string-append "--with-boost=" (assoc-ref %build-inputs "boost")) (string-append "--with-openssl=" (assoc-ref %build-inputs "openssl"))))) - (home-page "https://think-async.com/Asio") + (home-page "https://think-async.com/Asio/") (synopsis "C++ library for ASynchronous network I/O") (description "Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v2 2/7] gnu: Add bitsery. 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via @ 2023-11-30 9:02 ` Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 3/7] gnu: Add function2 Sughosha via Guix-patches via ` (4 subsequent siblings) 6 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 9:02 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki From: Sughosha <sughosha@proton.me> * gnu/packages/cpp.scm (bitsery): New variable. --- gnu/packages/cpp.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 5e35a03254..16fd5bcec5 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2319,6 +2319,30 @@ (define-public gulrak-filesystem (home-page "https://github.com/gulrak/filesystem") (license license:expat))) +(define-public bitsery + (package + (name "bitsery") + (version "5.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fraillt/bitsery") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hv2fya7w53bfhlk79b1qnjg1qy076s8kvg22sfdq05bh0hxqrxf")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags #~(list "-DBITSERY_BUILD_TESTS=ON"))) + (native-inputs (list googletest)) + (synopsis "Header only C++ binary serialization library") + (description "This package provides header only C++ binary serialization +library. It is designed around the networking requirements for real-time data +delivery, especially for games.") + (home-page "https://github.com/fraillt/bitsery") + (license license:expat))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v2 3/7] gnu: Add function2. 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 2/7] gnu: Add bitsery Sughosha via Guix-patches via @ 2023-11-30 9:02 ` Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 4/7] gnu: Add tomlplusplus Sughosha via Guix-patches via ` (3 subsequent siblings) 6 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 9:02 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki From: Sughosha <sughosha@proton.me> * gnu/packages/cpp.scm (function2): New variable. Change-Id: I29eb928aa943fa6b796d699271ca523075d44d38 --- gnu/packages/cpp.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 16fd5bcec5..24e519b10b 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2343,6 +2343,36 @@ (define-public bitsery (home-page "https://github.com/fraillt/bitsery") (license license:expat))) +(define-public function2 + (package + (name "function2") + (version "4.2.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Naios/function2") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "15k8i872s2jpwbpxfq42lr96q9wplvr8gjs2msf5i4ylyp846dgf")))) + (build-system cmake-build-system) + ;; The test size_match_layout fails on i586/i686. For more info: + ;; https://github.com/Naios/function2/issues/57 + (arguments + (list #:tests? #f)) + (synopsis "Improved implementations of std::function") + (description "This package provides the following implementations of +std::function: +@itemize +@item copyable fu2::function +@item move-only fu2::unique_function (capable of holding move only types) +@item non-owning fu2::function_view (capable of referencing callables in a non +owning way) +@end itemize") + (home-page "https://naios.github.io/function2/") + (license license:boost1.0))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v2 4/7] gnu: Add tomlplusplus. 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via ` (2 preceding siblings ...) 2023-11-30 9:02 ` [bug#66870] [PATCH v2 3/7] gnu: Add function2 Sughosha via Guix-patches via @ 2023-11-30 9:02 ` Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 5/7] gnu: Add clap Sughosha via Guix-patches via ` (2 subsequent siblings) 6 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 9:02 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha * gnu/packages/cpp.scm (tomlplusplus): New variable. Change-Id: I7c12b76fe135cd22b54a56560aac699e452009bb --- gnu/packages/cpp.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 24e519b10b..272127737b 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -78,6 +78,7 @@ (define-module (gnu packages cpp) #:use-module (gnu packages build-tools) #:use-module (gnu packages c) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages code) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) @@ -2373,6 +2374,27 @@ (define-public function2 (home-page "https://naios.github.io/function2/") (license license:boost1.0))) +(define-public tomlplusplus + (package + (name "tomlplusplus") + (version "3.4.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/marzer/tomlplusplus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hvbifzcc97r9jwjzpnq31ynqnj5y93cjz4frmgddnkg8hxmp6w7")))) + (build-system meson-build-system) + (native-inputs (list cmake-minimal)) + (synopsis "Header-only TOML config file parser and serializer for C++17") + (description "This package provides Header-only TOML config file parser and +serializer for C++17.") + (home-page "https://marzer.github.io/tomlplusplus/") + (license license:expat))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v2 5/7] gnu: Add clap. 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via ` (3 preceding siblings ...) 2023-11-30 9:02 ` [bug#66870] [PATCH v2 4/7] gnu: Add tomlplusplus Sughosha via Guix-patches via @ 2023-11-30 9:02 ` Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 6/7] gnu: Add clap-1.1.7 Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 7/7] gnu: Add yabridge Sughosha via Guix-patches via 6 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 9:02 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha, Gabriel Wicki * gnu/packages/audio.scm (clap): New variable. Change-Id: I595adff236eacaf2934f4649e2f27a367f33d0ae --- gnu/packages/audio.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e4fe4c2da7..e964c74438 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2715,6 +2715,28 @@ (define-public jalv plugin function as a JACK application.") (license license:isc))) +(define-public clap + (package + (name "clap") + (version "1.1.10") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0skn3cvh7zs173v3i6ywdmddqzrhxvivwdisvmqc6hvq594f8z80")))) + (build-system cmake-build-system) + (synopsis "Audio Plugin API") + (description + "CLAP stands for CLever Audio Plugin. It is an audio plugin ABI which +defines a standard for Digital Audio Workstations and audio plugins to work +together.") + (home-page "https://cleveraudio.org/") + (license license:expat))) + (define-public ladspa (package (name "ladspa") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v2 6/7] gnu: Add clap-1.1.7. 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via ` (4 preceding siblings ...) 2023-11-30 9:02 ` [bug#66870] [PATCH v2 5/7] gnu: Add clap Sughosha via Guix-patches via @ 2023-11-30 9:02 ` Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 7/7] gnu: Add yabridge Sughosha via Guix-patches via 6 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 9:02 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha, Gabriel Wicki * gnu/packages/audio.scm (clap-1.1.7): New variable. Change-Id: Iae9f11784279fc7a73087d2009a6d7e280fe80b8 --- gnu/packages/audio.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e964c74438..6e1da4c288 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2737,6 +2737,20 @@ (define-public clap (home-page "https://cleveraudio.org/") (license license:expat))) +(define-public clap-1.1.7 + (let ((version "1.1.7")) + (package/inherit clap + (version version) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name "clap" version)) + (sha256 + (base32 + "1afjvllmzf2xmrpy8mcxk7zhii93b447ciaqw9lkj2wh9z217hsr"))))))) + (define-public ladspa (package (name "ladspa") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v2 7/7] gnu: Add yabridge. 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via ` (5 preceding siblings ...) 2023-11-30 9:02 ` [bug#66870] [PATCH v2 6/7] gnu: Add clap-1.1.7 Sughosha via Guix-patches via @ 2023-11-30 9:02 ` Sughosha via Guix-patches via 6 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 9:02 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha, Gabriel Wicki * gnu/packages/audio.scm (yabridge): New variable. * gnu/packages/patches/yabridge-5.0.4-dependencies.patch: New file. * gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch: New file. * gnu/local.mk: Register the patch files. Change-Id: Ic7e5fdc3b24349a01ed9b301d0a353e55c4479b8 --- gnu/local.mk | 2 + gnu/packages/audio.scm | 89 ++++++++ ...3sdk-3.7.7-allow-winelib-compilation.patch | 191 ++++++++++++++++++ .../patches/yabridge-5.0.4-dependencies.patch | 36 ++++ 4 files changed, 318 insertions(+) create mode 100644 gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch create mode 100644 gnu/packages/patches/yabridge-5.0.4-dependencies.patch diff --git a/gnu/local.mk b/gnu/local.mk index a8142bb0f2..c93a7b3659 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2119,6 +2119,7 @@ dist_patch_DATA = \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ + %D%/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/vtk-7-gcc-10-compat.patch \ @@ -2170,6 +2171,7 @@ dist_patch_DATA = \ %D%/packages/patches/xterm-370-explicit-xcursor.patch \ %D%/packages/patches/xygrib-fix-finding-data.patch \ %D%/packages/patches/xygrib-newer-proj.patch \ + %D%/packages/patches/yabridge-5.0.4-dependencies.patch \ %D%/packages/patches/yggdrasil-extra-config.patch \ %D%/packages/patches/zig-0.9-riscv-support.patch \ %D%/packages/patches/zig-do-not-link-against-librt.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 6e1da4c288..36b673104d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -73,7 +73,9 @@ (define-module (gnu packages audio) #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages curl) #:use-module (gnu packages dbm) #:use-module (gnu packages documentation) @@ -136,6 +138,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages vim) ;xxd #:use-module (gnu packages web) #:use-module (gnu packages webkit) + #:use-module (gnu packages wine) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) @@ -5941,6 +5944,92 @@ (define-public mbelib (license (list license:bsd-3 ; test/ framework license:isc))))) ; the rest +(define-public yabridge + (package + (name "yabridge") + (version "5.0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robbert-vdh/yabridge") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ayl706nv67jkixbrh9z7225gdwg2s4rzndx77761x33mk6by7a8")) + (patches + (search-patches + "yabridge-5.0.4-dependencies.patch")) + (modules '((guix build utils))))) + (build-system meson-build-system) + (arguments + (list #:configure-flags + #~(list (string-append "--cross-file=" #$source "/cross-wine.conf")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'add-vst3-subproject + (lambda* (#:key inputs #:allow-other-keys) + (symlink (assoc-ref inputs "vst3sdk") "subprojects/vst3"))) + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/chainloader/utils.cpp" + (("\"/usr/local/lib64\",") + (string-append "\"/usr/local/lib64\",\n\"" + #$output "/lib\","))))) + (replace 'install + (lambda _ + (for-each + (lambda (file) + (install-file file (string-append #$output "/bin"))) + (find-files "." "-host\\.exe(|\\.so)$")) + (for-each + (lambda (file) + (install-file file (string-append #$output "/lib"))) + (find-files "." "libyabridge"))))))) + (native-inputs + ;; NOTE: Use the latest clap version with the next update of yabrigde. + `(("clap" ,clap-1.1.7) + ("cmake-minimal" ,cmake-minimal) + ("function2" ,function2) + ("gulrak-filesystem" ,gulrak-filesystem) + ("pkg-config" ,pkg-config) + ("tomlplusplus" ,tomlplusplus) + ;; This is VST3 SDK v3.7.7_build_19 with the documentation and VSTGUI + ;; submodules removed and a dummy `meson.build` file that just lists all + ;; source files. + ("vst3sdk" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robbert-vdh/vst3sdk") + (commit (string-append "v3.7.7_build_19-patched")) + ;; Required for vst3_base, vst3_pluginterfaces, + ;; and vst3_public_sdk. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09axvpshwbf5061kcbl26v74dcmwxmgmlxb15b75bnqbh0zcghrf")) + (patches + (search-patches + "vst3sdk-3.7.7-allow-winelib-compilation.patch")))))) + (inputs + (list asio + bitsery + dbus + libxcb + wine64)) + (supported-systems + (package-supported-systems wine64)) + (home-page "https://github.com/robbert-vdh/yabridge") + (synopsis "Implementation of Windows VST2, VST3 and CLAP plugin APIs") + (description + "@code{yabridge} is Yet Another way to use Windows audio plugins. It +supports using Windows VST2, VST3, and CLAP plugins in plugin hosts as if they +were native plugins, with optional support for plugin groups to enable +inter-plugin communication for VST2 plugins and quick startup times.") + (license license:gpl3+))) + (define-public ableton-link (package (name "ableton-link") diff --git a/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch b/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch new file mode 100644 index 0000000000..43639f978f --- /dev/null +++ b/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch @@ -0,0 +1,191 @@ +This patch is taken from yabridge project: +https://github.com/robbert-vdh/yabridge. + +Submodule base contains modified content +diff --git a/base/source/fdebug.cpp b/base/source/fdebug.cpp +index b1d1dcc..9093022 100644 +--- a/base/source/fdebug.cpp ++++ b/base/source/fdebug.cpp +@@ -117,8 +117,6 @@ bool AmIBeingDebugged () + #if _MSC_VER + #include <intrin.h> + #endif +-#define vsnprintf _vsnprintf +-#define snprintf _snprintf + + #elif SMTG_OS_MACOS + #include <errno.h> +Submodule pluginterfaces contains modified content +diff --git a/pluginterfaces/base/fstrdefs.h b/pluginterfaces/base/fstrdefs.h +index 848e8ee..8846d31 100644 +--- a/pluginterfaces/base/fstrdefs.h ++++ b/pluginterfaces/base/fstrdefs.h +@@ -22,6 +22,16 @@ + /** string methods defines unicode / ASCII */ + //---------------------------------------------------------------------------- + ++// We can use most of the VST3 SDK's Windows UTF-16 functionality by just ++// creating aliases for equivalent Linux functions ++#if __WINE__ ++#define wcsicmp wcscasecmp ++#define wcsnicmp wcsncasecmp ++#define _vsnwprintf vswprintf ++#define stricmp strcasecmp ++#define strnicmp strncasecmp ++#endif ++ + // 16 bit string operations + #if SMTG_CPP11 // if c++11 unicode string literals + #define SMTG_CPP11_CAT_PRIVATE_DONT_USE(a,b) a ## b +diff --git a/pluginterfaces/base/ftypes.h b/pluginterfaces/base/ftypes.h +index 133dbba..33ecae3 100644 +--- a/pluginterfaces/base/ftypes.h ++++ b/pluginterfaces/base/ftypes.h +@@ -154,7 +154,7 @@ namespace Steinberg + // always inline macros (only when RELEASE is 1) + //---------------------------------------------------------------------------- + #if RELEASE +- #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__MINGW32__) ++ #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__WINE__) + #define SMTG_ALWAYS_INLINE __inline__ __attribute__((__always_inline__)) + #define SMTG_NEVER_INLINE __attribute__((noinline)) + #elif SMTG_OS_WINDOWS +diff --git a/pluginterfaces/base/ustring.cpp b/pluginterfaces/base/ustring.cpp +index 24a412f..8e631c9 100644 +--- a/pluginterfaces/base/ustring.cpp ++++ b/pluginterfaces/base/ustring.cpp +@@ -38,6 +38,10 @@ + + #endif + ++#ifdef __WINE__ ++#include <wchar.h> ++#endif ++ + //------------------------------------------------------------------------ + namespace Steinberg { + +@@ -173,7 +177,7 @@ bool UString::scanFloat (double& value) const + bool UString::printFloat (double value, int32 precision) + { + #if SMTG_OS_WINDOWS +- return swprintf ((wchar_t*)thisBuffer, L"%.*lf", precision, value) != -1; ++ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%.*lf", precision, value) != -1; + #elif SMTG_OS_MACOS + bool result = false; + CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%.*lf"), precision, value); +@@ -238,7 +242,7 @@ bool UString::scanInt (int64& value) const + bool UString::printInt (int64 value) + { + #if SMTG_OS_WINDOWS +- return swprintf ((wchar_t*)thisBuffer, L"%I64d", value) != -1; ++ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%I64d", value) != -1; + + #elif SMTG_OS_MACOS + CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%lld"), value); +Submodule public.sdk contains modified content +diff --git a/public.sdk/source/common/systemclipboard_win32.cpp b/public.sdk/source/common/systemclipboard_win32.cpp +index c5cb2b8..2ee3d65 100644 +--- a/public.sdk/source/common/systemclipboard_win32.cpp ++++ b/public.sdk/source/common/systemclipboard_win32.cpp +@@ -111,7 +111,7 @@ bool copyTextToClipboard (const std::string& text) + { + if (auto* data = static_cast<WCHAR*> (GlobalLock (memory))) + { +-#if defined(__MINGW32__) ++#if defined(__WINE__) + memcpy (data, wideStr.data (), byteSize); + #else + memcpy_s (data, byteSize, wideStr.data (), byteSize); +diff --git a/public.sdk/source/vst/hosting/module_win32.cpp b/public.sdk/source/vst/hosting/module_win32.cpp +index 2ba9319..ab6d72a 100644 +--- a/public.sdk/source/vst/hosting/module_win32.cpp ++++ b/public.sdk/source/vst/hosting/module_win32.cpp +@@ -44,35 +44,10 @@ + #include <algorithm> + #include <iostream> + +-#if SMTG_CPP17 +- +-#if __has_include(<filesystem>) +-#define USE_FILESYSTEM 1 +-#elif __has_include(<experimental/filesystem>) +-#define USE_FILESYSTEM 0 +-#endif +- +-#else // !SMTG_CPP17 +- +-#define USE_FILESYSTEM 0 +- +-#endif // SMTG_CPP17 +- +-#if USE_FILESYSTEM == 1 +- +-#include <filesystem> +-namespace filesystem = std::filesystem; +- +-#else // USE_FILESYSTEM == 0 +- +-// The <experimental/filesystem> header is deprecated. It is superseded by the C++17 <filesystem> +-// header. You can define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to silence the +-// warning, otherwise the build will fail in VS2019 16.3.0 +-#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING +-#include <experimental/filesystem> +-namespace filesystem = std::experimental::filesystem; +- +-#endif // USE_FILESYSTEM ++// `std::filesystem` doesn't work correctly with wineg++, resulting in weird ++// memory errors. This library is a drop-in replacement. ++#include <ghc/filesystem.hpp> ++namespace filesystem = ghc::filesystem; + + #pragma comment(lib, "Shell32") + +@@ -320,7 +295,7 @@ VST3::Optional<filesystem::path> resolveShellLink (const filesystem::path& p) + #elif USE_OLE + Ole::instance (); + +- IShellLink* shellLink = nullptr; ++ IShellLinkW* shellLink = nullptr; + if (!SUCCEEDED (CoCreateInstance (CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER, + IID_IShellLink, reinterpret_cast<LPVOID*> (&shellLink)))) + return {}; +@@ -405,13 +380,13 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext, + filesystem::path result; + if (checkVST3Package (p, &result)) + { +- pathList.push_back (result.generic_u8string ()); ++ pathList.push_back (result.generic_string ()); + continue; + } + findFilesWithExt (cp, ext, pathList, recursive); + } + else +- pathList.push_back (cp.generic_u8string ()); ++ pathList.push_back (cp.generic_string ()); + } + else if (recursive) + { +@@ -431,18 +406,18 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext, + filesystem::path result; + if (checkVST3Package (*resolvedLink, &result)) + { +- pathList.push_back (result.generic_u8string ()); ++ pathList.push_back (result.generic_string ()); + continue; + } + findFilesWithExt (*resolvedLink, ext, pathList, recursive); + } + else +- pathList.push_back (resolvedLink->generic_u8string ()); ++ pathList.push_back (resolvedLink->generic_string ()); + } + else if (filesystem::is_directory (*resolvedLink)) + { +- const auto& str = resolvedLink->generic_u8string (); +- if (cp.generic_u8string ().compare (0, str.size (), str.data (), ++ const auto& str = resolvedLink->generic_string (); ++ if (cp.generic_string ().compare (0, str.size (), str.data (), + str.size ()) != 0) + findFilesWithExt (*resolvedLink, ext, pathList, recursive); + } diff --git a/gnu/packages/patches/yabridge-5.0.4-dependencies.patch b/gnu/packages/patches/yabridge-5.0.4-dependencies.patch new file mode 100644 index 0000000000..77db050e91 --- /dev/null +++ b/gnu/packages/patches/yabridge-5.0.4-dependencies.patch @@ -0,0 +1,36 @@ +Meson fails to detect bitsery, function2 and gulrak-filesystem. +https://github.com/robbert-vdh/yabridge/issues/18 + +This patch removes these dependencies in "meson.build". + + +diff --git a/meson.build b/meson.build +index d8d9135b..b35ebfcd 100644 +--- a/meson.build ++++ b/meson.build +@@ -248,22 +248,13 @@ else + asio_dep = dependency('asio', version : '>=1.22.0') + endif + +-if meson.version().version_compare('>=0.60') +- # Bitsery's CMake build definition is capitalized for some reason +- bitsery_dep = dependency('bitsery', 'Bitsery', version : '>=5.2.0') +-else +- # Mmeson <=0.6.0 didn't support multiple names for a dependency, and since at +- # the moment this is only relevant for packing on Arch btw, it's probably +- # better to remove this conditional later than it is to bump the minimum Meson +- # version now. +- bitsery_dep = dependency('bitsery', version : '>=5.2.0') +-endif ++bitsery_dep = declare_dependency() + + # The D-Bus headers are also only accessed through the include path. We don't + # link to libdbus-1 to make soname changes don't completely break yabridge. + dbus_dep = dependency('dbus-1').partial_dependency(compile_args : true, includes : true) +-function2_dep = dependency('function2', version : '>=4.0.0') +-ghc_filesystem_dep = dependency('ghc_filesystem', modules : 'ghcFilesystem::ghc_filesystem', version : '>=1.5.0') ++function2_dep = declare_dependency() ++ghc_filesystem_dep = declare_dependency() + threads_dep = dependency('threads') + # Tomlplusplus recently added a shraed library version. We don't want to link to that. + tomlplusplus_dep = dependency('tomlplusplus', version : '>=3.3.0', default_options : ['compile_library=false']).partial_dependency(compile_args : true, includes : true) -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via ` (6 preceding siblings ...) 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via @ 2023-11-30 10:32 ` Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 2/7] gnu: Add bitsery Sughosha via Guix-patches via ` (5 more replies) 2024-10-28 9:46 ` [bug#66870] [PATCH v4 1/5] gnu: Add bitsery Nicolas Graves via Guix-patches via 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki 9 siblings, 6 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 10:32 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki From: Sughosha <sughosha@proton.me> * gnu/packages/networking.scm (asio): Update to 1.28.0. [home-page]: Fix homepage. Change-Id: I7c21512a60a2621911d856d53cef14638e4d2afb --- gnu/packages/networking.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 6b415076e8..bfd53e0a3f 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -3381,14 +3381,14 @@ (define-public can-utils (define-public asio (package (name "asio") - (version "1.22.2") + (version "1.28.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asio/asio/" - version " (Stable)/asio-" version ".tar.bz2")) + version " (Stable)/asio-" version ".tar.gz")) (sha256 - (base32 "0v5w9j4a02j2rkc7mrdj3ms0kfpqbgq2ipkixlz2l0p8xs0vfsvp")))) + (base32 "15yavn07m6fasf0lrxljx3p79zi23mzn0g0fhggrnngyqqyaam78")))) (build-system gnu-build-system) (inputs (list boost openssl)) @@ -3397,7 +3397,7 @@ (define-public asio (list (string-append "--with-boost=" (assoc-ref %build-inputs "boost")) (string-append "--with-openssl=" (assoc-ref %build-inputs "openssl"))))) - (home-page "https://think-async.com/Asio") + (home-page "https://think-async.com/Asio/") (synopsis "C++ library for ASynchronous network I/O") (description "Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent base-commit: bdbb9dc27a590b08651d058f06a42caa26e04abb -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v3 2/7] gnu: Add bitsery. 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via @ 2023-11-30 10:32 ` Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 3/7] gnu: Add function2 Sughosha via Guix-patches via ` (4 subsequent siblings) 5 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 10:32 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki From: Sughosha <sughosha@proton.me> * gnu/packages/cpp.scm (bitsery): New variable. --- gnu/packages/cpp.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 5e35a03254..16fd5bcec5 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2319,6 +2319,30 @@ (define-public gulrak-filesystem (home-page "https://github.com/gulrak/filesystem") (license license:expat))) +(define-public bitsery + (package + (name "bitsery") + (version "5.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fraillt/bitsery") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hv2fya7w53bfhlk79b1qnjg1qy076s8kvg22sfdq05bh0hxqrxf")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags #~(list "-DBITSERY_BUILD_TESTS=ON"))) + (native-inputs (list googletest)) + (synopsis "Header only C++ binary serialization library") + (description "This package provides header only C++ binary serialization +library. It is designed around the networking requirements for real-time data +delivery, especially for games.") + (home-page "https://github.com/fraillt/bitsery") + (license license:expat))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v3 3/7] gnu: Add function2. 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 2/7] gnu: Add bitsery Sughosha via Guix-patches via @ 2023-11-30 10:32 ` Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 4/7] gnu: Add tomlplusplus Sughosha via Guix-patches via ` (3 subsequent siblings) 5 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 10:32 UTC (permalink / raw) To: 66870; +Cc: Sughosha, Gabriel Wicki From: Sughosha <sughosha@proton.me> * gnu/packages/cpp.scm (function2): New variable. Change-Id: I29eb928aa943fa6b796d699271ca523075d44d38 --- gnu/packages/cpp.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 16fd5bcec5..24e519b10b 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2343,6 +2343,36 @@ (define-public bitsery (home-page "https://github.com/fraillt/bitsery") (license license:expat))) +(define-public function2 + (package + (name "function2") + (version "4.2.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Naios/function2") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "15k8i872s2jpwbpxfq42lr96q9wplvr8gjs2msf5i4ylyp846dgf")))) + (build-system cmake-build-system) + ;; The test size_match_layout fails on i586/i686. For more info: + ;; https://github.com/Naios/function2/issues/57 + (arguments + (list #:tests? #f)) + (synopsis "Improved implementations of std::function") + (description "This package provides the following implementations of +std::function: +@itemize +@item copyable fu2::function +@item move-only fu2::unique_function (capable of holding move only types) +@item non-owning fu2::function_view (capable of referencing callables in a non +owning way) +@end itemize") + (home-page "https://naios.github.io/function2/") + (license license:boost1.0))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v3 4/7] gnu: Add tomlplusplus. 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 2/7] gnu: Add bitsery Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 3/7] gnu: Add function2 Sughosha via Guix-patches via @ 2023-11-30 10:32 ` Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 5/7] gnu: Add clap Sughosha via Guix-patches via ` (2 subsequent siblings) 5 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 10:32 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha * gnu/packages/cpp.scm (tomlplusplus): New variable. Change-Id: I7c12b76fe135cd22b54a56560aac699e452009bb --- gnu/packages/cpp.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 24e519b10b..272127737b 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -78,6 +78,7 @@ (define-module (gnu packages cpp) #:use-module (gnu packages build-tools) #:use-module (gnu packages c) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages code) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) @@ -2373,6 +2374,27 @@ (define-public function2 (home-page "https://naios.github.io/function2/") (license license:boost1.0))) +(define-public tomlplusplus + (package + (name "tomlplusplus") + (version "3.4.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/marzer/tomlplusplus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hvbifzcc97r9jwjzpnq31ynqnj5y93cjz4frmgddnkg8hxmp6w7")))) + (build-system meson-build-system) + (native-inputs (list cmake-minimal)) + (synopsis "Header-only TOML config file parser and serializer for C++17") + (description "This package provides Header-only TOML config file parser and +serializer for C++17.") + (home-page "https://marzer.github.io/tomlplusplus/") + (license license:expat))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v3 5/7] gnu: Add clap. 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via ` (2 preceding siblings ...) 2023-11-30 10:32 ` [bug#66870] [PATCH v3 4/7] gnu: Add tomlplusplus Sughosha via Guix-patches via @ 2023-11-30 10:32 ` Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 6/7] gnu: Add clap-1.1.7 Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 7/7] gnu: Add yabridge Sughosha via Guix-patches via 5 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 10:32 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha, Gabriel Wicki * gnu/packages/audio.scm (clap): New variable. Change-Id: I595adff236eacaf2934f4649e2f27a367f33d0ae --- gnu/packages/audio.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e4fe4c2da7..e964c74438 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2715,6 +2715,28 @@ (define-public jalv plugin function as a JACK application.") (license license:isc))) +(define-public clap + (package + (name "clap") + (version "1.1.10") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0skn3cvh7zs173v3i6ywdmddqzrhxvivwdisvmqc6hvq594f8z80")))) + (build-system cmake-build-system) + (synopsis "Audio Plugin API") + (description + "CLAP stands for CLever Audio Plugin. It is an audio plugin ABI which +defines a standard for Digital Audio Workstations and audio plugins to work +together.") + (home-page "https://cleveraudio.org/") + (license license:expat))) + (define-public ladspa (package (name "ladspa") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v3 6/7] gnu: Add clap-1.1.7. 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via ` (3 preceding siblings ...) 2023-11-30 10:32 ` [bug#66870] [PATCH v3 5/7] gnu: Add clap Sughosha via Guix-patches via @ 2023-11-30 10:32 ` Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 7/7] gnu: Add yabridge Sughosha via Guix-patches via 5 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 10:32 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha, Gabriel Wicki * gnu/packages/audio.scm (clap-1.1.7): New variable. Change-Id: Iae9f11784279fc7a73087d2009a6d7e280fe80b8 --- gnu/packages/audio.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e964c74438..6e1da4c288 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2737,6 +2737,20 @@ (define-public clap (home-page "https://cleveraudio.org/") (license license:expat))) +(define-public clap-1.1.7 + (let ((version "1.1.7")) + (package/inherit clap + (version version) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name "clap" version)) + (sha256 + (base32 + "1afjvllmzf2xmrpy8mcxk7zhii93b447ciaqw9lkj2wh9z217hsr"))))))) + (define-public ladspa (package (name "ladspa") -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v3 7/7] gnu: Add yabridge. 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via ` (4 preceding siblings ...) 2023-11-30 10:32 ` [bug#66870] [PATCH v3 6/7] gnu: Add clap-1.1.7 Sughosha via Guix-patches via @ 2023-11-30 10:32 ` Sughosha via Guix-patches via 5 siblings, 0 replies; 28+ messages in thread From: Sughosha via Guix-patches via @ 2023-11-30 10:32 UTC (permalink / raw) To: 66870; +Cc: Gabriel Wicki, Sughosha, Gabriel Wicki * gnu/packages/audio.scm (yabridge): New variable. * gnu/packages/patches/yabridge-5.0.4-dependencies.patch: New file. * gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch: New file. * gnu/local.mk: Register the patch files. Change-Id: Ic7e5fdc3b24349a01ed9b301d0a353e55c4479b8 --- gnu/local.mk | 2 + gnu/packages/audio.scm | 88 ++++++++ ...3sdk-3.7.7-allow-winelib-compilation.patch | 191 ++++++++++++++++++ .../patches/yabridge-5.0.4-dependencies.patch | 36 ++++ 4 files changed, 317 insertions(+) create mode 100644 gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch create mode 100644 gnu/packages/patches/yabridge-5.0.4-dependencies.patch diff --git a/gnu/local.mk b/gnu/local.mk index a8142bb0f2..c93a7b3659 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2119,6 +2119,7 @@ dist_patch_DATA = \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ + %D%/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/vtk-7-gcc-10-compat.patch \ @@ -2170,6 +2171,7 @@ dist_patch_DATA = \ %D%/packages/patches/xterm-370-explicit-xcursor.patch \ %D%/packages/patches/xygrib-fix-finding-data.patch \ %D%/packages/patches/xygrib-newer-proj.patch \ + %D%/packages/patches/yabridge-5.0.4-dependencies.patch \ %D%/packages/patches/yggdrasil-extra-config.patch \ %D%/packages/patches/zig-0.9-riscv-support.patch \ %D%/packages/patches/zig-do-not-link-against-librt.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 6e1da4c288..f842548c93 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -73,7 +73,9 @@ (define-module (gnu packages audio) #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages curl) #:use-module (gnu packages dbm) #:use-module (gnu packages documentation) @@ -136,6 +138,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages vim) ;xxd #:use-module (gnu packages web) #:use-module (gnu packages webkit) + #:use-module (gnu packages wine) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) @@ -5941,6 +5944,91 @@ (define-public mbelib (license (list license:bsd-3 ; test/ framework license:isc))))) ; the rest +(define-public yabridge + (package + (name "yabridge") + (version "5.0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robbert-vdh/yabridge") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ayl706nv67jkixbrh9z7225gdwg2s4rzndx77761x33mk6by7a8")) + (patches + (search-patches + "yabridge-5.0.4-dependencies.patch")))) + (build-system meson-build-system) + (arguments + (list #:configure-flags + #~(list (string-append "--cross-file=" #$source "/cross-wine.conf")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'add-vst3-subproject + (lambda* (#:key inputs #:allow-other-keys) + (symlink (assoc-ref inputs "vst3sdk") "subprojects/vst3"))) + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/chainloader/utils.cpp" + (("\"/usr/local/lib64\",") + (string-append "\"/usr/local/lib64\",\n\"" + #$output "/lib\","))))) + (replace 'install + (lambda _ + (for-each + (lambda (file) + (install-file file (string-append #$output "/bin"))) + (find-files "." "-host\\.exe(|\\.so)$")) + (for-each + (lambda (file) + (install-file file (string-append #$output "/lib"))) + (find-files "." "libyabridge"))))))) + (native-inputs + ;; NOTE: Use the latest clap version with the next update of yabrigde. + `(("clap" ,clap-1.1.7) + ("cmake-minimal" ,cmake-minimal) + ("function2" ,function2) + ("gulrak-filesystem" ,gulrak-filesystem) + ("pkg-config" ,pkg-config) + ("tomlplusplus" ,tomlplusplus) + ;; This is VST3 SDK v3.7.7_build_19 with the documentation and VSTGUI + ;; submodules removed and a dummy `meson.build` file that just lists all + ;; source files. + ("vst3sdk" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robbert-vdh/vst3sdk") + (commit (string-append "v3.7.7_build_19-patched")) + ;; Required for vst3_base, vst3_pluginterfaces, + ;; and vst3_public_sdk. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09axvpshwbf5061kcbl26v74dcmwxmgmlxb15b75bnqbh0zcghrf")) + (patches + (search-patches + "vst3sdk-3.7.7-allow-winelib-compilation.patch")))))) + (inputs + (list asio + bitsery + dbus + libxcb + wine64)) + (supported-systems + (package-supported-systems wine64)) + (home-page "https://github.com/robbert-vdh/yabridge") + (synopsis "Implementation of Windows VST2, VST3 and CLAP plugin APIs") + (description + "@code{yabridge} is Yet Another way to use Windows audio plugins. It +supports using Windows VST2, VST3, and CLAP plugins in plugin hosts as if they +were native plugins, with optional support for plugin groups to enable +inter-plugin communication for VST2 plugins and quick startup times.") + (license license:gpl3+))) + (define-public ableton-link (package (name "ableton-link") diff --git a/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch b/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch new file mode 100644 index 0000000000..43639f978f --- /dev/null +++ b/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch @@ -0,0 +1,191 @@ +This patch is taken from yabridge project: +https://github.com/robbert-vdh/yabridge. + +Submodule base contains modified content +diff --git a/base/source/fdebug.cpp b/base/source/fdebug.cpp +index b1d1dcc..9093022 100644 +--- a/base/source/fdebug.cpp ++++ b/base/source/fdebug.cpp +@@ -117,8 +117,6 @@ bool AmIBeingDebugged () + #if _MSC_VER + #include <intrin.h> + #endif +-#define vsnprintf _vsnprintf +-#define snprintf _snprintf + + #elif SMTG_OS_MACOS + #include <errno.h> +Submodule pluginterfaces contains modified content +diff --git a/pluginterfaces/base/fstrdefs.h b/pluginterfaces/base/fstrdefs.h +index 848e8ee..8846d31 100644 +--- a/pluginterfaces/base/fstrdefs.h ++++ b/pluginterfaces/base/fstrdefs.h +@@ -22,6 +22,16 @@ + /** string methods defines unicode / ASCII */ + //---------------------------------------------------------------------------- + ++// We can use most of the VST3 SDK's Windows UTF-16 functionality by just ++// creating aliases for equivalent Linux functions ++#if __WINE__ ++#define wcsicmp wcscasecmp ++#define wcsnicmp wcsncasecmp ++#define _vsnwprintf vswprintf ++#define stricmp strcasecmp ++#define strnicmp strncasecmp ++#endif ++ + // 16 bit string operations + #if SMTG_CPP11 // if c++11 unicode string literals + #define SMTG_CPP11_CAT_PRIVATE_DONT_USE(a,b) a ## b +diff --git a/pluginterfaces/base/ftypes.h b/pluginterfaces/base/ftypes.h +index 133dbba..33ecae3 100644 +--- a/pluginterfaces/base/ftypes.h ++++ b/pluginterfaces/base/ftypes.h +@@ -154,7 +154,7 @@ namespace Steinberg + // always inline macros (only when RELEASE is 1) + //---------------------------------------------------------------------------- + #if RELEASE +- #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__MINGW32__) ++ #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__WINE__) + #define SMTG_ALWAYS_INLINE __inline__ __attribute__((__always_inline__)) + #define SMTG_NEVER_INLINE __attribute__((noinline)) + #elif SMTG_OS_WINDOWS +diff --git a/pluginterfaces/base/ustring.cpp b/pluginterfaces/base/ustring.cpp +index 24a412f..8e631c9 100644 +--- a/pluginterfaces/base/ustring.cpp ++++ b/pluginterfaces/base/ustring.cpp +@@ -38,6 +38,10 @@ + + #endif + ++#ifdef __WINE__ ++#include <wchar.h> ++#endif ++ + //------------------------------------------------------------------------ + namespace Steinberg { + +@@ -173,7 +177,7 @@ bool UString::scanFloat (double& value) const + bool UString::printFloat (double value, int32 precision) + { + #if SMTG_OS_WINDOWS +- return swprintf ((wchar_t*)thisBuffer, L"%.*lf", precision, value) != -1; ++ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%.*lf", precision, value) != -1; + #elif SMTG_OS_MACOS + bool result = false; + CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%.*lf"), precision, value); +@@ -238,7 +242,7 @@ bool UString::scanInt (int64& value) const + bool UString::printInt (int64 value) + { + #if SMTG_OS_WINDOWS +- return swprintf ((wchar_t*)thisBuffer, L"%I64d", value) != -1; ++ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%I64d", value) != -1; + + #elif SMTG_OS_MACOS + CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%lld"), value); +Submodule public.sdk contains modified content +diff --git a/public.sdk/source/common/systemclipboard_win32.cpp b/public.sdk/source/common/systemclipboard_win32.cpp +index c5cb2b8..2ee3d65 100644 +--- a/public.sdk/source/common/systemclipboard_win32.cpp ++++ b/public.sdk/source/common/systemclipboard_win32.cpp +@@ -111,7 +111,7 @@ bool copyTextToClipboard (const std::string& text) + { + if (auto* data = static_cast<WCHAR*> (GlobalLock (memory))) + { +-#if defined(__MINGW32__) ++#if defined(__WINE__) + memcpy (data, wideStr.data (), byteSize); + #else + memcpy_s (data, byteSize, wideStr.data (), byteSize); +diff --git a/public.sdk/source/vst/hosting/module_win32.cpp b/public.sdk/source/vst/hosting/module_win32.cpp +index 2ba9319..ab6d72a 100644 +--- a/public.sdk/source/vst/hosting/module_win32.cpp ++++ b/public.sdk/source/vst/hosting/module_win32.cpp +@@ -44,35 +44,10 @@ + #include <algorithm> + #include <iostream> + +-#if SMTG_CPP17 +- +-#if __has_include(<filesystem>) +-#define USE_FILESYSTEM 1 +-#elif __has_include(<experimental/filesystem>) +-#define USE_FILESYSTEM 0 +-#endif +- +-#else // !SMTG_CPP17 +- +-#define USE_FILESYSTEM 0 +- +-#endif // SMTG_CPP17 +- +-#if USE_FILESYSTEM == 1 +- +-#include <filesystem> +-namespace filesystem = std::filesystem; +- +-#else // USE_FILESYSTEM == 0 +- +-// The <experimental/filesystem> header is deprecated. It is superseded by the C++17 <filesystem> +-// header. You can define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to silence the +-// warning, otherwise the build will fail in VS2019 16.3.0 +-#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING +-#include <experimental/filesystem> +-namespace filesystem = std::experimental::filesystem; +- +-#endif // USE_FILESYSTEM ++// `std::filesystem` doesn't work correctly with wineg++, resulting in weird ++// memory errors. This library is a drop-in replacement. ++#include <ghc/filesystem.hpp> ++namespace filesystem = ghc::filesystem; + + #pragma comment(lib, "Shell32") + +@@ -320,7 +295,7 @@ VST3::Optional<filesystem::path> resolveShellLink (const filesystem::path& p) + #elif USE_OLE + Ole::instance (); + +- IShellLink* shellLink = nullptr; ++ IShellLinkW* shellLink = nullptr; + if (!SUCCEEDED (CoCreateInstance (CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER, + IID_IShellLink, reinterpret_cast<LPVOID*> (&shellLink)))) + return {}; +@@ -405,13 +380,13 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext, + filesystem::path result; + if (checkVST3Package (p, &result)) + { +- pathList.push_back (result.generic_u8string ()); ++ pathList.push_back (result.generic_string ()); + continue; + } + findFilesWithExt (cp, ext, pathList, recursive); + } + else +- pathList.push_back (cp.generic_u8string ()); ++ pathList.push_back (cp.generic_string ()); + } + else if (recursive) + { +@@ -431,18 +406,18 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext, + filesystem::path result; + if (checkVST3Package (*resolvedLink, &result)) + { +- pathList.push_back (result.generic_u8string ()); ++ pathList.push_back (result.generic_string ()); + continue; + } + findFilesWithExt (*resolvedLink, ext, pathList, recursive); + } + else +- pathList.push_back (resolvedLink->generic_u8string ()); ++ pathList.push_back (resolvedLink->generic_string ()); + } + else if (filesystem::is_directory (*resolvedLink)) + { +- const auto& str = resolvedLink->generic_u8string (); +- if (cp.generic_u8string ().compare (0, str.size (), str.data (), ++ const auto& str = resolvedLink->generic_string (); ++ if (cp.generic_string ().compare (0, str.size (), str.data (), + str.size ()) != 0) + findFilesWithExt (*resolvedLink, ext, pathList, recursive); + } diff --git a/gnu/packages/patches/yabridge-5.0.4-dependencies.patch b/gnu/packages/patches/yabridge-5.0.4-dependencies.patch new file mode 100644 index 0000000000..77db050e91 --- /dev/null +++ b/gnu/packages/patches/yabridge-5.0.4-dependencies.patch @@ -0,0 +1,36 @@ +Meson fails to detect bitsery, function2 and gulrak-filesystem. +https://github.com/robbert-vdh/yabridge/issues/18 + +This patch removes these dependencies in "meson.build". + + +diff --git a/meson.build b/meson.build +index d8d9135b..b35ebfcd 100644 +--- a/meson.build ++++ b/meson.build +@@ -248,22 +248,13 @@ else + asio_dep = dependency('asio', version : '>=1.22.0') + endif + +-if meson.version().version_compare('>=0.60') +- # Bitsery's CMake build definition is capitalized for some reason +- bitsery_dep = dependency('bitsery', 'Bitsery', version : '>=5.2.0') +-else +- # Mmeson <=0.6.0 didn't support multiple names for a dependency, and since at +- # the moment this is only relevant for packing on Arch btw, it's probably +- # better to remove this conditional later than it is to bump the minimum Meson +- # version now. +- bitsery_dep = dependency('bitsery', version : '>=5.2.0') +-endif ++bitsery_dep = declare_dependency() + + # The D-Bus headers are also only accessed through the include path. We don't + # link to libdbus-1 to make soname changes don't completely break yabridge. + dbus_dep = dependency('dbus-1').partial_dependency(compile_args : true, includes : true) +-function2_dep = dependency('function2', version : '>=4.0.0') +-ghc_filesystem_dep = dependency('ghc_filesystem', modules : 'ghcFilesystem::ghc_filesystem', version : '>=1.5.0') ++function2_dep = declare_dependency() ++ghc_filesystem_dep = declare_dependency() + threads_dep = dependency('threads') + # Tomlplusplus recently added a shraed library version. We don't want to link to that. + tomlplusplus_dep = dependency('tomlplusplus', version : '>=3.3.0', default_options : ['compile_library=false']).partial_dependency(compile_args : true, includes : true) -- 2.41.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v4 1/5] gnu: Add bitsery. 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via ` (7 preceding siblings ...) 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via @ 2024-10-28 9:46 ` Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 2/5] gnu: Add function2 Nicolas Graves via Guix-patches via ` (3 more replies) 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki 9 siblings, 4 replies; 28+ messages in thread From: Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 UTC (permalink / raw) To: 66870; +Cc: Sughosha From: Sughosha <sughosha@proton.me> * gnu/packages/cpp.scm (bitsery): New variable. --- gnu/packages/cpp.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 26fc169154..8cc7cfb1b0 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2571,6 +2571,30 @@ (define-public gulrak-filesystem (home-page "https://github.com/gulrak/filesystem") (license license:expat))) +(define-public bitsery + (package + (name "bitsery") + (version "5.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fraillt/bitsery") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hv2fya7w53bfhlk79b1qnjg1qy076s8kvg22sfdq05bh0hxqrxf")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags #~(list "-DBITSERY_BUILD_TESTS=ON"))) + (native-inputs (list googletest)) + (synopsis "Header only C++ binary serialization library") + (description "This package provides header only C++ binary serialization +library. It is designed around the networking requirements for real-time data +delivery, especially for games.") + (home-page "https://github.com/fraillt/bitsery") + (license license:expat))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.46.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v4 2/5] gnu: Add function2. 2024-10-28 9:46 ` [bug#66870] [PATCH v4 1/5] gnu: Add bitsery Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 ` Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 3/5] gnu: Add clap Nicolas Graves via Guix-patches via ` (2 subsequent siblings) 3 siblings, 0 replies; 28+ messages in thread From: Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 UTC (permalink / raw) To: 66870; +Cc: Sughosha From: Sughosha <sughosha@proton.me> * gnu/packages/cpp.scm (function2): New variable. Change-Id: I29eb928aa943fa6b796d699271ca523075d44d38 --- gnu/packages/cpp.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 8cc7cfb1b0..9899fc595d 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2595,6 +2595,36 @@ (define-public bitsery (home-page "https://github.com/fraillt/bitsery") (license license:expat))) +(define-public function2 + (package + (name "function2") + (version "4.2.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Naios/function2") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "15k8i872s2jpwbpxfq42lr96q9wplvr8gjs2msf5i4ylyp846dgf")))) + (build-system cmake-build-system) + ;; The test size_match_layout fails on i586/i686. For more info: + ;; https://github.com/Naios/function2/issues/57 + (arguments + (list #:tests? #f)) + (synopsis "Improved implementations of std::function") + (description "This package provides the following implementations of +std::function: +@itemize +@item copyable fu2::function +@item move-only fu2::unique_function (capable of holding move only types) +@item non-owning fu2::function_view (capable of referencing callables in a non +owning way) +@end itemize") + (home-page "https://naios.github.io/function2/") + (license license:boost1.0))) + (define-public cpp-mustache (package (name "cpp-mustache") -- 2.46.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v4 3/5] gnu: Add clap. 2024-10-28 9:46 ` [bug#66870] [PATCH v4 1/5] gnu: Add bitsery Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 2/5] gnu: Add function2 Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 ` Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 4/5] gnu: Add clap-1.1.7 Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 5/5] gnu: Add yabridge Nicolas Graves via Guix-patches via 3 siblings, 0 replies; 28+ messages in thread From: Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 UTC (permalink / raw) To: 66870; +Cc: Sughosha From: Sughosha <sughosha@disroot.org> * gnu/packages/audio.scm (clap): New variable. Change-Id: I595adff236eacaf2934f4649e2f27a367f33d0ae --- gnu/packages/audio.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 1ab0cbdd05..e69dcc5d8c 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2762,6 +2762,28 @@ (define-public jalv plugin function as a JACK application.") (license license:isc))) +(define-public clap + (package + (name "clap") + (version "1.1.10") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0skn3cvh7zs173v3i6ywdmddqzrhxvivwdisvmqc6hvq594f8z80")))) + (build-system cmake-build-system) + (synopsis "Audio Plugin API") + (description + "CLAP stands for CLever Audio Plugin. It is an audio plugin ABI which +defines a standard for Digital Audio Workstations and audio plugins to work +together.") + (home-page "https://cleveraudio.org/") + (license license:expat))) + (define-public ladspa (package (name "ladspa") -- 2.46.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v4 4/5] gnu: Add clap-1.1.7. 2024-10-28 9:46 ` [bug#66870] [PATCH v4 1/5] gnu: Add bitsery Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 2/5] gnu: Add function2 Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 3/5] gnu: Add clap Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 ` Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 5/5] gnu: Add yabridge Nicolas Graves via Guix-patches via 3 siblings, 0 replies; 28+ messages in thread From: Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 UTC (permalink / raw) To: 66870; +Cc: Sughosha From: Sughosha <sughosha@disroot.org> * gnu/packages/audio.scm (clap-1.1.7): New variable. Change-Id: Iae9f11784279fc7a73087d2009a6d7e280fe80b8 --- gnu/packages/audio.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e69dcc5d8c..c3bcf6a13c 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2784,6 +2784,20 @@ (define-public clap (home-page "https://cleveraudio.org/") (license license:expat))) +(define-public clap-1.1.7 + (let ((version "1.1.7")) + (package/inherit clap + (version version) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name "clap" version)) + (sha256 + (base32 + "1afjvllmzf2xmrpy8mcxk7zhii93b447ciaqw9lkj2wh9z217hsr"))))))) + (define-public ladspa (package (name "ladspa") -- 2.46.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] [PATCH v4 5/5] gnu: Add yabridge. 2024-10-28 9:46 ` [bug#66870] [PATCH v4 1/5] gnu: Add bitsery Nicolas Graves via Guix-patches via ` (2 preceding siblings ...) 2024-10-28 9:46 ` [bug#66870] [PATCH v4 4/5] gnu: Add clap-1.1.7 Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 ` Nicolas Graves via Guix-patches via 3 siblings, 0 replies; 28+ messages in thread From: Nicolas Graves via Guix-patches via @ 2024-10-28 9:46 UTC (permalink / raw) To: 66870; +Cc: Sughosha From: Sughosha <sughosha@disroot.org> * gnu/packages/audio.scm (yabridge): New variable. * gnu/packages/patches/yabridge-5.0.4-dependencies.patch: New file. * gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch: New file. * gnu/local.mk: Register the patch files. Change-Id: Ic7e5fdc3b24349a01ed9b301d0a353e55c4479b8 --- gnu/local.mk | 2 + gnu/packages/audio.scm | 87 ++++++++ ...3sdk-3.7.7-allow-winelib-compilation.patch | 191 ++++++++++++++++++ .../patches/yabridge-5.0.4-dependencies.patch | 36 ++++ 4 files changed, 316 insertions(+) create mode 100644 gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch create mode 100644 gnu/packages/patches/yabridge-5.0.4-dependencies.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6bd7c75090..2bf577e2a7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2293,6 +2293,7 @@ dist_patch_DATA = \ %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \ %D%/packages/patches/virt-manager-fix-gtk-cursor-theme-backtace.patch \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ + %D%/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/vtk-7-gcc-10-compat.patch \ @@ -2347,6 +2348,7 @@ dist_patch_DATA = \ %D%/packages/patches/xterm-370-explicit-xcursor.patch \ %D%/packages/patches/xygrib-fix-finding-data.patch \ %D%/packages/patches/xygrib-newer-proj.patch \ + %D%/packages/patches/yabridge-5.0.4-dependencies.patch \ %D%/packages/patches/yggdrasil-extra-config.patch \ %D%/packages/patches/zig-0.9-riscv-support.patch \ %D%/packages/patches/zig-use-baseline-cpu-by-default.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index c3bcf6a13c..8f95fed26e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -78,6 +78,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages cdrom) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages curl) @@ -146,6 +147,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages vim) ;xxd #:use-module (gnu packages web) #:use-module (gnu packages webkit) + #:use-module (gnu packages wine) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) @@ -6661,3 +6663,88 @@ (define-public easyeffects @item Stereo tools @end itemize") (license license:gpl3+))) + +(define-public yabridge + (package + (name "yabridge") + (version "5.0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robbert-vdh/yabridge") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ayl706nv67jkixbrh9z7225gdwg2s4rzndx77761x33mk6by7a8")) + (patches + (search-patches + "yabridge-5.0.4-dependencies.patch")))) + (build-system meson-build-system) + (arguments + (list #:configure-flags + #~(list (string-append "--cross-file=" #$source "/cross-wine.conf")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'add-vst3-subproject + (lambda* (#:key inputs #:allow-other-keys) + (symlink (assoc-ref inputs "vst3sdk") "subprojects/vst3"))) + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/chainloader/utils.cpp" + (("\"/usr/local/lib64\",") + (string-append "\"/usr/local/lib64\",\n\"" + #$output "/lib\","))))) + (replace 'install + (lambda _ + (for-each + (lambda (file) + (install-file file (string-append #$output "/bin"))) + (find-files "." "-host\\.exe(|\\.so)$")) + (for-each + (lambda (file) + (install-file file (string-append #$output "/lib"))) + (find-files "." "libyabridge"))))))) + (native-inputs + ;; NOTE: Use the latest clap version with the next update of yabrigde. + `(("clap" ,clap-1.1.7) + ("cmake-minimal" ,cmake-minimal) + ("function2" ,function2) + ("gulrak-filesystem" ,gulrak-filesystem) + ("pkg-config" ,pkg-config) + ("tomlplusplus" ,tomlplusplus) + ;; This is VST3 SDK v3.7.7_build_19 with the documentation and VSTGUI + ;; submodules removed and a dummy `meson.build` file that just lists all + ;; source files. + ("vst3sdk" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robbert-vdh/vst3sdk") + (commit (string-append "v3.7.7_build_19-patched")) + ;; Required for vst3_base, vst3_pluginterfaces, + ;; and vst3_public_sdk. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09axvpshwbf5061kcbl26v74dcmwxmgmlxb15b75bnqbh0zcghrf")) + (patches + (search-patches + "vst3sdk-3.7.7-allow-winelib-compilation.patch")))))) + (inputs + (list asio + bitsery + dbus + libxcb + wine64)) + (supported-systems + (package-supported-systems wine64)) + (home-page "https://github.com/robbert-vdh/yabridge") + (synopsis "Implementation of Windows VST2, VST3 and CLAP plugin APIs") + (description + "@code{yabridge} is Yet Another way to use Windows audio plugins. It +supports using Windows VST2, VST3, and CLAP plugins in plugin hosts as if they +were native plugins, with optional support for plugin groups to enable +inter-plugin communication for VST2 plugins and quick startup times.") + (license license:gpl3+))) diff --git a/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch b/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch new file mode 100644 index 0000000000..43639f978f --- /dev/null +++ b/gnu/packages/patches/vst3sdk-3.7.7-allow-winelib-compilation.patch @@ -0,0 +1,191 @@ +This patch is taken from yabridge project: +https://github.com/robbert-vdh/yabridge. + +Submodule base contains modified content +diff --git a/base/source/fdebug.cpp b/base/source/fdebug.cpp +index b1d1dcc..9093022 100644 +--- a/base/source/fdebug.cpp ++++ b/base/source/fdebug.cpp +@@ -117,8 +117,6 @@ bool AmIBeingDebugged () + #if _MSC_VER + #include <intrin.h> + #endif +-#define vsnprintf _vsnprintf +-#define snprintf _snprintf + + #elif SMTG_OS_MACOS + #include <errno.h> +Submodule pluginterfaces contains modified content +diff --git a/pluginterfaces/base/fstrdefs.h b/pluginterfaces/base/fstrdefs.h +index 848e8ee..8846d31 100644 +--- a/pluginterfaces/base/fstrdefs.h ++++ b/pluginterfaces/base/fstrdefs.h +@@ -22,6 +22,16 @@ + /** string methods defines unicode / ASCII */ + //---------------------------------------------------------------------------- + ++// We can use most of the VST3 SDK's Windows UTF-16 functionality by just ++// creating aliases for equivalent Linux functions ++#if __WINE__ ++#define wcsicmp wcscasecmp ++#define wcsnicmp wcsncasecmp ++#define _vsnwprintf vswprintf ++#define stricmp strcasecmp ++#define strnicmp strncasecmp ++#endif ++ + // 16 bit string operations + #if SMTG_CPP11 // if c++11 unicode string literals + #define SMTG_CPP11_CAT_PRIVATE_DONT_USE(a,b) a ## b +diff --git a/pluginterfaces/base/ftypes.h b/pluginterfaces/base/ftypes.h +index 133dbba..33ecae3 100644 +--- a/pluginterfaces/base/ftypes.h ++++ b/pluginterfaces/base/ftypes.h +@@ -154,7 +154,7 @@ namespace Steinberg + // always inline macros (only when RELEASE is 1) + //---------------------------------------------------------------------------- + #if RELEASE +- #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__MINGW32__) ++ #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__WINE__) + #define SMTG_ALWAYS_INLINE __inline__ __attribute__((__always_inline__)) + #define SMTG_NEVER_INLINE __attribute__((noinline)) + #elif SMTG_OS_WINDOWS +diff --git a/pluginterfaces/base/ustring.cpp b/pluginterfaces/base/ustring.cpp +index 24a412f..8e631c9 100644 +--- a/pluginterfaces/base/ustring.cpp ++++ b/pluginterfaces/base/ustring.cpp +@@ -38,6 +38,10 @@ + + #endif + ++#ifdef __WINE__ ++#include <wchar.h> ++#endif ++ + //------------------------------------------------------------------------ + namespace Steinberg { + +@@ -173,7 +177,7 @@ bool UString::scanFloat (double& value) const + bool UString::printFloat (double value, int32 precision) + { + #if SMTG_OS_WINDOWS +- return swprintf ((wchar_t*)thisBuffer, L"%.*lf", precision, value) != -1; ++ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%.*lf", precision, value) != -1; + #elif SMTG_OS_MACOS + bool result = false; + CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%.*lf"), precision, value); +@@ -238,7 +242,7 @@ bool UString::scanInt (int64& value) const + bool UString::printInt (int64 value) + { + #if SMTG_OS_WINDOWS +- return swprintf ((wchar_t*)thisBuffer, L"%I64d", value) != -1; ++ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%I64d", value) != -1; + + #elif SMTG_OS_MACOS + CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%lld"), value); +Submodule public.sdk contains modified content +diff --git a/public.sdk/source/common/systemclipboard_win32.cpp b/public.sdk/source/common/systemclipboard_win32.cpp +index c5cb2b8..2ee3d65 100644 +--- a/public.sdk/source/common/systemclipboard_win32.cpp ++++ b/public.sdk/source/common/systemclipboard_win32.cpp +@@ -111,7 +111,7 @@ bool copyTextToClipboard (const std::string& text) + { + if (auto* data = static_cast<WCHAR*> (GlobalLock (memory))) + { +-#if defined(__MINGW32__) ++#if defined(__WINE__) + memcpy (data, wideStr.data (), byteSize); + #else + memcpy_s (data, byteSize, wideStr.data (), byteSize); +diff --git a/public.sdk/source/vst/hosting/module_win32.cpp b/public.sdk/source/vst/hosting/module_win32.cpp +index 2ba9319..ab6d72a 100644 +--- a/public.sdk/source/vst/hosting/module_win32.cpp ++++ b/public.sdk/source/vst/hosting/module_win32.cpp +@@ -44,35 +44,10 @@ + #include <algorithm> + #include <iostream> + +-#if SMTG_CPP17 +- +-#if __has_include(<filesystem>) +-#define USE_FILESYSTEM 1 +-#elif __has_include(<experimental/filesystem>) +-#define USE_FILESYSTEM 0 +-#endif +- +-#else // !SMTG_CPP17 +- +-#define USE_FILESYSTEM 0 +- +-#endif // SMTG_CPP17 +- +-#if USE_FILESYSTEM == 1 +- +-#include <filesystem> +-namespace filesystem = std::filesystem; +- +-#else // USE_FILESYSTEM == 0 +- +-// The <experimental/filesystem> header is deprecated. It is superseded by the C++17 <filesystem> +-// header. You can define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to silence the +-// warning, otherwise the build will fail in VS2019 16.3.0 +-#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING +-#include <experimental/filesystem> +-namespace filesystem = std::experimental::filesystem; +- +-#endif // USE_FILESYSTEM ++// `std::filesystem` doesn't work correctly with wineg++, resulting in weird ++// memory errors. This library is a drop-in replacement. ++#include <ghc/filesystem.hpp> ++namespace filesystem = ghc::filesystem; + + #pragma comment(lib, "Shell32") + +@@ -320,7 +295,7 @@ VST3::Optional<filesystem::path> resolveShellLink (const filesystem::path& p) + #elif USE_OLE + Ole::instance (); + +- IShellLink* shellLink = nullptr; ++ IShellLinkW* shellLink = nullptr; + if (!SUCCEEDED (CoCreateInstance (CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER, + IID_IShellLink, reinterpret_cast<LPVOID*> (&shellLink)))) + return {}; +@@ -405,13 +380,13 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext, + filesystem::path result; + if (checkVST3Package (p, &result)) + { +- pathList.push_back (result.generic_u8string ()); ++ pathList.push_back (result.generic_string ()); + continue; + } + findFilesWithExt (cp, ext, pathList, recursive); + } + else +- pathList.push_back (cp.generic_u8string ()); ++ pathList.push_back (cp.generic_string ()); + } + else if (recursive) + { +@@ -431,18 +406,18 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext, + filesystem::path result; + if (checkVST3Package (*resolvedLink, &result)) + { +- pathList.push_back (result.generic_u8string ()); ++ pathList.push_back (result.generic_string ()); + continue; + } + findFilesWithExt (*resolvedLink, ext, pathList, recursive); + } + else +- pathList.push_back (resolvedLink->generic_u8string ()); ++ pathList.push_back (resolvedLink->generic_string ()); + } + else if (filesystem::is_directory (*resolvedLink)) + { +- const auto& str = resolvedLink->generic_u8string (); +- if (cp.generic_u8string ().compare (0, str.size (), str.data (), ++ const auto& str = resolvedLink->generic_string (); ++ if (cp.generic_string ().compare (0, str.size (), str.data (), + str.size ()) != 0) + findFilesWithExt (*resolvedLink, ext, pathList, recursive); + } diff --git a/gnu/packages/patches/yabridge-5.0.4-dependencies.patch b/gnu/packages/patches/yabridge-5.0.4-dependencies.patch new file mode 100644 index 0000000000..77db050e91 --- /dev/null +++ b/gnu/packages/patches/yabridge-5.0.4-dependencies.patch @@ -0,0 +1,36 @@ +Meson fails to detect bitsery, function2 and gulrak-filesystem. +https://github.com/robbert-vdh/yabridge/issues/18 + +This patch removes these dependencies in "meson.build". + + +diff --git a/meson.build b/meson.build +index d8d9135b..b35ebfcd 100644 +--- a/meson.build ++++ b/meson.build +@@ -248,22 +248,13 @@ else + asio_dep = dependency('asio', version : '>=1.22.0') + endif + +-if meson.version().version_compare('>=0.60') +- # Bitsery's CMake build definition is capitalized for some reason +- bitsery_dep = dependency('bitsery', 'Bitsery', version : '>=5.2.0') +-else +- # Mmeson <=0.6.0 didn't support multiple names for a dependency, and since at +- # the moment this is only relevant for packing on Arch btw, it's probably +- # better to remove this conditional later than it is to bump the minimum Meson +- # version now. +- bitsery_dep = dependency('bitsery', version : '>=5.2.0') +-endif ++bitsery_dep = declare_dependency() + + # The D-Bus headers are also only accessed through the include path. We don't + # link to libdbus-1 to make soname changes don't completely break yabridge. + dbus_dep = dependency('dbus-1').partial_dependency(compile_args : true, includes : true) +-function2_dep = dependency('function2', version : '>=4.0.0') +-ghc_filesystem_dep = dependency('ghc_filesystem', modules : 'ghcFilesystem::ghc_filesystem', version : '>=1.5.0') ++function2_dep = declare_dependency() ++ghc_filesystem_dep = declare_dependency() + threads_dep = dependency('threads') + # Tomlplusplus recently added a shraed library version. We don't want to link to that. + tomlplusplus_dep = dependency('tomlplusplus', version : '>=3.3.0', default_options : ['compile_library=false']).partial_dependency(compile_args : true, includes : true) -- 2.46.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [bug#66870] Patchset review 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via ` (8 preceding siblings ...) 2024-10-28 9:46 ` [bug#66870] [PATCH v4 1/5] gnu: Add bitsery Nicolas Graves via Guix-patches via @ 2024-11-25 16:32 ` Gabriel Wicki 9 siblings, 0 replies; 28+ messages in thread From: Gabriel Wicki @ 2024-11-25 16:32 UTC (permalink / raw) To: 66870; +Cc: ngraves, Sughosha There hasn't been any activity in quite some time so I use my (perceived) responsability of being the only member of the audio team to bump this issue/patch-request. I guess this all (still) looks fine. Giving it a quick and dirty (I tried mumi for the first time) attempt to build and test the products I failed. Maybe re-basing the patch-series and re-submitting a **complete** series would streamline merging? I will try to figure out how I can help with that - given my team-membership and the lack of merging-power (: ^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2024-11-25 16:33 UTC | newest] Thread overview: 28+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-11-01 9:07 [bug#66870] [PATCH 0/6] gnu: Add yabridge Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 1/6] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 2/6] gnu: Add bitsery Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 3/6] gnu: Add function2 Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 4/6] gnu: Add tomlplusplus Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 5/6] gnu: Add clap Sughosha via Guix-patches via 2023-11-01 9:09 ` [bug#66870] [PATCH 6/6] gnu: Add yabridge Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 0/7] " Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 2/7] gnu: Add bitsery Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 3/7] gnu: Add function2 Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 4/7] gnu: Add tomlplusplus Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 5/7] gnu: Add clap Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 6/7] gnu: Add clap-1.1.7 Sughosha via Guix-patches via 2023-11-30 9:02 ` [bug#66870] [PATCH v2 7/7] gnu: Add yabridge Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 1/7] gnu: asio: Update to 1.28.0 Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 2/7] gnu: Add bitsery Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 3/7] gnu: Add function2 Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 4/7] gnu: Add tomlplusplus Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 5/7] gnu: Add clap Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 6/7] gnu: Add clap-1.1.7 Sughosha via Guix-patches via 2023-11-30 10:32 ` [bug#66870] [PATCH v3 7/7] gnu: Add yabridge Sughosha via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 1/5] gnu: Add bitsery Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 2/5] gnu: Add function2 Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 3/5] gnu: Add clap Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 4/5] gnu: Add clap-1.1.7 Nicolas Graves via Guix-patches via 2024-10-28 9:46 ` [bug#66870] [PATCH v4 5/5] gnu: Add yabridge Nicolas Graves via Guix-patches via 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).