diff --git a/CHANGELOG.md b/CHANGELOG.md index c53f931c..92bee5d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,20 @@ Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +# Changed + +- The yabridge builds on the GitHub releases page now have the unity build + option disabled. This _may_ work around the same Wine bug + [#53912](https://bugs.winehq.org/show_bug.cgi?id=53912) mentioned in the last + release, as the issue has not yet been fixed for Wine 7.22. But since this is + a low level bug within Wine, there's no guarantee that everything will work + correctly. If you still experience crashes or freezes with yabridge, then do + consider + [downgrading](https://github.com/robbert-vdh/yabridge#downgrading-wine) back + to Wine Staging 7.20. +- Yabridge's build system now errors out when doing unity builds with compiling + with Wine 7.21 and 7.22. + # Fixed - Changed the behavior when setting window positions for yabridge's editor. This @@ -16,6 +30,12 @@ Versioning](https://semver.org/spec/v2.0.0.html). redraw GUI, and especially with window managers that send excessive events on window movement like in Cinnamon and XFCE. +### Packaging notes + +- The `--unity=on` build option should be removed for the time being as this + together with the VST3 SDK triggers the above mentioned [Wine + bug](https://bugs.winehq.org/show_bug.cgi?id=53912). + ## [5.0.1] - 2022-11-14 # Fixed diff --git a/README.md b/README.md index b1c5d66a..40fa9522 100644 --- a/README.md +++ b/README.md @@ -818,13 +818,17 @@ The following dependencies are included in the repository as a Meson wrap: to allow Winelib compilation - Version 1.1.1 of the [CLAP headers](https://github.com/free-audio/clap). -The project can then be compiled with the command below. You can remove or +The project can then be compiled with the command below. ~~You can remove or change the unity size argument if building takes up too much RAM, or you can disable unity builds completely by getting rid of `--unity=on` at the cost of -slightly longer build times. +slightly longer build times.~~ This build command used to contain the +`--unity=on --unity-size=1000` option to reduce compile times and to allow for +better optimization. These options have temporarily been removed as they'll +result in a non-functional yabridge when used with Wine 7.21 and 7.22 due to +Wine bug [#53912](https://bugs.winehq.org/show_bug.cgi?id=53912). ```shell -meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=1000 +meson setup build --buildtype=release --cross-file=cross-wine.conf ninja -C build ``` diff --git a/meson.build b/meson.build index 9e01f1c9..9c504367 100644 --- a/meson.build +++ b/meson.build @@ -165,6 +165,19 @@ if wine_version.returncode() == 0 message('- Using legacy winedbg argument quoting') compiler_options += '-DWINEDBG_LEGACY_ARGUMENT_QUOTING' endif + # If the bug is not fixed in time for Wine 7.23, which is probably won't be, + # then this conditional won't be effective anymore for already released + # yabridge builds. But it may prevent some incorrectly packaged yabridge + # builds in the meantime. + if wine_version.stdout().version_compare('>=7.21') and \ + wine_version.stdout().version_compare('<7.23') and \ + get_option('unity') == 'on' + error('This version of Wine contains a bug that may cause yabridge to freeze ' + + 'or crash on startup when the --unity=true option is enabled. ' + + 'Remove this error from the meson.build file at your own risk if you ' + + 'want to keep using unity builds.\n\n' + + 'https://bugs.winehq.org/show_bug.cgi?id=53912') + endif else warning('Unable to determine the current Wine version') endif