yabridge: fix build error after meson update (#418702)

authored by Kira Bruneau and committed by GitHub 18048ea6 3a2a0a71

+100 -1
+2
pkgs/tools/audio/yabridge/default.nix
··· 98 ''; 99 100 patches = [ 101 # Hard code bitbridge & runtime dependencies 102 (replaceVars ./hardcode-dependencies.patch { 103 libdbus = dbus.lib;
··· 98 ''; 99 100 patches = [ 101 + ./libyabridge-drop-32-bit-support.patch 102 + 103 # Hard code bitbridge & runtime dependencies 104 (replaceVars ./hardcode-dependencies.patch { 105 libdbus = dbus.lib;
+1 -1
pkgs/tools/audio/yabridge/hardcode-dependencies.patch
··· 5 @@ -226,7 +226,7 @@ if is_64bit_system 6 xcb_64bit_dep = dependency('xcb') 7 endif 8 - if with_32bit_libraries or with_bitbridge 9 - xcb_32bit_dep = winegcc.find_library('xcb') 10 + xcb_32bit_dep = winegcc.find_library('xcb', dirs: ['@libxcb32@/lib']) 11 endif
··· 5 @@ -226,7 +226,7 @@ if is_64bit_system 6 xcb_64bit_dep = dependency('xcb') 7 endif 8 + if with_bitbridge 9 - xcb_32bit_dep = winegcc.find_library('xcb') 10 + xcb_32bit_dep = winegcc.find_library('xcb', dirs: ['@libxcb32@/lib']) 11 endif
+97
pkgs/tools/audio/yabridge/libyabridge-drop-32-bit-support.patch
···
··· 1 + From 0002273e4df7c9448b52ce54ef38a93cf753fbfd Mon Sep 17 00:00:00 2001 2 + From: Robbert van der Helm <mail@robbertvanderhelm.nl> 3 + Date: Sun, 1 Jun 2025 22:22:20 +0200 4 + Subject: [PATCH] Drop the 32-bit libyabridge support for EnergyXT 5 + 6 + I don't think anyone is using this, and it's triggering a bug in recent 7 + Meson versions so just removing it for now should be fine. 8 + --- 9 + CHANGELOG.md | 9 +++++++++ 10 + README.md | 20 -------------------- 11 + meson.build | 12 +----------- 12 + 3 files changed, 10 insertions(+), 31 deletions(-) 13 + 14 + diff --git a/CHANGELOG.md b/CHANGELOG.md 15 + index 687e73b3..262ee298 100644 16 + --- a/CHANGELOG.md 17 + +++ b/CHANGELOG.md 18 + @@ -15,6 +15,15 @@ Versioning](https://semver.org/spec/v2.0.0.html). 19 + consuming too much memory. This only affected the prebuilt binaries from the 20 + releases page. 21 + 22 + +### Removed 23 + + 24 + +- Out of the box support for building a 32-bit version of yabridge for use in 25 + + 64-bit machines has been dropped as part of solving a compatibility issue with 26 + + newer Meson versions 27 + + ([#431](https://github.com/robbert-vdh/yabridge/issues/431)). This was only 28 + + relevant for using 64-bit Windows plugins in the old 32-bit Linux version of 29 + + **EnergyXT**, and should not affect most users. 30 + + 31 + ### yabridgectl 32 + 33 + - Fixed a regression that caused `yabridgectl set --path-auto` to no longer 34 + diff --git a/README.md b/README.md 35 + index 55155705..6019b67a 100644 36 + --- a/README.md 37 + +++ b/README.md 38 + @@ -886,26 +886,6 @@ Yabridge will detect whether the plugin you're trying to load is 32-bit or 39 + 64-bit, and will run either the regular version or the `*-32.exe` variant 40 + accordingly. 41 + 42 + -### 32-bit libraries 43 + - 44 + -It also possible to build 32-bit versions of yabridge's libraries, which would 45 + -let you use both 32-bit and 64-bit Windows VST2, VST3, and CLAP plugins from a 46 + -32-bit Linux plugin host. This is mostly untested since 32-bit only Linux 47 + -applications don't really exist anymore, but it should work! The build system 48 + -will still assume you're compiling from a 64-bit system, so if you're compiling 49 + -on an actual 32-bit system you would need to comment out the 64-bit 50 + -`yabridge-host` and `yabridge-group` binaries in `meson.build`: 51 + - 52 + -```shell 53 + -meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=1000 -Dbitbridge=true -Dbuild.cpp_args='-m32' -Dbuild.cpp_link_args='-m32' 54 + -ninja -C build 55 + -``` 56 + - 57 + -Like the above commands, you might need to tweak the unity size based on the 58 + -amount of system memory available. See the CI build definitions for some 59 + -examples on how to add static linking in the mix if you're going to run this 60 + -version of yabridge on some other machine. 61 + - 62 + ## Debugging 63 + 64 + Wine's error messages and warning are usually very helpful whenever a plugin 65 + diff --git a/meson.build b/meson.build 66 + index 9e69128d..98bf607e 100644 67 + --- a/meson.build 68 + +++ b/meson.build 69 + @@ -20,19 +17,12 @@ project( 70 + # need to pass `-Dbitbridge=true`. We just make sure that we won't build 71 + # any 64-bit binaries in that situation. 72 + is_64bit_system = build_machine.cpu_family() not in ['x86', 'arm'] 73 + -with_32bit_libraries = (not is_64bit_system) or get_option('build.cpp_args').contains('-m32') 74 + with_bitbridge = get_option('bitbridge') 75 + with_clap = get_option('clap') 76 + with_system_asio = get_option('system-asio') 77 + with_winedbg = get_option('winedbg') 78 + with_vst3 = get_option('vst3') 79 + 80 + -# Cookies can't be stored correctly when the native host is 32-bit and the 81 + -# bridged plugin is 64-bit 82 + -if with_clap and with_32bit_libraries and is_64bit_system 83 + - error('CLAP support will not work correctly when using 32-bit yabridge libraries together with 64-bit host binaries.') 84 + -endif 85 + - 86 + # 87 + # Compiler flags 88 + # 89 + @@ -225,7 +215,7 @@ winegcc = meson.get_compiler('cpp', native : false) 90 + if is_64bit_system 91 + xcb_64bit_dep = dependency('xcb') 92 + endif 93 + -if with_32bit_libraries or with_bitbridge 94 + +if with_bitbridge 95 + xcb_32bit_dep = winegcc.find_library('xcb') 96 + endif 97 +