* [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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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; 40+ 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] 40+ 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 2024-11-28 17:15 ` [bug#66870] [PATCH v6 00/11] gnu: Add yabridge and yabridgectl Sughosha via Guix-patches via ` (11 more replies) 9 siblings, 12 replies; 40+ 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] 40+ messages in thread
* [bug#66870] [PATCH v6 00/11] gnu: Add yabridge and yabridgectl. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 01/11] gnu: Add bitsery Sughosha via Guix-patches via ` (10 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Gabriel Wicki This patch series adds yabridge and yabridgectl. Sughosha (11): gnu: Add bitsery. gnu: Add function2. gnu: Add clap. gnu: Add clap-1.1. gnu: Add yabridge. gnu: rust-rustyline-9: Update to 9.1.2. gnu: Add rust-promptly-0.3. gnu: Add rust-reflink-0.1. gnu: Add rust-ryu-0.2. gnu: Add rust-serde-jsonrc-0.1. gnu: Add yabridgectl. gnu/local.mk | 3 + gnu/packages/audio.scm | 180 +++++++++++++++++ gnu/packages/cpp.scm | 62 ++++++ gnu/packages/crates-io.scm | 94 ++++++++- ...k-0.1-fix-64bit-toolchain-assumption.patch | 24 +++ ...3sdk-3.7.7-allow-winelib-compilation.patch | 191 ++++++++++++++++++ .../patches/yabridge-5.0.4-dependencies.patch | 36 ++++ 7 files changed, 587 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/rust-reflink-0.1-fix-64bit-toolchain-assumption.patch 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: 369d2698b0bfc3726f8e6d232d43d0dda832225f -- 2.46.0 ^ permalink raw reply [flat|nested] 40+ messages in thread
* [bug#66870] [PATCH v6 01/11] gnu: Add bitsery. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki 2024-11-28 17:15 ` [bug#66870] [PATCH v6 00/11] gnu: Add yabridge and yabridgectl Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 02/11] gnu: Add function2 Sughosha via Guix-patches via ` (9 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870 * gnu/packages/cpp.scm (bitsery): New variable. Change-Id: I9118c5341ef473fbc8394fbad0f533f9e8c8e490 --- gnu/packages/cpp.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index eacc6e46ab..48fb323cd5 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2582,6 +2582,31 @@ (define-public gulrak-filesystem (home-page "https://github.com/gulrak/filesystem") (license license:expat))) +(define-public bitsery + (package + (name "bitsery") + (version "5.2.4") + (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 + "0s628p6qayajan4v8arsmbvzsml8zhc56k01zhmnlakbl7v0vwip")))) + (build-system cmake-build-system) + (arguments + (list #:cmake cmake ;needs cmake minimum version 3.25 + #: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] 40+ messages in thread
* [bug#66870] [PATCH v6 02/11] gnu: Add function2. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki 2024-11-28 17:15 ` [bug#66870] [PATCH v6 00/11] gnu: Add yabridge and yabridgectl Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 01/11] gnu: Add bitsery Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 03/11] gnu: Add clap Sughosha via Guix-patches via ` (8 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870 * gnu/packages/cpp.scm (function2): New variable. Change-Id: Ida408b7746b3cb8828285b05fcc0abee4b1863ba --- gnu/packages/cpp.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 48fb323cd5..9f56779a40 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2607,6 +2607,43 @@ (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 + "0l4kn81lfi687mv2d2mkrrqgjp9v186jlfshrgcr5717lwqw39xg")) + (modules '((guix build utils))) + (snippet + ;; Unbundle googletest. + '(begin + (delete-file-recursively "test") + (substitute* "CMakeLists.txt" + (("add_subdirectory\\(test\\)") "")))))) + (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] 40+ messages in thread
* [bug#66870] [PATCH v6 03/11] gnu: Add clap. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (2 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 02/11] gnu: Add function2 Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 04/11] gnu: Add clap-1.1 Sughosha via Guix-patches via ` (7 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Gabriel Wicki * gnu/packages/audio.scm (clap): New variable. Change-Id: Ia0f634b363f36a3f4c1dbb3a2a793f17b5a56c43 --- gnu/packages/audio.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index f842d77031..2e6e36a608 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2871,6 +2871,28 @@ (define-public jalv plugin function as a JACK application.") (license license:isc))) +(define-public clap + (package + (name "clap") + (version "1.2.2") + (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 + "1azyxb5nby9bd3xd2sfib18m8a0lhlmkbw9y3brfqxvbs012yxsv")))) + (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] 40+ messages in thread
* [bug#66870] [PATCH v6 04/11] gnu: Add clap-1.1. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (3 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 03/11] gnu: Add clap Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 05/11] gnu: Add yabridge Sughosha via Guix-patches via ` (6 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Gabriel Wicki * gnu/packages/audio.scm (clap-1.1): New variable. Change-Id: I17bcba1818a1b3ffa4318e4a3a7afe1242388cd4 --- gnu/packages/audio.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 2e6e36a608..98245dd05e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2893,6 +2893,19 @@ (define-public clap (home-page "https://cleveraudio.org/") (license license:expat))) +(define-public clap-1.1 + (package/inherit clap + (version "1.1.10") + (source (origin + (inherit (package-source clap)) + (uri (git-reference + (url "https://github.com/free-audio/clap") + (commit version))) + (file-name (git-file-name (package-name clap) version)) + (sha256 + (base32 + "0skn3cvh7zs173v3i6ywdmddqzrhxvivwdisvmqc6hvq594f8z80")))))) + (define-public ladspa (package (name "ladspa") -- 2.46.0 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [bug#66870] [PATCH v6 05/11] gnu: Add yabridge. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (4 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 04/11] gnu: Add clap-1.1 Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 06/11] gnu: rust-rustyline-9: Update to 9.1.2 Sughosha via Guix-patches via ` (5 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, 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: Ib514f80e9e060326ba9a34b2e1f3d40245fba1c7 --- gnu/local.mk | 2 + gnu/packages/audio.scm | 82 ++++++++ ...3sdk-3.7.7-allow-winelib-compilation.patch | 191 ++++++++++++++++++ .../patches/yabridge-5.0.4-dependencies.patch | 36 ++++ 4 files changed, 311 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 c89fd88282..bc93477fa3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2309,6 +2309,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 \ @@ -2362,6 +2363,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 98245dd05e..444c0d0659 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) @@ -147,6 +148,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) @@ -6769,3 +6771,83 @@ (define-public easyeffects @item Stereo tools @end itemize") (license license:gpl3+))) + +(define-public yabridge + (package + (name "yabridge") + (version "5.1.1") + (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 + "0r7q72jmd44wynxphwhgm17wkfgm6zfdrpfnhsj8b53406ykgq71")) + (patches + (search-patches "yabridge-5.0.4-dependencies.patch")))) + (build-system meson-build-system) + (arguments + (list #:configure-flags + #~(list "-Dsystem-asio=true" + (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 + (list cmake-minimal gulrak-filesystem pkg-config)) + (inputs + `(("asio" ,asio) + ("bitsery" ,bitsery) + ("clap" ,clap-1.1) + ("dbus" ,dbus) + ("function2" ,function2) + ("libxcb" ,libxcb) + ("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")))) + ("wine64" ,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..c35a2c3795 --- /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); + } \ No newline at end of file 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..ca06da050d --- /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) \ No newline at end of file -- 2.46.0 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [bug#66870] [PATCH v6 06/11] gnu: rust-rustyline-9: Update to 9.1.2. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (5 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 05/11] gnu: Add yabridge Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 07/11] gnu: Add rust-promptly-0.3 Sughosha via Guix-patches via ` (4 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Efraim Flashner * gnu/packages/crates-io.scm (rust-rustyline-9): Update to 9.1.2. Change-Id: I326c5bd19cd2bed27929a7e538496bac1116672b --- gnu/packages/crates-io.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 16f7a0a389..b68aae9b45 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -66711,14 +66711,14 @@ (define-public rust-rustyline-9 (package (inherit rust-rustyline-12) (name "rust-rustyline") - (version "9.0.0") + (version "9.1.2") (source (origin (method url-fetch) (uri (crate-uri "rustyline" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1mj0cgdyw6gaadsg7yxsnb9n4bdl91qga9kiwyd4hqqsi31qf13r")))) + (base32 "0f8069ljhiv9nf97y975wvv9yvx82w3lm9g50d5n298fkiw2cy6v")))) (arguments `(#:skip-build? #t #:cargo-inputs @@ -66730,7 +66730,7 @@ (define-public rust-rustyline-9 ("rust-libc" ,rust-libc-0.2) ("rust-log" ,rust-log-0.4) ("rust-memchr" ,rust-memchr-2) - ("rust-nix" ,rust-nix-0.22) + ("rust-nix" ,rust-nix-0.23) ("rust-radix-trie" ,rust-radix-trie-0.2) ("rust-regex" ,rust-regex-1) ("rust-scopeguard" ,rust-scopeguard-1) -- 2.46.0 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [bug#66870] [PATCH v6 07/11] gnu: Add rust-promptly-0.3. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (6 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 06/11] gnu: rust-rustyline-9: Update to 9.1.2 Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 08/11] gnu: Add rust-reflink-0.1 Sughosha via Guix-patches via ` (3 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Efraim Flashner * gnu/packages/crates-io.scm (rust-promptly-0.3): New variable. Change-Id: I96fb7eceab48fbcbd7c43a25affea38dfb9b1a8e --- gnu/packages/crates-io.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index b68aae9b45..ce339eb3d6 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -57272,6 +57272,27 @@ (define-public rust-project-origins-1 (description "Resolve project origins and kinds from a path.") (license license:asl2.0))) +(define-public rust-promptly-0.3 + (package + (name "rust-promptly") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "promptly" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1fl0548ww11gpja8hlsfc8jgxk00rdd48n1g6icgwadhlp2wdjws")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-rustyline" ,rust-rustyline-9) + ("rust-url" ,rust-url-2)))) + (home-page "https://github.com/anowell/promptly") + (synopsis "Opinionated CLI prompting helper") + (description "This package provides opinionated CLI prompting helper.") + (license license:expat))) + (define-public rust-propfuzz-0.0.1 (package (name "rust-propfuzz") -- 2.46.0 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [bug#66870] [PATCH v6 08/11] gnu: Add rust-reflink-0.1. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (7 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 07/11] gnu: Add rust-promptly-0.3 Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 09/11] gnu: Add rust-ryu-0.2 Sughosha via Guix-patches via ` (2 subsequent siblings) 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Efraim Flashner * gnu/packages/crates-io.scm (rust-reflink-0.1): New variable. * gnu/packages/patches/rust-reflink-0.1-fix-64bit-toolchain-assumption.patch: New file. * gnu/local.mk: Register the patch file. Change-Id: I193db0f4e51a133b8791ca9461032655da20137f --- gnu/local.mk | 1 + gnu/packages/crates-io.scm | 25 +++++++++++++++++++ ...k-0.1-fix-64bit-toolchain-assumption.patch | 24 ++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 gnu/packages/patches/rust-reflink-0.1-fix-64bit-toolchain-assumption.patch diff --git a/gnu/local.mk b/gnu/local.mk index bc93477fa3..bfe80f3ebe 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2133,6 +2133,7 @@ dist_patch_DATA = \ %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \ %D%/packages/patches/rust-1.70-fix-rustix-build.patch \ %D%/packages/patches/rust-cargo-edit-remove-ureq.patch \ + %D%/packages/patches/rust-reflink-0.1-fix-64bit-toolchain-assumption.patch \ %D%/packages/patches/rust-ring-0.17-ring-core.patch \ %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \ %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index ce339eb3d6..bf41835bf7 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -62339,6 +62339,31 @@ (define-public rust-reference-counted-singleton-0.1 can be recreated as needed.") (license license:expat))) +(define-public rust-reflink-0.1 + (package + (name "rust-reflink") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "reflink" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1glcyqvryv2zj6kjbfji0cldrkincqx3ds3wjwl4qnsnig15wn5w")) + (patches + (search-patches + "rust-reflink-0.1-fix-64bit-toolchain-assumption.patch")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-winapi" ,rust-winapi-0.3)))) + (home-page "https://github.com/nicokoch/reflink") + (synopsis "Copy-on-write mechanism on supported file systems") + (description "This package provides copy-on-write mechanism on supported +file systems.") + (license (list license:expat license:asl2.0)))) + (define-public rust-refpool-0.4 (package (name "rust-refpool") diff --git a/gnu/packages/patches/rust-reflink-0.1-fix-64bit-toolchain-assumption.patch b/gnu/packages/patches/rust-reflink-0.1-fix-64bit-toolchain-assumption.patch new file mode 100644 index 0000000000..1fc877815f --- /dev/null +++ b/gnu/packages/patches/rust-reflink-0.1-fix-64bit-toolchain-assumption.patch @@ -0,0 +1,24 @@ +This patch fixes assuming a 64-bit toolchain. +https://github.com/nicokoch/reflink/pull/5 + + +--- reflink-0.1.3/src/sys/unix.rs 2019-04-02 16:13:06.000000000 +0200 ++++ "reflink-0.1.3 (Kopie)/src/sys/unix.rs" 2023-06-29 09:47:26.867681403 +0200 +@@ -7,7 +7,7 @@ + use std::os::unix::io::AsRawFd; + + // TODO is this equal on all archs? Just tested on x86_64 and x86. +- const IOCTL_FICLONE: u64 = 0x40049409; ++ macro_rules! IOCTL_FICLONE { () => (0x40049409) }; + + let src = fs::File::open(&from)?; + +@@ -18,7 +18,7 @@ + .open(&to)?; + let ret = unsafe { + // http://man7.org/linux/man-pages/man2/ioctl_ficlonerange.2.html +- libc::ioctl(dest.as_raw_fd(), IOCTL_FICLONE, src.as_raw_fd()) ++ libc::ioctl(dest.as_raw_fd(), IOCTL_FICLONE!(), src.as_raw_fd()) + }; + + if ret == -1 { \ No newline at end of file -- 2.46.0 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [bug#66870] [PATCH v6 09/11] gnu: Add rust-ryu-0.2. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (8 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 08/11] gnu: Add rust-reflink-0.1 Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 10/11] gnu: Add rust-serde-jsonrc-0.1 Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 11/11] gnu: Add yabridgectl Sughosha via Guix-patches via 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Efraim Flashner * gnu/packages/crates-io.scm (rust-ryu-0.2): New variable. Change-Id: I76208b6f4563be43628a87c8a0bc5e3f1bb8f826 --- gnu/packages/crates-io.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index bf41835bf7..dca087e09d 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -67147,6 +67147,19 @@ (define-public rust-ryu-1 quickly convert floating point numbers to decimal strings.") (license (list license:asl2.0 license:boost1.0)))) +(define-public rust-ryu-0.2 + (package + (inherit rust-ryu-1) + (name "rust-ryu") + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (crate-uri "ryu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "13wsi4408qxi9w44pdf5zfds4ym7np2070wkhg1g4j4dvi4rasmr")))))) + (define-public rust-s3handler-0.7 (package (name "rust-s3handler") -- 2.46.0 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [bug#66870] [PATCH v6 10/11] gnu: Add rust-serde-jsonrc-0.1. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (9 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 09/11] gnu: Add rust-ryu-0.2 Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 11/11] gnu: Add yabridgectl Sughosha via Guix-patches via 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Efraim Flashner * gnu/packages/crates-io.scm (rust-serde-jsonrc-0.1): New variable. Change-Id: If18e89af220b7b93874c4fc04a18530f76a9c4ea --- gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index dca087e09d..a1da138795 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -69625,6 +69625,35 @@ (define-public rust-serde-json-core-0.4 ("rust-serde" ,rust-serde-1)) #:cargo-development-inputs (("rust-serde-derive" ,rust-serde-derive-1)))))) +(define-public rust-serde-jsonrc-0.1 + (package + (name "rust-serde-jsonrc") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "serde_jsonrc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1a5q0ba7jhgfl63l16plgl7sx1k58l2caxf7z2j5l677rh5yk4dm")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ;`Deserialize` and `Serialize` are defined multiple times + #:cargo-inputs + (("rust-indexmap" ,rust-indexmap-1) + ("rust-itoa" ,rust-itoa-0.4) + ("rust-ryu" ,rust-ryu-0.2) + ("rust-serde" ,rust-serde-1)) + #:cargo-development-inputs + (("rust-compiletest-rs" ,rust-compiletest-rs-0.3) + ("rust-serde-bytes" ,rust-serde-bytes-0.10) + ("rust-serde-derive" ,rust-serde-derive-1)))) + (home-page "https://github.com/serde-rs/json") + (synopsis "JSON serialization file format") + (description + "This package provides a JSON serialization file format.") + (license (list license:expat license:asl2.0)))) + (define-public rust-serde-path-to-error-0.1 (package (name "rust-serde-path-to-error") -- 2.46.0 ^ permalink raw reply related [flat|nested] 40+ messages in thread
* [bug#66870] [PATCH v6 11/11] gnu: Add yabridgectl. 2024-11-25 16:32 ` [bug#66870] Patchset review Gabriel Wicki ` (10 preceding siblings ...) 2024-11-28 17:15 ` [bug#66870] [PATCH v6 10/11] gnu: Add rust-serde-jsonrc-0.1 Sughosha via Guix-patches via @ 2024-11-28 17:15 ` Sughosha via Guix-patches via 11 siblings, 0 replies; 40+ messages in thread From: Sughosha via Guix-patches via @ 2024-11-28 17:15 UTC (permalink / raw) To: Gabriel Wicki; +Cc: Sughosha, 66870, Gabriel Wicki * gnu/packages/audio.scm (yabridgectl): New variable. Change-Id: Ide287422cff7d6641a2d732de0e4f4b3ae784f76 --- gnu/packages/audio.scm | 63 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 444c0d0659..517334198d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -81,6 +81,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) + #:use-module (gnu packages crates-io) #:use-module (gnu packages curl) #:use-module (gnu packages dbm) #:use-module (gnu packages documentation) @@ -154,6 +155,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system glib-or-gtk) @@ -6851,3 +6853,64 @@ (define-public yabridge 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 yabridgectl + (package/inherit yabridge + (name "yabridgectl") + (source (origin + (inherit (package-source yabridge)) + (modules '((guix build utils))) + (snippet + ;; Use reflink from the system istead of git. + `(substitute* "tools/yabridgectl/Cargo.toml" + (("reflink = .*$") + (string-append "reflink = \"" + ,(package-version rust-reflink-0.1) + "\"\n")))))) + (build-system cargo-build-system) + (arguments + (list #:cargo-inputs + `(("rust-anyhow" ,rust-anyhow-1) + ("rust-clap" ,rust-clap-4) + ("rust-colored" ,rust-colored-2) + ("rust-is-executable" ,rust-is-executable-1) + ("rust-goblin" ,rust-goblin-0.6) + ("rust-libloading" ,rust-libloading-0.7) + ("rust-promptly" ,rust-promptly-0.3) + ("rust-rayon" ,rust-rayon-1) + ("rust-reflink" ,rust-reflink-0.1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-derive" ,rust-serde-derive-1) + ("rust-serde-jsonrc" ,rust-serde-jsonrc-0.1) + ("rust-textwrap" ,rust-textwrap-0.16) + ("rust-toml" ,rust-toml-0.5) + ("rust-walkdir" ,rust-walkdir-2) + ("rust-which" ,rust-which-4) + ("rust-xdg" ,rust-xdg-2)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "tools/yabridgectl"))) + (add-after 'change-directory 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "src" + (substitute* '("config.rs" "main.rs") + (("/usr") (assoc-ref inputs "yabridge")))))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs #:allow-other-keys) + (wrap-program (string-append #$output "/bin/yabridgectl") + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append (assoc-ref inputs "yabridge") "/lib") + ,(string-append (assoc-ref inputs "dbus") "/lib"))) + `("PATH" ":" prefix + (,(string-append (assoc-ref inputs "yabridge") + "/bin"))))))))) + (native-inputs '()) + (inputs + (list bash-minimal dbus)) + (propagated-inputs + (list yabridge)) + (synopsis "Utility to set up and update yabridge") + (description + "@command{yabridgectl} is a tool to setup and update @code{yabridge}."))) -- 2.46.0 ^ permalink raw reply related [flat|nested] 40+ messages in thread
end of thread, other threads:[~2024-11-28 17:21 UTC | newest] Thread overview: 40+ 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 2024-11-28 17:15 ` [bug#66870] [PATCH v6 00/11] gnu: Add yabridge and yabridgectl Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 01/11] gnu: Add bitsery Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 02/11] gnu: Add function2 Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 03/11] gnu: Add clap Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 04/11] gnu: Add clap-1.1 Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 05/11] gnu: Add yabridge Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 06/11] gnu: rust-rustyline-9: Update to 9.1.2 Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 07/11] gnu: Add rust-promptly-0.3 Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 08/11] gnu: Add rust-reflink-0.1 Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 09/11] gnu: Add rust-ryu-0.2 Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 10/11] gnu: Add rust-serde-jsonrc-0.1 Sughosha via Guix-patches via 2024-11-28 17:15 ` [bug#66870] [PATCH v6 11/11] gnu: Add yabridgectl Sughosha via Guix-patches via
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.