%global debug_package %{nil} %{?mingw_package_header} %undefine _include_frame_pointers %ifarch x86_64 %global winepedir x86_64-windows %global target_x86_type 64 %global mingw_sysroot %mingw64_sysroot %global mingw_build_win64 1 %global mingw_build_win32 0 %else %global winepedir i386-windows %global target_x86_type 32 %global mingw_sysroot %mingw32_sysroot %global mingw_build_win64 0 %global mingw_build_win32 1 %endif %global wineversion 9.4 %global gitdate 20240824 %global commit 1c30bc92bb49b67631abcccda884bab141f9ccb6 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global version 2.5.1 %global release 1 # set this to "1" if building a git/beta/rc release %global beta_or_rc 0 Name: wine-dxvk Version: %{version} %if %{beta_or_rc} Release: 0.%{release}.%{gitdate}.git%{shortcommit}%{?dist} %else Release: %{release}%{?dist} %endif Summary: Vulkan-based D3D11 implementation for Linux / Wine License: zlib URL: https://github.com/doitsujin/dxvk %if %{beta_or_rc} # git clone --recursive https://github.com/doitsujin/dxvk.git # git submodule update --init # ~/bin/git-archive-all.sh --format=tar.gz --prefix=dxvk/ -o ../dxvk-2.5.2-git1c30bc9.tar.gz Source0: %{url}/archive/%{commit}/dxvk-%{version}-git%{shortcommit}.tar.gz %else # git checkout v2.5.1 # ~/bin/git-archive-all.sh --format=tar.gz --prefix=dxvk-2.5.1/ -o ../dxvk-2.5.1.tar.gz Source0: %{url}/archive/v%{version}/dxvk-%{version}.tar.gz %endif # original at https://gist.github.com/doitsujin/1652e0e3382f0e0ff611e70142684d01 # https://aur.archlinux.org/packages/dxvk-bin Source1: setup_dxvk.sh BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glslang BuildRequires: meson BuildRequires: wine-devel = %{wineversion} %ifarch x86_64 BuildRequires: mingw64-filesystem BuildRequires: mingw64-binutils BuildRequires: mingw64-headers BuildRequires: mingw64-cpp BuildRequires: mingw64-gcc BuildRequires: mingw64-gcc-c++ BuildRequires: mingw64-winpthreads-static %else BuildRequires: mingw32-filesystem BuildRequires: mingw32-binutils BuildRequires: mingw32-headers BuildRequires: mingw32-cpp BuildRequires: mingw32-gcc BuildRequires: mingw32-gcc-c++ BuildRequires: mingw32-winpthreads-static %endif Requires(pre): vulkan-tools Requires: wine-core%{?_isa} = %{wineversion} Requires: wine-dxvk-dxgi%{?_isa} = %{version}-%{release} Requires: vulkan-loader%{?_isa} # We want x86_64 users to always have also 32 bit lib, it's the same what wine does %ifarch x86_64 Requires: wine-dxvk(x86-32) = %{version}-%{release} %endif # Recommend also the d3d9 (former D9VK) #Requires: wine-dxvk-d3d8%%{?_isa} = %%{version}-%%{release} Requires: wine-dxvk-d3d9%{?_isa} = %{version}-%{release} #Requires(posttrans): %%{_sbindir}/alternatives wine-core%%{?_isa} >= 6.8 #Requires(preun): %%{_sbindir}/alternatives ExclusiveArch: %{ix86} x86_64 %description %{summary} %package dxgi Summary: DXVK DXGI implementation Requires: wine-dxvk%{?_isa} = %{version}-%{release} %ifarch x86_64 Requires: wine-dxvk-dxgi(x86-32) = %{version}-%{release} %endif %description dxgi %{summary} This package does not enable the use of this DXGI implementation, it should be installed and overridden per prefix. %package d3d8 Summary: DXVK D3D8 implementation Requires: wine-dxvk%{?_isa} = %{version}-%{release} # We want x86_64 users to always have also 32 bit lib, it's the same what wine does %ifarch x86_64 Requires: wine-dxvk-d3d8(x86-32) = %{version}-%{release} %endif %description d3d8 %{summary} %package d3d9 Summary: DXVK D3D9 implementation Requires: wine-dxvk%{?_isa} = %{version}-%{release} # We want x86_64 users to always have also 32 bit lib, it's the same what wine does %ifarch x86_64 Requires: wine-dxvk-d3d9(x86-32) = %{version}-%{release} %endif %description d3d9 %{summary} %prep %if %{beta_or_rc} %setup -q -n dxvk %else %setup -q -n dxvk-%{version} %endif %ifarch %{ix86} sed -i -e's|^#include |#include \n#include |' src/d3d9/d3d9_mem.cpp %endif %build %mingw_meson --wrap-mode=nodownload --auto-features=enabled --cross-file ../build-win%{target_x86_type}.txt --buildtype "release" -Dbuild_id=true %mingw_ninja %install %mingw_ninja_install mkdir -p %{buildroot}%{_datadir}/dxvk/x%{__isa_bits} install -p -m 644 %{buildroot}%{mingw_sysroot}/mingw/bin/dxgi.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/dxgi.dll install -p -m 644 %{buildroot}%{mingw_sysroot}/mingw/bin/d3d8.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/d3d8.dll install -p -m 644 %{buildroot}%{mingw_sysroot}/mingw/bin/d3d9.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/d3d9.dll install -p -m 644 %{buildroot}%{mingw_sysroot}/mingw/bin/d3d10core.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/d3d10core.dll install -p -m 644 %{buildroot}%{mingw_sysroot}/mingw/bin/d3d11.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/d3d11.dll # clean-up rm -rf %{buildroot}%{mingw_sysroot}/mingw # install setup_dxvk.sh mkdir -p %{buildroot}%{_bindir} install -D -m0755 %{SOURCE1} %{buildroot}%{_bindir}/ %pre # remove wine-dxxx references from alternatives, use setup_dxvk.sh instead %{_sbindir}/alternatives --remove-all 'wine-dxgi%{?_isa}' 2>/dev/null || : #%%{_sbindir}/alternatives --remove-all 'wine-d3d8%%{?_isa}' 2>/dev/null || : %{_sbindir}/alternatives --remove-all 'wine-d3d9%{?_isa}' 2>/dev/null || : %{_sbindir}/alternatives --remove-all 'wine-d3d10%{?_isa}' 2>/dev/null || : %{_sbindir}/alternatives --remove-all 'wine-d3d10core%{?_isa}' 2>/dev/null || : %{_sbindir}/alternatives --remove-all 'wine-d3d11%{?_isa}' 2>/dev/null || : %files %license LICENSE %doc README.md %{_bindir}/setup_dxvk.sh %{_datadir}/dxvk/x%{__isa_bits}/d3d10core.dll %{_datadir}/dxvk/x%{__isa_bits}/d3d11.dll %files d3d8 %license LICENSE %{_datadir}/dxvk/x%{__isa_bits}/d3d8.dll %files d3d9 %license LICENSE %{_datadir}/dxvk/x%{__isa_bits}/d3d9.dll %files dxgi %license LICENSE %{_datadir}/dxvk/x%{__isa_bits}/dxgi.dll %changelog * Mon Nov 18 2024 Patrick Laimbock - 2.5.1-1 - update to version 2.5.1 * Fri Nov 15 2024 Patrick Laimbock - 2.5.0-2 - build for wine-tkg F41 - require wine-9.4 * Tue Nov 12 2024 Patrick Laimbock - 2.5.0-1 - update to version 2.5.0 * Tue Oct 01 2024 Patrick Laimbock - 2.4.1-2 - do not remove d3d8 from alternatives as version 1.10 does not have d3d8 - change post to pre * Tue Oct 01 2024 Patrick Laimbock - 2.4.1-1 - update to version 2.4.1 - don't require d3d8 * Sat Aug 24 2024 Patrick Laimbock - 2.4.1-0.2 - update to git rev 1c30bc92bb49b67631abcccda884bab141f9ccb6 - build against wine-9.16 * Sun Aug 11 2024 Patrick Laimbock - 2.4.1-0.1 - update to git rev 5c987ea3d163b2e3925a906b9027224b05626946 * Wed Jul 10 2024 Patrick Laimbock - 2.4-0.1 - update setup_dxvk.sh - setup_dxvk.sh now uses symlinks by default (instead of copy)! * Wed Jul 10 2024 Patrick Laimbock - 2.4-0.1 - update to version 2.4 * Fri May 17 2024 Patrick Laimbock - 2.3.1-0.7 - require wine >= 9.8 so it includes 9.9 and later * Tue May 07 2024 Patrick Laimbock - 2.3.1-0.6 - build for wine-9.8 so it picks up changes * Tue May 07 2024 Patrick Laimbock - 2.3.1-0.5 - build against & require wine-9.4 - require all packages instead of recommend - enable include fix when arch is ix86 * Sun May 05 2024 Patrick Laimbock - 2.3.1-0.4 - build/require wine-9.8 from the wine-tkg-dev copr * Mon Apr 29 2024 Patrick Laimbock - 2.3.1-0.3 - back to requiring wine-9.4 * Tue Apr 09 2024 Patrick Laimbock - 2.3.1-0.2 - build against wine-9.5 on F40 * Sat Jan 13 2024 Patrick Laimbock - 2.3.1-0.1 - update to version 2.3.1 - build against wine-9.4 * Sat Jan 13 2024 Patrick Laimbock - 2.3-0.4 - rebuild against wine-9.0-rc5 * Sat Dec 16 2023 Patrick Laimbock - 2.3-0.3 - build against wine-9.0(-rc2) * Thu Oct 26 2023 Patrick Laimbock - 2.3-0.2 - build against wine-8.20 - use setup_dxvk.sh from https://aur.archlinux.org/packages/dxvk-bin * Thu Oct 26 2023 Patrick Laimbock - 2.3-0.1 - update to version 2.3 - build against wine-8.18 * Sat Jul 01 2023 Patrick Laimbock - 2.2-0.6 - build against wine-8.11 * Mon May 29 2023 Patrick Laimbock - 2.2-0.5 - include the modified version of the setup_dxvk.sh script - build against wine-8.9.1 * Tue May 16 2023 Patrick Laimbock - 2.2-0.4 - also remove wine-d3d10core - clean up * Tue May 16 2023 Patrick Laimbock - 2.2-0.2 - remove wine-dxxx references from alternatives - use setup_dxvk.sh instead - remove all %posttrans logic - put all dlls in /usr/share/dxvk - use x32 and x64 as used in setup_dxvk.sh * Tue May 16 2023 Patrick Laimbock - 2.2-0.2 - add setup_dxvk.sh - set all dxvk priorities to 20 effectively disabling them - use setup_dxvk.sh to enable or disable dxvk-* dlls per wine prefix * Sun May 14 2023 Patrick Laimbock - 2.2-0.1 - update to version 2.2 * Wed Apr 19 2023 Patrick Laimbock - 2.1-5 - build against wine-8.6 * Tue Apr 04 2023 Patrick Laimbock - 2.1-4 - build against wine-8.5 - set dxgi priority back to 5 * Thu Mar 30 2023 Patrick Laimbock - 2.1-3 - build against wine-8.4 * Wed Feb 22 2023 Patrick Laimbock - 2.1-2 - set dxgi priority to 20 effectively disabling it due to error: - Call from x to unimplemented function dxgi.dll.DXGID3D10CreateDevice, aborting * Wed Jan 25 2023 Patrick Laimbock - 2.1-1 - update to version 2.1 - build against wine-8.0 * Sun Jan 22 2023 Patrick Laimbock - 2.0.1-5 - rebuild against wine-8.0rc5 * Thu Jan 19 2023 Patrick Laimbock - 2.0.1-4 - update to git rev 4d0d455895fb0066dd7eba611f1dc50273f0e17f * Sun Jan 08 2023 Patrick Laimbock - 2.0.1-3 - update to git rev 3ed0a4fd439f366248253f8066632a7e68336ffc * Mon Jan 02 2023 Patrick Laimbock - 2.0.1-2 - update to git rev f94b42f23f34cc92c9115764f800292e6d7a2c50 - build against wine-8.0 * Mon Dec 26 2022 Patrick Laimbock - 2.0.1-1 - update to git rev 12901b52f19ea1d3eece450a009f4602b5f2adc3 * Wed Dec 14 2022 Patrick Laimbock - 2.0-2 - add dxgi and d3d10core to alternatives * Fri Nov 18 2022 Patrick Laimbock - 2.0-1 - update to version 2.0 * Wed Nov 02 2022 PatrickLaimbock - 1.10.4-0.5 - update to git rev 892f676605e23455df2231b2315edf8c7fbe9648 * Sat Oct 01 2022 Patrick Laimbock - 1.10.4-0.4 - update to git rev f8bd19f210d32a27c51cdda7720f7d68f7787499 - build against wine-tkg-7.18 * Sat Sep 10 2022 Patrick Laimbock - 1.10.4-0.3 - update to git rev 2ec25f588f597a39cfab36928bc5824b675466b0 - build against wine-tkg-7.17 * Thu Sep 01 2022 Patrick Laimbock - 1.10.4-0.2 - update to git rev 36f523bbf5cf5308ea4b18af3a5dc1c646d9e415 - upstream removed d3d10 and d3d10_1 but d3d10_core is still there - build against wine-tkg-7.16 * Sun Aug 14 2022 Patrick Laimbock - 1.10.4-0.1 - update to git rev de8d2b37bb0dfcb521730c496eab194830fdd2f9 - build against wine-tkg-7.15 * Wed Aug 03 2022 Patrick Laimbock - 1.10.3-10 - update to version 1.10.3 * Sat Jul 30 2022 Patrick Laimbock - 1.10.3-0.4 - update to git rev 753aede1fce18aedeea84f52753ff4d8888d6d9b * Sun Jul 24 2022 Patrick Laimbock - 1.10.3-0.3 - update to git rev 9cd04735442be8ff28ad97c4c77789bdbefc43ea * Thu Jul 21 2022 Patrick Laimbock - 1.10.3-0.2 - update to git rev dcd2c4847b95cd5732f17087f515e64a886800a8 - build against wine-tkg-testing * Sat Jul 16 2022 Patrick Laimbock - 1.10.3-0.1 - update to git rev 39dd25e972c28564571a82089a36bc7b84c79071 - build against wine-7.13 * Sun Jul 10 2022 Patrick Laimbock - 1.10.2-0.2 - update to git rev 00cfee9d1750fec59c14324a1e4efb4f2b17f64d - build against wine-7.12 * Sat Apr 23 2022 Patrick Laimbock - 1.10.2-0.1 - update to git rev 304d0549d54b0d07b5f6299adc7be0d77d352144 - build against wine-7.7 * Sat Apr 02 2022 Frantisek Zatloukal - 1.10.1-1 - Release 1.10.1 * Sun Mar 06 2022 Frantisek Zatloukal - 1.10-1 - Release 1.10 - Clean up spec file, use mingw build macros * Mon Jan 31 2022 Frantisek Zatloukal - 1.9.4-1 - Release 1.9.4 * Sat Jan 22 2022 Fedora Release Engineering - 1.9.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Tue Jan 11 2022 Frantisek Zatloukal - 1.9.3-1 - Release 1.9.3 * Mon Sep 20 2021 Frantisek Zatloukal - 1.9.2-1 - Release 1.9.2 * Thu Jul 29 2021 Frantisek Zatloukal - 1.9.1-1 - Release 1.9.1 * Fri Jul 23 2021 Fedora Release Engineering - 1.9-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Fri Jun 25 2021 Frantisek Zatloukal - 1.9-1 - Release 1.9 * Fri May 14 2021 Frantisek Zatloukal - 1.8.1-2 - Adapt to wine directory structure changes from wine-6.8 * Tue Mar 02 2021 Frantisek Zatloukal - 1.8.1-1 - Release 1.8.1 * Mon Feb 22 2021 Frantisek Zatloukal - 1.8-1 - Release 1.8 * Wed Jan 27 2021 Fedora Release Engineering - 1.7.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Fri Jan 22 2021 Frantisek Zatloukal - 1.7.3-2 - We now have mingw-8.0 in Fedora 34, don't revert IDXGIFactory6 and IDXGIFactory7 in F34 * Sun Jan 17 2021 Frantisek Zatloukal - 1.7.3-1 - Release 1.7.3 - Try to blacklist lavapipe driver (hacky solution for now by catching ERROR_SURFACE_LOST_KHR from vulkaninfo) - Revert IDXGIFactory6 and IDXGIFactory7 changes until we get mingw >= 8.0 * Sun Nov 29 2020 Frantisek Zatloukal - 1.7.2-3 - Backout dxvk-d3d9 from the default installation until the issues with vulkan childwindow support are solved * Sat Nov 14 2020 Frantisek Zatloukal - 1.7.2-2 - Blacklist Intel Haswell and Ivy Bridge from default dxvk installation * Thu Oct 08 2020 Frantisek Zatloukal - 1.7.2-1 - Release 1.7.2 * Fri Aug 14 2020 Frantisek Zatloukal - 1.7.1-1 - Release 1.7.1 * Sun Aug 09 2020 Frantisek Zatloukal - 1.7-3 - Install dxvk as primary alternative only on systems with Vulkan support * Wed Jul 29 2020 Fedora Release Engineering - 1.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Sun May 17 2020 Frantisek Zatloukal - 1.7-1 - Release 1.7 - Remove winelib build and fix mingw build dll names (Matias Zuniga) * Mon Apr 20 2020 Frantisek Zatloukal - 1.6.1-1 - Release 1.6.1 * Tue Mar 24 2020 Frantisek Zatloukal - 1.6-1 - Release 1.6 * Sat Mar 07 2020 Frantisek Zatloukal - 1.5.5-1 - Release 1.5.5 * Sun Feb 09 2020 Frantisek Zatloukal - 1.5.4-1 - Release 1.5.4 * Fri Jan 31 2020 Frantisek Zatloukal - 1.5.3-1 - Release 1.5.3 * Fri Jan 31 2020 Fedora Release Engineering - 1.5.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Fri Jan 10 2020 Frantisek Zatloukal - 1.5.1-1 - Release 1.5.1 - Support D3D9 (wine-dxvk-d3d9 subpackage) * Sat Dec 07 2019 Frantisek Zatloukal - 1.4.6-1 - Release 1.4.6 * Thu Nov 21 2019 Frantisek Zatloukal - 1.4.5-1 - Release 1.4.5 * Tue Oct 29 2019 Frantisek Zatloukal - 1.4.4-1 - Release 1.4.4 * Sat Oct 19 2019 Frantisek Zatloukal - 1.4.3-1 - Release 1.4.3 * Sat Sep 28 2019 Frantisek Zatloukal - 1.4.1-1 - Release 1.4.1 * Mon Sep 23 2019 Frantisek Zatloukal - 1.4-1 - Release 1.4 * Sun Aug 11 2019 Frantisek Zatloukal - 1.3.2-1 - Release 1.3.2 - Use alternatives for .dll files and dxgi.dll.so * Thu Jul 25 2019 Frantisek Zatloukal - 1.3.1-1 - Initial packaging