* [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
` (8 more replies)
0 siblings, 9 replies; 27+ 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] 27+ 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
` (7 subsequent siblings)
8 siblings, 0 replies; 27+ 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] 27+ 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
` (6 subsequent siblings)
8 siblings, 0 replies; 27+ 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] 27+ 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
` (5 subsequent siblings)
8 siblings, 0 replies; 27+ 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] 27+ 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
` (4 subsequent siblings)
8 siblings, 0 replies; 27+ 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] 27+ 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
` (3 subsequent siblings)
8 siblings, 0 replies; 27+ 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] 27+ 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
` (2 subsequent siblings)
8 siblings, 0 replies; 27+ 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] 27+ 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
2024-10-28 9:46 ` [bug#66870] [PATCH v4 1/5] gnu: Add bitsery Nicolas Graves via Guix-patches via
8 siblings, 7 replies; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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
8 siblings, 6 replies; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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)
8 siblings, 4 replies; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ 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; 27+ 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] 27+ messages in thread
end of thread, other threads:[~2024-10-28 9:49 UTC | newest]
Thread overview: 27+ 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
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.