[PATCH 0/6] Add yabridge.

  • Open
  • quality assurance status badge
Details
2 participants
  • Gabriel Wicki
  • Sughosha
Owner
unassigned
Submitted by
Sughosha
Severity
normal
S
S
Sughosha wrote on 1 Nov 2023 10:07
[PATCH 0/6] gnu: Add yabridge.
(address . guix-patches@gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
cover.1698829285.git.sughosha@disroot.org
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
S
S
Sughosha wrote on 1 Nov 2023 10:09
[PATCH 1/6] gnu: asio: Update to 1.28.0.
(address . 66870@debbugs.gnu.org)(name . Sughosha)(address . sughosha@proton.me)
cd33a672a97b984133ed98b96d8050959277c06f.1698829285.git.sughosha@disroot.org
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(-)

Toggle diff (24 lines)
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
S
S
Sughosha wrote on 1 Nov 2023 10:09
[PATCH 2/6] gnu: Add bitsery.
(address . 66870@debbugs.gnu.org)(name . Sughosha)(address . sughosha@proton.me)
569e9401ff75a25937a96c1acbe8dbb0f04d4ca3.1698829285.git.sughosha@disroot.org
From: Sughosha <sughosha@proton.me>

* gnu/packages/cpp.scm (bitsery): New variable.
---
gnu/packages/cpp.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
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
S
S
Sughosha wrote on 1 Nov 2023 10:09
[PATCH 3/6] gnu: Add function2.
(address . 66870@debbugs.gnu.org)(name . Sughosha)(address . sughosha@proton.me)
ee00a117b9678a612b9ebac0ecd9c92387b5f55f.1698829285.git.sughosha@disroot.org
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(+)

Toggle diff (46 lines)
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
S
S
Sughosha wrote on 1 Nov 2023 10:09
[PATCH 5/6] gnu: Add clap.
(address . 66870@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
1998f3b99d5d118b047b8ece6333ddb11988b7cc.1698829285.git.sughosha@disroot.org
* gnu/packages/audio.scm (clap): New variable.

Change-Id: I595adff236eacaf2934f4649e2f27a367f33d0ae
---
gnu/packages/audio.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
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
S
S
Sughosha wrote on 1 Nov 2023 10:09
[PATCH 6/6] gnu: Add yabridge.
(address . 66870@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
16a0c66df80da5013e2d12979b6829e6273338cb.1698829285.git.sughosha@disroot.org
* 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

Toggle diff (416 lines)
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
S
S
Sughosha wrote on 1 Nov 2023 10:09
[PATCH 4/6] gnu: Add tomlplusplus.
(address . 66870@debbugs.gnu.org)(name . Sughosha)(address . sughosha@disroot.org)
70d0b1f869f5e305c8f74c307b74a42ff47e5359.1698829285.git.sughosha@disroot.org
* gnu/packages/cpp.scm (tomlplusplus): New variable.

Change-Id: I7c12b76fe135cd22b54a56560aac699e452009bb
---
gnu/packages/cpp.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (42 lines)
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
S
S
Sughosha wrote on 1 Nov 2023 10:24
(address . control@debbugs.gnu.org)
BC29CF01-11F4-40F4-A32D-7B255814EAD7@disroot.org
merge 66870 63065
quit
Attachment: file
S
S
Sughosha wrote on 1 Nov 2023 10:28
(address . control@debbugs.gnu.org)
DE46F1CE-E15D-424A-BFF8-2FCFD2870356@disroot.org
retitle 63065 [PATCH v4 0/7] gnu: Add yabridgectl.
quit
Attachment: file
S
S
sughosha wrote on 8 Nov 2023 15:22
(address . control@debbugs.gnu.org)
4a157948b5ac0ca4293ff61b80a91ef8@disroot.org
unmerge 63065

quit
Attachment: file
G
G
Gabriel Wicki wrote on 29 Nov 2023 14:25
(address . control@debbugs.gnu.org)
xzasa4jvsferwqw2rhjowxcnff3k6a4ykazss3aw3av3hiuir4@ptegcj4viy7z
retitle 66870 [PATCH 0/6] Add yabridge.
thanks
G
G
Gabriel Wicki wrote on 29 Nov 2023 15:48
Review
(name . Sughosha)(address . sughosha@disroot.org)(address . 66870@debbugs.gnu.org)
kfwilbbj5xvbrd6qxt6wg5qtobqmqjwbiyhes2qcoiin4r2mgh@hvcxlt5gdttz
Hi

So i've de-frizzled the patches by renaming #66870 to "[PATCH 0/6] Add
yabridge."

[PATCH 1/6] looks good to me! Have you checked the packages depending
on asio still build and work?

You can check the dependents with this command:

$ guix refresh -l asio
Building the following 8 packages would ensure 16 dependent packages are rebuilt: emacs-ob-sclang@0.1-1.cd3f3c8 cl-collider@2018.7.15-0.a469088 ecl-cl-collider@2018.7.15-0.a469088 gnome-arcade@0.240 widelands@1.1 musikcube@3.0.1 jami@20230323.0 restbed@4.8

I checked and they all still build fine :)

[PATCH 2/6] LGTM.

[PATCH 3/6] Looks goot, although I am a bit confused WRT the comment for
the (recursive #t) clause in the (source ..) field (indicating we need
to recursively copy the repo for the tests to complete) and argument
(#:tests? #f) indicating that the tests wouldn't be run.

[PATCH 4/6] LGTM.

[PATCH 5/6] LGTM.

[PATCH 6/6] Wow, now this is a big one! Apart from the following
comments this looks good to me!

- I'm not sure whether your (let ((arch))) clause isn't an abuse; you
test whether (%current-system) is either x86_64-linux or aarch64-linux
and set it to x86_64-unix and i386-unix otherwise. Does this actually
work for aarch64-linux systems? You could make use of the
target-64-bit? function in (guix utils) and only allow the package to
build on x86 systems. Also, you inherit wine64's supported-systems
field - which only lists x86_64-linux. Building for i368 seems to be
unsupported by our wine packages (or wine in general?)

- I'm a bit confused about your patch series adding clap 1.1.9 -
although yabridge seems to need 1.1.7. Why not add clap@1.1.7 with this
series and with the next upgrade of yabridge also update clap?
- Similar with input vst3sdk: Why not add it as a separate package?
If I interpret the situation correctly, using default definitions of
these inputs could also let you simplify your native-inputs list to the
new style.



All packages built fine and running $(guix style) didn't change
anything.
$(guix lint) on the patched packages gave the following output:

~/src/guix/gnu/packages/networking.scm:3431:15: asio@1.28.0: permanent
fetching CVE database for 2023...
~/src/guix/gnu/packages/networking.scm:3417:5: asio@1.28.0:
source not archived on Software Heritage and missing from the Disarchive
database
~/src/guix/gnu/packages/cpp.scm:2311:13: function2@4.2.3:
can be upgraded to 4.2.4
~/src/guix/gnu/packages/audio.scm:2724:13: clap@1.1.9: can
be upgraded to 1.1.10
~/src/guix/gnu/packages/audio.scm:6002:0: yabridge@5.0.5:
line 6002 is way too long (95 characters)
~/src/guix/gnu/packages/audio.scm:6013:0: yabridge@5.0.5:
line 6013 is way too long (100 characters)



Please send in a updated patch-set.

Thanks for your time and effort!
g
S
S
sughosha wrote on 30 Nov 2023 09:15
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)(address . 66870@debbugs.gnu.org)
8C60685B-138C-4D25-9598-3DA6EDC52C53@disroot.org
Hi,

Thanks for the review.

Toggle quote (3 lines)
> So i've de-frizzled the patches by renaming #66870 to "[PATCH 0/6] Add
> yabridge."

Thank you.

Toggle quote (3 lines)
> [PATCH 1/6] looks good to me! Have you checked the packages depending
> on asio still build and work?

I checked only musikcube, jami and widelands and they worked fine.
Others
must work as well.

Toggle quote (6 lines)
> [PATCH 3/6] Looks goot, although I am a bit confused WRT the comment
> for
> the (recursive #t) clause in the (source ..) field (indicating we need
> to recursively copy the repo for the tests to complete) and argument
> (#:tests? #f) indicating that the tests wouldn't be run.

Removed "(recursive #t)".

Toggle quote (9 lines)
> - I'm not sure whether your (let ((arch))) clause isn't an abuse; you
> test whether (%current-system) is either x86_64-linux or aarch64-linux
> and set it to x86_64-unix and i386-unix otherwise. Does this actually
> work for aarch64-linux systems? You could make use of the
> target-64-bit? function in (guix utils) and only allow the package to
> build on x86 systems. Also, you inherit wine64's supported-systems
> field - which only lists x86_64-linux. Building for i368 seems to be
> unsupported by our wine packages (or wine in general?)

Removed the substitute as it is no more needed.

Toggle quote (4 lines)
> - I'm a bit confused about your patch series adding clap 1.1.9 -
> although yabridge seems to need 1.1.7. Why not add clap@1.1.7 with this
> series and with the next upgrade of yabridge also update clap?

Moved clap@1.1.7 to a seperate definition.

Toggle quote (5 lines)
> - Similar with input vst3sdk: Why not add it as a separate package?
> If I interpret the situation correctly, using default definitions of
> these inputs could also let you simplify your native-inputs list to the
> new style.

This vst3sdk is not the original one. It is found in a different
repository than the original one and is suppose to clone as subproject.
So
it does not make sense to package it in a seperate definition.

Toggle quote (19 lines)
> $(guix lint) on the patched packages gave the following output:
>
> ~/src/guix/gnu/packages/networking.scm:3431:15: asio@1.28.0: permanent
> redirect from https://think-async.com/Asio to
> https://think-async.com/Asio/
> fetching CVE database for 2023...
> ~/src/guix/gnu/packages/networking.scm:3417:5: asio@1.28.0:
> source not archived on Swith "(let ((arch)))"oftware Heritage and
> missing from the Disarchive
> database
> ~/src/guix/gnu/packages/cpp.scm:2311:13: function2@4.2.3:
> can be upgraded to 4.2.4
> ~/src/guix/gnu/packages/audio.scm:2724:13: clap@1.1.9: can
> be upgraded to 1.1.10
> ~/src/guix/gnu/packages/audio.scm:6002:0: yabridge@5.0.5:
> line 6002 is way too long (95 characters)
> ~/src/guix/gnu/packages/audio.scm:6013:0: yabridge@5.0.5:
> line 6013 is way too long (100 characters)

Fixed and updated these packages.

I will submit the v2 patches with the above changes.

Regards,
Sughosha
S
S
Sughosha wrote on 30 Nov 2023 10:02
[PATCH v2 1/7] gnu: asio: Update to 1.28.0.
(address . 66870@debbugs.gnu.org)
6f5cc74f73fb4f4a28c2e40b525058f2b3005ad0.1701334597.git.sughosha@disroot.org
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(-)

Toggle diff (33 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 10:02
[PATCH v2 0/7] gnu: Add yabridge.
(address . 66870@debbugs.gnu.org)
cover.1701334597.git.sughosha@disroot.org
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
S
S
Sughosha wrote on 30 Nov 2023 10:02
[PATCH v2 2/7] gnu: Add bitsery.
(address . 66870@debbugs.gnu.org)
a4169fed966e2980c17b9c0db182734f6502562c.1701334597.git.sughosha@disroot.org
From: Sughosha <sughosha@proton.me>

* gnu/packages/cpp.scm (bitsery): New variable.
---
gnu/packages/cpp.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 10:02
[PATCH v2 4/7] gnu: Add tomlplusplus.
(address . 66870@debbugs.gnu.org)
4a63919d60c7b947d990be5faf4d42ccf3d71107.1701334597.git.sughosha@disroot.org
* gnu/packages/cpp.scm (tomlplusplus): New variable.

Change-Id: I7c12b76fe135cd22b54a56560aac699e452009bb
---
gnu/packages/cpp.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (42 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 10:02
[PATCH v2 5/7] gnu: Add clap.
(address . 66870@debbugs.gnu.org)
3ea9ec83b90d6d852065c7810ad5d0907579dc51.1701334597.git.sughosha@disroot.org
* gnu/packages/audio.scm (clap): New variable.

Change-Id: I595adff236eacaf2934f4649e2f27a367f33d0ae
---
gnu/packages/audio.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 10:02
[PATCH v2 3/7] gnu: Add function2.
(address . 66870@debbugs.gnu.org)
eda28672b93c14b67a5acc639fd6f52ed51cfe2d.1701334597.git.sughosha@disroot.org
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(+)

Toggle diff (43 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 10:02
[PATCH v2 6/7] gnu: Add clap-1.1.7.
(address . 66870@debbugs.gnu.org)
d260ec53102dfdce06fbac3dd27322bc84d4c94e.1701334597.git.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(+)

Toggle diff (27 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 10:02
[PATCH v2 7/7] gnu: Add yabridge.
(address . 66870@debbugs.gnu.org)
4481b93da8aad542e3e65080e17271055482c3cb.1701334597.git.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 | 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

Toggle diff (376 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 11:09
Re: Review
(name . Gabriel Wicki)(address . gabriel@erlikon.ch)(address . 66870@debbugs.gnu.org)
88DDB778-4EFD-4FE8-802F-2E75FADFE48E@disroot.org
A small thing to remove in [PATCH v2 7/7]:
in yabridge definition, "(modules '((guix build utils)))" inside "(source)" is not needed. If you can remove it before merging, it would be great.

Thank you.
Attachment: file
S
S
Sughosha wrote on 30 Nov 2023 11:32
[PATCH v3 2/7] gnu: Add bitsery.
(address . 66870@debbugs.gnu.org)
a4169fed966e2980c17b9c0db182734f6502562c.1701340263.git.sughosha@disroot.org
From: Sughosha <sughosha@proton.me>

* gnu/packages/cpp.scm (bitsery): New variable.
---
gnu/packages/cpp.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 11:32
[PATCH v3 1/7] gnu: asio: Update to 1.28.0.
(address . 66870@debbugs.gnu.org)
6f5cc74f73fb4f4a28c2e40b525058f2b3005ad0.1701340263.git.sughosha@disroot.org
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(-)

Toggle diff (35 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 11:32
[PATCH v3 5/7] gnu: Add clap.
(address . 66870@debbugs.gnu.org)
3ea9ec83b90d6d852065c7810ad5d0907579dc51.1701340263.git.sughosha@disroot.org
* gnu/packages/audio.scm (clap): New variable.

Change-Id: I595adff236eacaf2934f4649e2f27a367f33d0ae
---
gnu/packages/audio.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 11:32
[PATCH v3 3/7] gnu: Add function2.
(address . 66870@debbugs.gnu.org)
eda28672b93c14b67a5acc639fd6f52ed51cfe2d.1701340263.git.sughosha@disroot.org
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(+)

Toggle diff (43 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 11:32
[PATCH v3 4/7] gnu: Add tomlplusplus.
(address . 66870@debbugs.gnu.org)
4a63919d60c7b947d990be5faf4d42ccf3d71107.1701340263.git.sughosha@disroot.org
* gnu/packages/cpp.scm (tomlplusplus): New variable.

Change-Id: I7c12b76fe135cd22b54a56560aac699e452009bb
---
gnu/packages/cpp.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (42 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 11:32
[PATCH v3 6/7] gnu: Add clap-1.1.7.
(address . 66870@debbugs.gnu.org)
d260ec53102dfdce06fbac3dd27322bc84d4c94e.1701340263.git.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(+)

Toggle diff (27 lines)
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
S
S
Sughosha wrote on 30 Nov 2023 11:32
[PATCH v3 7/7] gnu: Add yabridge.
(address . 66870@debbugs.gnu.org)
0dd723d14d26f8ecb64fe829a046452e2189b69b.1701340263.git.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 | 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

Toggle diff (375 lines)
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
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 66870@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 66870
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch