Abort build when using unity builds with 7.21/7.22

This may help prevent some broken yabridge builds.
This commit is contained in:
Robbert van der Helm
2022-11-28 13:23:48 +01:00
parent 7728d9ceb1
commit 1f6b5a4a81
3 changed files with 40 additions and 3 deletions
+20
View File
@@ -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
+7 -3
View File
@@ -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
```
+13
View File
@@ -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