From patchwork Mon Oct 28 09:46:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Graves X-Patchwork-Id: 69587 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 7B0D327BBEA; Mon, 28 Oct 2024 09:49:47 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id CD43627BBE2 for ; Mon, 28 Oct 2024 09:49:44 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t5MNP-0004qo-Vv; Mon, 28 Oct 2024 05:49:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t5MNL-0004nC-5t for guix-patches@gnu.org; Mon, 28 Oct 2024 05:49:28 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t5MNK-0002lL-1I for guix-patches@gnu.org; Mon, 28 Oct 2024 05:49:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=fRAxpcbzwUmbcq06yIHRhjI+/F5HKULR9P+vhU6LW38=; b=NbMLdKyifkAd9+FBATtUhgQBBD5RUsLVMPUvEvwP0ZfNkqDJHkZ8btnIZvj+24AYdAN5IiHCUI0yUjI0XKCiw7KFOyRaXtWfBvAKmGOhFwIfegcdFePhQgOy/nyDSQJ9318TRAUNuVDA9ilVY8iOz0BAkAEsGXR/C8Wk847yChnT26zU/VF2+v2Xs/URvdRh77MdmV6qD7sUVxHmNpbrnDATuRhmKGCB36RtgzD7HyZf/fuGEGoGLry+WcnGL0W4+pxdzH8hct0wji2uCAeCXmaGp6mdi0pstWzMD1RpiuY9N+LK4QXWdyUlwufoTTe4ehnf26/6RI5wfuGATup0aA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t5MNt-0006pi-U3 for guix-patches@gnu.org; Mon, 28 Oct 2024 05:50:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#66870] [PATCH v4 5/5] gnu: Add yabridge. Resent-From: Nicolas Graves Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 28 Oct 2024 09:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66870 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66870@debbugs.gnu.org Cc: Sughosha Received: via spool by 66870-submit@debbugs.gnu.org id=B66870.173010896926205 (code B ref 66870); Mon, 28 Oct 2024 09:50:01 +0000 Received: (at 66870) by debbugs.gnu.org; 28 Oct 2024 09:49:29 +0000 Received: from localhost ([127.0.0.1]:52601 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t5MNM-0006oa-8j for submit@debbugs.gnu.org; Mon, 28 Oct 2024 05:49:29 -0400 Received: from 16.mo581.mail-out.ovh.net ([46.105.72.216]:45049) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t5MNI-0006oN-4L for 66870@debbugs.gnu.org; Mon, 28 Oct 2024 05:49:26 -0400 Received: from director11.ghost.mail-out.ovh.net (unknown [10.108.25.233]) by mo581.mail-out.ovh.net (Postfix) with ESMTP id 4XcT9T6yp2z1FSc for <66870@debbugs.gnu.org>; Mon, 28 Oct 2024 09:48:45 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-gnvld (unknown [10.110.113.124]) by director11.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 678482006F; Mon, 28 Oct 2024 09:47:03 +0000 (UTC) Received: from ngraves.fr ([37.59.142.101]) by ghost-submission-5b5ff79f4f-gnvld with ESMTPSA id fxQCA5ddH2fgFBgAq+rktg (envelope-from ); Mon, 28 Oct 2024 09:47:03 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-101G004e1fde9ec-b878-43cd-bd6e-2a19b33a0e93, 2EBFFEBE9A2CEA4974D3D0C7E73B7B071B2C9EDA) smtp.auth=ngraves@ngraves.fr X-OVh-ClientIp: 89.85.243.20 Date: Mon, 28 Oct 2024 10:46:37 +0100 Message-ID: <20241028094646.3557-5-ngraves@ngraves.fr> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241028094646.3557-1-ngraves@ngraves.fr> References: <20241028094646.3557-1-ngraves@ngraves.fr> MIME-Version: 1.0 X-Ovh-Tracer-Id: 6743858969144386255 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeeftddrvdejiedgudegvdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomheppfhitgholhgrshcuifhrrghvvghsuceonhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrqeenucggtffrrghtthgvrhhnpeffgfeuueeggedttdfgfffhjeelhfffgeekudeftedtjeettdehffekveeijeduteenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhgvghnvghrihgtpghukehsthhrihhnghdrtghomhhprghrvgdpghgvnhgvrhhitggpshhtrhhinhhgrdgtohhmphgrrhgvnecukfhppeduvdejrddtrddtrddupdekledrkeehrddvgeefrddvtddpfeejrdehledrudegvddruddtudenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepnhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrpdhnsggprhgtphhtthhopedupdhrtghpthhtohepieeikeejtdesuggvsggsuhhgshdrghhnuhdrohhrghdpoffvtefjohhsthepmhhoheekuddpmhhouggvpehsmhhtphhouhht DKIM-Signature: a=rsa-sha256; bh=fRAxpcbzwUmbcq06yIHRhjI+/F5HKULR9P+vhU6LW38=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1730108926; v=1; b=gZWqD75xoDNjWJ7kRehyl4JePQScdgudkX38Lb98YNN+1GmBNy89NUErEJ03//cSmWv6RFby H3Xo079lto8W4O7h06C9Slug2H+Vp73t+tSw08tC6hNprQbVjp5w1amkMzjC0WgEc2ACiqsiwVn yIcIz2VOk2bAjTn7ufFVl5PyXx/w1Co/L9Ms125ozaY8dA5Cc6CBVZY1/x6Bmj9w57i0Ssl59y5 3kf8M9pC765LywRwpaAkqGZwVzyRAcQRxmcYNxVa3AfcptqWQ/bvso4z4LOwWJ1xCI5AW2F0qCF Hr/wzSo7/4UtyWCnAl9FQB5Ypi5ESBnNLMG5EWXS6pOdg== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Nicolas Graves X-ACL-Warn: , Nicolas Graves via Guix-patches X-Patchwork-Original-From: Nicolas Graves via Guix-patches via From: Nicolas Graves Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches From: Sughosha * 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 + #endif +-#define vsnprintf _vsnprintf +-#define snprintf _snprintf + + #elif SMTG_OS_MACOS + #include +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 ++#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 (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 + #include + +-#if SMTG_CPP17 +- +-#if __has_include() +-#define USE_FILESYSTEM 1 +-#elif __has_include() +-#define USE_FILESYSTEM 0 +-#endif +- +-#else // !SMTG_CPP17 +- +-#define USE_FILESYSTEM 0 +- +-#endif // SMTG_CPP17 +- +-#if USE_FILESYSTEM == 1 +- +-#include +-namespace filesystem = std::filesystem; +- +-#else // USE_FILESYSTEM == 0 +- +-// The header is deprecated. It is superseded by the C++17 +-// 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 +-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 ++namespace filesystem = ghc::filesystem; + + #pragma comment(lib, "Shell32") + +@@ -320,7 +295,7 @@ VST3::Optional 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 (&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)