mirror of
https://abf.rosa.ru/djam/wine.git
synced 2025-02-24 06:42:47 +00:00
Build with new vulkan
This commit is contained in:
parent
1dea6e126e
commit
05b43cec57
3 changed files with 89 additions and 31 deletions
9
README.urpmi
Normal file
9
README.urpmi
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
In order to set up a wine to use DXVK (DirectX11->Vulkan)
|
||||||
|
instead of wined3d globally, run in terminal dxvk64
|
||||||
|
For removal DXVK delete d3d11 and dxgi in the tab 'Libraries' of winecfg.
|
||||||
|
|
||||||
|
=== Russian ===
|
||||||
|
|
||||||
|
Для того, чтобы настроить wine использовать DXVK (DirectX11->Vulkan)
|
||||||
|
вместо wined3d для всех приложений, запустите в терминале dxvk64
|
||||||
|
Для устранения DXVK удалите d3d11 и dxgi во вкладке "Библиотеки" winecfg.
|
39
crossover_hack.patch
Normal file
39
crossover_hack.patch
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
|
||||||
|
index 0883da5..99e3149 100644
|
||||||
|
--- a/dlls/kernel32/process.c
|
||||||
|
+++ b/dlls/kernel32/process.c
|
||||||
|
@@ -2651,6 +2651,33 @@ static BOOL create_process_impl( LPCWSTR app_name, LPWSTR cmd_line, LPSECURITY_A
|
||||||
|
return FALSE;
|
||||||
|
if (hFile == INVALID_HANDLE_VALUE) goto done;
|
||||||
|
|
||||||
|
+ /* CROSSOVER HACK: bug 13322 (winehq bug 39403)
|
||||||
|
+ * Insert --no-sandbox in command line of Steam's web helper process to
|
||||||
|
+ * work around problems hooking our ntdll exports. */
|
||||||
|
+ {
|
||||||
|
+ static const WCHAR steamwebhelperexeW[] = {'s','t','e','a','m','w','e','b','h','e','l','p','e','r','.','e','x','e',0};
|
||||||
|
+ static const WCHAR nosandboxW[] = {' ','-','-','n','o','-','s','a','n','d','b','o','x',0};
|
||||||
|
+
|
||||||
|
+ if (strstrW(name, steamwebhelperexeW))
|
||||||
|
+ {
|
||||||
|
+ LPWSTR new_command_line;
|
||||||
|
+
|
||||||
|
+ new_command_line = HeapAlloc(GetProcessHeap(), 0,
|
||||||
|
+ sizeof(WCHAR) * (strlenW(tidy_cmdline) + strlenW(nosandboxW) + 1));
|
||||||
|
+
|
||||||
|
+ if (!new_command_line) return FALSE;
|
||||||
|
+
|
||||||
|
+ strcpyW(new_command_line, tidy_cmdline);
|
||||||
|
+ strcatW(new_command_line, nosandboxW);
|
||||||
|
+
|
||||||
|
+ TRACE("CrossOver hack changing command line to %s\n", debugstr_w(new_command_line));
|
||||||
|
+
|
||||||
|
+ if (tidy_cmdline != cmd_line) HeapFree( GetProcessHeap(), 0, tidy_cmdline );
|
||||||
|
+ tidy_cmdline = new_command_line;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ /* end CROSSOVER HACK */
|
||||||
|
+
|
||||||
|
/* Warn if unsupported features are used */
|
||||||
|
|
||||||
|
if (flags & (IDLE_PRIORITY_CLASS | HIGH_PRIORITY_CLASS | REALTIME_PRIORITY_CLASS |
|
||||||
|
|
72
wine.spec
72
wine.spec
|
@ -17,15 +17,16 @@
|
||||||
%define devname %mklibname %{name} -d
|
%define devname %mklibname %{name} -d
|
||||||
|
|
||||||
# Switch between systemd-binfmt and sysvinit support
|
# Switch between systemd-binfmt and sysvinit support
|
||||||
%bcond_without systemd
|
%define with_systemd 1
|
||||||
|
|
||||||
%define winetricks_ver 20180603
|
%define winetricks_ver 20180603
|
||||||
%define dxvk_ver 0.54
|
%define dxvk_ver 0.54
|
||||||
|
%define d3d9_ver %{version}
|
||||||
|
|
||||||
Summary: WINE Is Not An Emulator - runs MS Windows programs
|
Summary: WINE Is Not An Emulator - runs MS Windows programs
|
||||||
Name: wine
|
Name: wine
|
||||||
Version: 3.10
|
Version: 3.10
|
||||||
Release: 2
|
Release: 3
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: Emulators
|
Group: Emulators
|
||||||
|
@ -43,12 +44,13 @@ Source4: https://github.com/wine-staging/wine-staging/archive/v%{version}.tar.gz
|
||||||
# Wine Gallium Nine patches for wine-staging %%{version}
|
# Wine Gallium Nine patches for wine-staging %%{version}
|
||||||
# from https://github.com/sarnex/wine-d3d9-patches.
|
# from https://github.com/sarnex/wine-d3d9-patches.
|
||||||
# Install staging-helper before wine-d3d9
|
# Install staging-helper before wine-d3d9
|
||||||
Source5: https://github.com/sarnex/wine-d3d9-patches/archive/wine-d3d9-%{version}.tar.gz?/wine-d3d9-patches-wine-d3d9-%{version}.tar.gz
|
Source5: https://github.com/sarnex/wine-d3d9-patches/archive/wine-d3d9-%{version}.tar.gz?/wine-d3d9-patches-wine-d3d9-%{d3d9_ver}.tar.gz
|
||||||
Source6: https://github.com/Winetricks/winetricks/blob/%{winetricks_ver}/src/winetricks
|
Source6: https://github.com/Winetricks/winetricks/blob/%{winetricks_ver}/src/winetricks
|
||||||
Source7: http://kegel.com/wine/wisotool
|
Source7: http://kegel.com/wine/wisotool
|
||||||
# Vulkan layer for support Direct3D 11 in wine
|
# Vulkan layer for support Direct3D 11 in wine
|
||||||
# https://github.com/doitsujin/dxvk
|
# https://github.com/doitsujin/dxvk
|
||||||
Source8: https://github.com/doitsujin/dxvk/releases/download/v%{dxvk_ver}/dxvk-%{dxvk_ver}.tar.gz
|
Source8: https://github.com/doitsujin/dxvk/releases/download/v%{dxvk_ver}/dxvk-%{dxvk_ver}.tar.gz
|
||||||
|
Source9: README.urpmi
|
||||||
Source10: wine.rpmlintrc
|
Source10: wine.rpmlintrc
|
||||||
|
|
||||||
# (Anssi 05/2008) Adds:
|
# (Anssi 05/2008) Adds:
|
||||||
|
@ -60,6 +62,9 @@ Source10: wine.rpmlintrc
|
||||||
# have to substitute @MDKVERSION@ in dlls/ntdll/server.c
|
# have to substitute @MDKVERSION@ in dlls/ntdll/server.c
|
||||||
Patch0: wine-mdkconf.patch
|
Patch0: wine-mdkconf.patch
|
||||||
Patch1: wine-3.6-staging-ru-localization.patch
|
Patch1: wine-3.6-staging-ru-localization.patch
|
||||||
|
# Working workaround for Steam troubles
|
||||||
|
# Also fixed by passing -no-cef-sandbox to the cmd line
|
||||||
|
Patch2: crossover_hack.patch
|
||||||
|
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
BuildRequires: chrpath
|
BuildRequires: chrpath
|
||||||
|
@ -107,8 +112,8 @@ BuildRequires: pkgconfig(librsvg-2.0)
|
||||||
BuildRequires: pkgconfig(libtiff-4)
|
BuildRequires: pkgconfig(libtiff-4)
|
||||||
BuildRequires: pkgconfig(libv4l2)
|
BuildRequires: pkgconfig(libv4l2)
|
||||||
BuildRequires: pkgconfig(libva)
|
BuildRequires: pkgconfig(libva)
|
||||||
BuildRequires: pkgconfig(libxslt)
|
|
||||||
BuildRequires: pkgconfig(libvkd3d)
|
BuildRequires: pkgconfig(libvkd3d)
|
||||||
|
BuildRequires: pkgconfig(libxslt)
|
||||||
BuildRequires: pkgconfig(ncursesw)
|
BuildRequires: pkgconfig(ncursesw)
|
||||||
BuildRequires: pkgconfig(openal)
|
BuildRequires: pkgconfig(openal)
|
||||||
BuildRequires: pkgconfig(OpenCL)
|
BuildRequires: pkgconfig(OpenCL)
|
||||||
|
@ -151,7 +156,7 @@ Requires: libfreetype.so.6%{mark64}
|
||||||
Requires: libpng16.so.16%{mark64}
|
Requires: libpng16.so.16%{mark64}
|
||||||
Requires: libXi.so.6%{mark64}
|
Requires: libXi.so.6%{mark64}
|
||||||
Requires: libXrender.so.1%{mark64}
|
Requires: libXrender.so.1%{mark64}
|
||||||
# This one is in Restricted repository so only suggest it
|
# This one is now part of Mesa
|
||||||
Suggests: libtxc_dxtn.so%{mark64}
|
Suggests: libtxc_dxtn.so%{mark64}
|
||||||
%else
|
%else
|
||||||
# on 32-bit we always want wine32 package
|
# on 32-bit we always want wine32 package
|
||||||
|
@ -165,17 +170,17 @@ Provides: wine-bin = %{EVRD}
|
||||||
%rename %{libname}
|
%rename %{libname}
|
||||||
%rename winetricks
|
%rename winetricks
|
||||||
Requires: xmessage
|
Requires: xmessage
|
||||||
Suggests: sane-frontends
|
|
||||||
Suggests: vkd3d
|
|
||||||
# for dxvk:
|
|
||||||
Suggests: vulkan
|
|
||||||
# for winetricks:
|
# for winetricks:
|
||||||
Requires: cabextract
|
Requires: cabextract
|
||||||
Requires: unzip
|
Requires: unzip
|
||||||
Suggests: webcore-fonts
|
|
||||||
Suggests: %{wine}-binfmt
|
|
||||||
Requires(post,postun): desktop-common-data
|
Requires(post,postun): desktop-common-data
|
||||||
Requires(post,preun): rpm-helper
|
Requires(post,preun): rpm-helper
|
||||||
|
Suggests: %{wine}-binfmt
|
||||||
|
Suggests: sane-frontends
|
||||||
|
# for dxvk:
|
||||||
|
Suggests: vulkan
|
||||||
|
Suggests: vkd3d
|
||||||
|
Suggests: webcore-fonts
|
||||||
|
|
||||||
%ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
Conflicts: wine64
|
Conflicts: wine64
|
||||||
|
@ -253,9 +258,10 @@ programs.
|
||||||
Summary: Support for launching Windows executables directly
|
Summary: Support for launching Windows executables directly
|
||||||
Group: Emulators
|
Group: Emulators
|
||||||
Requires: %{wine} = %{EVRD}
|
Requires: %{wine} = %{EVRD}
|
||||||
|
Requires(post): rpm-helper
|
||||||
Requires(post): %{wine} = %{EVRD}
|
Requires(post): %{wine} = %{EVRD}
|
||||||
%if %{with systemd}
|
%if %{with_systemd}
|
||||||
Requires(post,postun): systemd
|
Requires(pre,post,preun,postun): systemd
|
||||||
%endif
|
%endif
|
||||||
Conflicts: %{wine} < 2:2.21-2
|
Conflicts: %{wine} < 2:2.21-2
|
||||||
|
|
||||||
|
@ -265,24 +271,27 @@ Wine is a program which allows running Microsoft Windows programs
|
||||||
This package provides support for launching Windows executables directly.
|
This package provides support for launching Windows executables directly.
|
||||||
|
|
||||||
%files -n %{wine}-binfmt
|
%files -n %{wine}-binfmt
|
||||||
%if %{with systemd}
|
%if %{with_systemd}
|
||||||
%{_binfmtdir}/%{name}.conf
|
%{_binfmtdir}/%{name}.conf
|
||||||
%else
|
%else
|
||||||
%{_initrddir}/%{name}
|
%{_initrddir}/%{name}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with systemd}
|
%if %{with_systemd}
|
||||||
# Systemd binfmt support
|
# Systemd binfmt support
|
||||||
%pre -n %{wine}-binfmt
|
%pre -n %{wine}-binfmt
|
||||||
systemctl stop systemd-binfmt.service
|
systemctl stop systemd-binfmt.service
|
||||||
|
|
||||||
%post -n %{wine}-binfmt
|
%post -n %{wine}-binfmt
|
||||||
%binfmt_apply %{name}.conf
|
%binfmt_apply %{name}.conf
|
||||||
|
|
||||||
%postun -n %{wine}-binfmt
|
%postun -n %{wine}-binfmt
|
||||||
%_postun_unit systemd-binfmt.service
|
%_postun_unit systemd-binfmt.service
|
||||||
%else
|
%else
|
||||||
# Old sysvinit
|
# Old sysvinit
|
||||||
%post -n %{wine}-binfmt
|
%post -n %{wine}-binfmt
|
||||||
%_post_service %{name}
|
%_post_service %{name}
|
||||||
|
|
||||||
%preun -n %{wine}-binfmt
|
%preun -n %{wine}-binfmt
|
||||||
%_preun_service %{name}
|
%_preun_service %{name}
|
||||||
%endif
|
%endif
|
||||||
|
@ -340,6 +349,7 @@ Wine is often updated.
|
||||||
%setup -qn %{name}-%{version} -a5 -a8
|
%setup -qn %{name}-%{version} -a5 -a8
|
||||||
%patch0 -p1 -b .conf
|
%patch0 -p1 -b .conf
|
||||||
%patch1 -p1 -b .staging-localization
|
%patch1 -p1 -b .staging-localization
|
||||||
|
%patch2 -p1 -b .crossover_hack
|
||||||
|
|
||||||
# Wine-staging
|
# Wine-staging
|
||||||
gzip -dc "%{SOURCE4}" | /bin/tar -xf - --strip-components=1
|
gzip -dc "%{SOURCE4}" | /bin/tar -xf - --strip-components=1
|
||||||
|
@ -348,8 +358,8 @@ gzip -dc "%{SOURCE4}" | /bin/tar -xf - --strip-components=1
|
||||||
./patches/patchinstall.sh DESTDIR="%{_builddir}/wine-%{version}" --all
|
./patches/patchinstall.sh DESTDIR="%{_builddir}/wine-%{version}" --all
|
||||||
|
|
||||||
# Gallium Nine support
|
# Gallium Nine support
|
||||||
patch -p1 < wine-d3d9-patches-wine-d3d9-%{version}/staging-helper.patch
|
patch -p1 < wine-d3d9-patches-wine-d3d9-%{d3d9_ver}/staging-helper.patch
|
||||||
patch -p1 < wine-d3d9-patches-wine-d3d9-%{version}/wine-d3d9.patch
|
patch -p1 < wine-d3d9-patches-wine-d3d9-%{d3d9_ver}/wine-d3d9.patch
|
||||||
|
|
||||||
sed -i 's,@MDKVERSION@,%{mdvver},' dlls/ntdll/server.c
|
sed -i 's,@MDKVERSION@,%{mdvver},' dlls/ntdll/server.c
|
||||||
|
|
||||||
|
@ -385,7 +395,8 @@ autoreconf -vfi
|
||||||
install -m 0755 %{SOURCE6} %{buildroot}%{_bindir}/
|
install -m 0755 %{SOURCE6} %{buildroot}%{_bindir}/
|
||||||
install -m 0755 %{SOURCE7} %{buildroot}%{_bindir}/
|
install -m 0755 %{SOURCE7} %{buildroot}%{_bindir}/
|
||||||
|
|
||||||
# Note: binfmt is insecure, see https://nixtux.ru/450
|
# Note: binfmt is insecure (see https://nixtux.ru/450),
|
||||||
|
# so we will put it in a separate package
|
||||||
# Allow users to launch Windows programs by just clicking on the .exe file...
|
# Allow users to launch Windows programs by just clicking on the .exe file...
|
||||||
%if %{with systemd}
|
%if %{with systemd}
|
||||||
# ... using systemd (>= 230)
|
# ... using systemd (>= 230)
|
||||||
|
@ -496,32 +507,31 @@ sed -i 's,Icon=%{name},Icon=regedit,' %{buildroot}%{_datadir}/applications/rosa-
|
||||||
sed -i 's,Icon=%{name},Icon=winemine,' %{buildroot}%{_datadir}/applications/rosa-wine-winemine.desktop
|
sed -i 's,Icon=%{name},Icon=winemine,' %{buildroot}%{_datadir}/applications/rosa-wine-winemine.desktop
|
||||||
sed -i 's,Icon=%{name},Icon=msiexec,' "%{buildroot}%{_datadir}/applications/rosa-wine-wine uninstaller.desktop"
|
sed -i 's,Icon=%{name},Icon=msiexec,' "%{buildroot}%{_datadir}/applications/rosa-wine-wine uninstaller.desktop"
|
||||||
|
|
||||||
|
# Remove rpaths
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
chrpath -d %{buildroot}%{_bindir}/{wine64,wineserver,wmc,wrc} %{buildroot}%{_libdir}/%{name}/*.so
|
chrpath -d %{buildroot}%{_bindir}/{wine64,wineserver,wmc,wrc} %{buildroot}%{_libdir}/%{name}/*.so
|
||||||
%else
|
%else
|
||||||
chrpath -d %{buildroot}%{_bindir}/{wine,wineserver,wmc,wrc} %{buildroot}%{_libdir}/%{name}/*.so
|
chrpath -d %{buildroot}%{_bindir}/{wine,wineserver,wmc,wrc} %{buildroot}%{_libdir}/%{name}/*.so
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Some advices to user
|
||||||
|
cp %{SOURCE9} .
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
cat > README.install.urpmi <<EOF
|
cat > README.install.urpmi <<EOF
|
||||||
This is the Win64 version of Wine. This version can only be used to run
|
This is the Win64 version of Wine with Staging but not limited to it.
|
||||||
64-bit Windows applications as is. For running 32-bit Windows applications,
|
This version can only be used to run 64-bit Windows applications as is.
|
||||||
you need to also install the 'wine32' package from the 32-bit repository.
|
For running 32-bit Windows applications or dxvk32, you need to also
|
||||||
Experimental!
|
install the 'wine32' package from the 32-bit repository.
|
||||||
In order to set up a wine prefix to use DXVK instead of wined3d globally, run:
|
|
||||||
env WINEPREFIX=/your/wineprefix dxvk64
|
|
||||||
For running dxvk32 you need to also install the 'wine32' package from
|
|
||||||
the 32-bit repository and run
|
|
||||||
env WINEPREFIX=/your/wineprefix dxvk32
|
|
||||||
EOF
|
EOF
|
||||||
%else
|
%else
|
||||||
cat > README.install.urpmi <<EOF
|
cat > README.install.urpmi <<EOF
|
||||||
Experimental!
|
This is the Win32 version of Wine with Staging but not limited to it.
|
||||||
In order to set up a wine prefix to use DXVK instead of wined3d globally, run:
|
|
||||||
env WINEPREFIX=/your/wineprefix dxvk32
|
|
||||||
EOF
|
EOF
|
||||||
|
sed -i 's/64/32/g' README.urpmi
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Install dxvk library binary for interfacing Direct3D 11 <-> Vulkan
|
||||||
|
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
mkdir -p %{buildroot}%{_libdir}/%{name}/dxvkdlls/
|
mkdir -p %{buildroot}%{_libdir}/%{name}/dxvkdlls/
|
||||||
cp dxvk-%{dxvk_ver}/x64/* %{buildroot}%{_libdir}/%{name}/dxvkdlls/
|
cp dxvk-%{dxvk_ver}/x64/* %{buildroot}%{_libdir}/%{name}/dxvkdlls/
|
||||||
|
@ -533,7 +543,7 @@ ln -s %{_libdir}/%{name}/dxvkdlls/setup_dxvk.sh %{buildroot}%{_bindir}/dxvk32
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files -n %{wine}
|
%files -n %{wine}
|
||||||
%doc ANNOUNCE AUTHORS README README.install.urpmi
|
%doc ANNOUNCE AUTHORS README README.install.urpmi README.urpmi
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
%{_bindir}/wine64
|
%{_bindir}/wine64
|
||||||
%{_bindir}/wine64-preloader
|
%{_bindir}/wine64-preloader
|
||||||
|
|
Loading…
Add table
Reference in a new issue