# https://gitlab.archlinux.org/archlinux/packaging/packages/yabridge # https://gitlab.archlinux.org/archlinux/packaging/packages/vst3sdk ##trace # force single job compilation %define _smp_mflags -j1 %undefine _hardened_build %undefine _include_frame_pointers %global debug_package %{nil} %global _lto_cflags %{nil} %global wineversion 10.19 %global vst3sdkversion v3.7.7_build_19-patched #%%global vst3sdkversion v3.7.12_build_20-patched %global vst3ver %(b=%{vst3sdkversion}; echo ${b:1:6}) %global gitdate 20251117 %global commit cca31898558142e21dfac4881f95016f674183ce %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global version 5.1.2 %global release 1 # set this to "1" if building a git/beta/rc release %global beta_or_rc 1 #============================================================================= # general #----------------------------------------------------------------------------- Name: yabridge Version: %{version} %if %{beta_or_rc} Release: 0.%{release}.%{gitdate}.git%{shortcommit}%{?dist} %else Release: %{release}%{?dist} %endif Summary: Yet Another VST bridge, run Windows VST2 plugins under Linux License: GPLv3 URL: https://github.com/robbert-vdh/yabridge %if %{beta_or_rc} Source0: https://github.com/robbert-vdh/yabridge/archive/{commit}/%{name}-%{version}-git%{shortcommit}.tar.gz #Source0: https://github.com/robbert-vdh/yabridge/archive/yabridge-master.zip %else Source0: https://github.com/robbert-vdh/yabridge/archive/%{version}/%{name}-%{version}.tar.gz %endif # https://github.com/robbert-vdh/vst3sdk # git clone --recursive https://github.com/steinbergmedia/vst3sdk # git checkout v3.7.7_build_19-patched # ~/bin/git-archive-all.sh --format=tar.gz --prefix=vst3/ -o ../vst3sdk-v3.7.7_build_19-patched.tar.gz v3.7.7_build_19-patched ## ~/bin/git-archive-all.sh --format=tar.gz --prefix=vst3/ -o ../vst3sdk-v3.7.9_build_61.tar.gz v3.7.9_build_61 Source4: vst3sdk-%{vst3sdkversion}.tar.gz #Source5: vst3sdk-meson.build # Patch0: 0001-Change-version-to-5.1.2.patch # BuildRequires: vim BuildRequires: cmake BuildRequires: cargo BuildRequires: git-core BuildRequires: meson >= 0.56 BuildRequires: gcc BuildRequires: gcc-c++ #BuildRequires: asio-devel BuildRequires: boost BuildRequires: boost-devel BuildRequires: boost-filesystem BuildRequires: boost-system BuildRequires: dbus-devel BuildRequires: git-core BuildRequires: glibc-devel BuildRequires: libstdc++-devel BuildRequires: libxcb-devel BuildRequires: rust BuildRequires: wine-devel = %{wineversion} BuildRequires: xcb-util-wm-devel BuildArch: x86_64 Requires: boost Requires: boost-filesystem Requires: boost-system Requires: libxcb Requires: libXau Requires: python3 Requires: wine = %{wineversion} %description Yet Another way to use Windows VST plugins on Linux. Yabridge seamlessly supports running both 64-bit Windows VST2 plugins as well as 32-bit Windows VST2 plugins in a 64-bit Linux VST host. This project aims to be as transparent as possible to achieve the best possible plugin compatibility while also staying easy to debug and maintain. #============================================================================= # prep #----------------------------------------------------------------------------- %prep %if %{beta_or_rc} %autosetup -p1 -n %{name} %else %autosetup -p1 -n %{name}-%{version} %endif # vst3sdk pushd subprojects/ tar -xzf %{SOURCE4} popd # rename migration README.md for easier inclusion in the package mv -v tools/migration/README.md tools/migration/README-migration.md # sync yabridgectl version with yabridge version %if %{beta_or_rc} sed -i -e's|^version.*$|version = "%{version}"|' tools/yabridgectl/Cargo.toml %endif # hack: fix problem with detecting the wine version #sed -i -e"s|wine_version = wine_version.stdout()|wine_version = '%%{wineversion}'|" meson.build #============================================================================= # build #----------------------------------------------------------------------------- %build export LDFLAGS="%{build_ldflags}" meson setup . \ --buildtype=release \ --cross-file cross-wine.conf \ -D bitbridge=false \ -D b_lto=false \ -D b_pie=false \ -D build.cpp_link_args="$LDFLAGS" \ -D cpp_link_args="$LDFLAGS -mwindows" \ --unity=on --unity-size=1000 \ build ninja -v %{_smp_mflags} -C build pushd tools/yabridgectl cargo build --release --all-features popd #============================================================================= # check #----------------------------------------------------------------------------- %check # there are no tests # ninja test -v -j1 -C build test #============================================================================= # install #----------------------------------------------------------------------------- %install # create directories install -d -m0755 %{buildroot}%{_bindir} install -d -m0755 %{buildroot}%{_libdir} # install apps and libs install -D -m 0755 build/yabridge-host*.exe* %{buildroot}%{_bindir}/ install -D -m 0755 build/libyabridge-chainloader-vst*.so %{buildroot}%{_libdir}/ install -D -m 0755 build/libyabridge-chainloader-clap*.so %{buildroot}%{_libdir}/ install -D -m 0755 build/libyabridge-vst*.so %{buildroot}%{_libdir}/ install -D -m 0755 build/libyabridge-clap*.so %{buildroot}%{_libdir}/ # install tool install -D -m 0755 tools/yabridgectl/target/release/yabridgectl %{buildroot}%{_bindir}/ # install migration scripts install -D -m 0755 tools/migration/*.py %{buildroot}%{_bindir}/ #============================================================================= # files #----------------------------------------------------------------------------- %files %defattr(-,root,root) %license COPYING %doc CHANGELOG.md README.md ROADMAP.md tools/migration/README-migration.md %attr(0755,root,root) %{_bindir}/yabridgectl %attr(0755,root,root) %{_bindir}/yabridge-host.exe %attr(0755,root,root) %{_bindir}/yabridge-host.exe.so # migration scripts %attr(0755,root,root) %{_bindir}/migrate-ardour.py %attr(0755,root,root) %{_bindir}/migrate-bitwig.py %attr(0755,root,root) %{_bindir}/migrate-reaper.py %attr(0755,root,root) %{_bindir}/migrate-renoise.py # %attr(0755,root,root) %{_libdir}/libyabridge-chainloader-clap.so %attr(0755,root,root) %{_libdir}/libyabridge-chainloader-vst2.so %attr(0755,root,root) %{_libdir}/libyabridge-chainloader-vst3.so # %attr(0755,root,root) %{_libdir}/libyabridge-clap.so %attr(0755,root,root) %{_libdir}/libyabridge-vst2.so %attr(0755,root,root) %{_libdir}/libyabridge-vst3.so #============================================================================= # post #----------------------------------------------------------------------------- %post /sbin/ldconfig #============================================================================= # postun #----------------------------------------------------------------------------- %postun /sbin/ldconfig #============================================================================= # changelog #----------------------------------------------------------------------------- %changelog * Tue Nov 18 2025 Patrick Laimbock - 5.1.2-0.1 - initial release for F43 - uses new-wine10-embedding branch - requires wine-10.19