Package Details: wine-valve 3:7.0.1b-1

Git Clone URL: (read-only, click to copy)
Package Base: wine-valve
Description: A compatibility layer for running Windows programs (Valve version)
Upstream URL:
Licenses: LGPL
Conflicts: bin32-wine, wine, wine-staging, wine-staging-git, wine-wow64
Provides: bin32-wine, wine, wine-valve, wine-wow64
Replaces: bin32-wine
Submitter: heavysink
Maintainer: heavysink (lilac)
Last Packager: lilac
Votes: 9
Popularity: 0.197132
First Submitted: 2020-06-12 13:41 (UTC)
Last Updated: 2022-02-24 05:41 (UTC)

Required by (313)

Sources (4)

Latest Comments

jsimon0 commented on 2022-02-22 03:12 (UTC)

@mmmaisel Indeed it does. I was hoping the EAC support would get a playable Division 2 but that seems to require some work by Ubisoft or possibly some messing about by me.

Also, is your handle a Marvelous Mrs Maisel reference?

mmmaisel commented on 2022-02-21 19:07 (UTC)

@jsimon0 I played some games with it so it works.

jsimon0 commented on 2022-02-19 17:39 (UTC)

@mmmaisel does it work in addition to compiling?

mmmaisel commented on 2022-02-19 17:05 (UTC)

I managed to build proton-wine 7.0-1 with the following patch:

diff --git a/PKGBUILD b/PKGBUILD
index 218609c..9f26dec 100644
@@ -6,10 +6,9 @@
 # Conttributor: xiretza <>
 # Contributor: heavysink <winstonwu91 at gmail>
 pkgdesc='A compatibility layer for running Windows programs (Valve version)'
 arch=('i686' 'x86_64')
@@ -84,10 +83,11 @@ optdepends=(
-        'ldap.patch')
+        'ldap.patch'
+        'futex.patch')

 if [ "$CARCH" = 'i686' ] 
@@ -111,6 +111,8 @@ prepare() {
     # fix path of opencl headers
     sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i configure*
     patch -p1 < ../ldap.patch
+    patch -p1 < ../futex.patch
+    ./dlls/winevulkan/make_vulkan

 build() {
@@ -210,7 +212,8 @@ package() {

-            'd672957ab0c315b226ba529b1ef8c39b2c881cbe051d358e1904cb2ca36c27eb')
+            '63507fd8a27b9a970d42803270a05407e9baa1f41edef9c12df0f30abe351cb8'
+            '09ae9147b8c36884ab693abc8e96dd1b9b59c3c339b703e4a43b6c64d4e79603')
diff --git a/futex.patch b/futex.patch
new file mode 100644
index 0000000..a37d647
--- /dev/null
+++ b/futex.patch
@@ -0,0 +1,11 @@
+diff --color -rupN a/dlls/ntdll/unix/fsync.c b/dlls/ntdll/unix/fsync.c
+--- a/dlls/ntdll/unix/fsync.c  2022-02-16 13:39:18.748009255 +0100
++++ b/dlls/ntdll/unix/fsync.c  2022-02-16 13:39:14.004819301 +0100
+@@ -51,6 +51,7 @@
+ #include "unix_private.h"
+ #include "fsync.h"
++#include <linux/futex.h>
diff --git a/ldap.patch b/ldap.patch
index 7257d13..ca607e4 100644
--- a/ldap.patch
+++ b/ldap.patch
@@ -26,8 +26,8 @@ diff --color -rupN a/dlls/wldap32/init.c b/dlls/wldap32/init.c
   *  The timeout parameter may be NULL in which case a default timeout
   *  value will be used.
--ULONG CDECL ldap_connect( WLDAP32_LDAP *ld, struct l_timeval *timeout )
-+ULONG CDECL oldap_connect( WLDAP32_LDAP *ld, struct l_timeval *timeout )
+-ULONG CDECL ldap_connect( LDAP *ld, struct l_timeval *timeout )
++ULONG CDECL oldap_connect( LDAP *ld, struct l_timeval *timeout )
      TRACE( "(%p, %p)\n", ld, timeout );

@@ -52,18 +52,6 @@ diff --color -rupN a/dlls/wldap32/tests/parse.c b/dlls/wldap32/tests/parse.c
      ok( !ret, "ldap_connect failed 0x%08x\n", ret );

      /* test setting a not supported server control */
-diff --color -rupN a/dlls/wldap32/winldap_private.h b/dlls/wldap32/winldap_private.h
---- a/dlls/wldap32/winldap_private.h   2021-12-29 11:56:08.278179462 +0800
-+++ b/dlls/wldap32/winldap_private.h   2021-12-29 11:56:38.581547845 +0800
-@@ -320,7 +320,7 @@ ULONG CDECL ldap_compare_ext_sA(WLDAP32_
- ULONG CDECL ldap_compare_ext_sW(WLDAP32_LDAP*,PWCHAR,PWCHAR,PWCHAR,struct WLDAP32_berval*,PLDAPControlW*,PLDAPControlW*);
- WLDAP32_LDAP * CDECL ldap_conn_from_msg(WLDAP32_LDAP*,WLDAP32_LDAPMessage*);
- ULONG CDECL ldap_control_freeA(LDAPControlA*);
- ULONG CDECL ldap_control_freeW(LDAPControlW*);
 diff --color -rupN a/dlls/wldap32/wldap32.spec b/dlls/wldap32/wldap32.spec
 --- a/dlls/wldap32/wldap32.spec    2021-12-29 11:56:08.278179462 +0800
 +++ b/dlls/wldap32/wldap32.spec    2021-12-29 11:58:13.231658845 +0800

gloomy commented on 2022-02-17 16:37 (UTC)

I am having a compile error:

../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:109:45: warning: ‘struct futex_waitv’ declared inside parameter list will not be visible outside of this definition or declaration
  109 | static inline void futex_vector_set( struct futex_waitv *waitv, int *addr, int val )
      |                                             ^~~~~~~~~~~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c: In function ‘futex_vector_set’:
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:111:10: error: invalid use of undefined type ‘struct futex_waitv’
  111 |     waitv->uaddr = (uintptr_t) addr;
      |          ^~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:112:10: error: invalid use of undefined type ‘struct futex_waitv’
  112 |     waitv->val = val;
      |          ^~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:113:10: error: invalid use of undefined type ‘struct futex_waitv’
  113 |     waitv->flags = FUTEX_32;
      |          ^~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:113:20: error: ‘FUTEX_32’ undeclared (first use in this function)
  113 |     waitv->flags = FUTEX_32;
      |                    ^~~~~~~~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:113:20: note: each undeclared identifier is reported only once for each function it appears in
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:114:10: error: invalid use of undefined type ‘struct futex_waitv’
  114 |     waitv->__reserved = 0;
      |          ^~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c: At top level:
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:117:53: warning: ‘struct futex_waitv’ declared inside parameter list will not be visible outside of this definition or declaration
  117 | static inline int futex_wait_multiple( const struct futex_waitv *futexes,
      |                                                     ^~~~~~~~~~~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c: In function ‘do_single_wait’:
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:725:28: error: array type has incomplete element type ‘struct futex_waitv’
  725 |         struct futex_waitv futexes[2];
      |                            ^~~~~~~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:725:28: warning: unused variable ‘futexes’ [-Wunused-variable]
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c: In function ‘__fsync_wait_objects’:
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:756:24: error: array type has incomplete element type ‘struct futex_waitv’
  756 |     struct futex_waitv futexes[MAXIMUM_WAIT_OBJECTS + 1];
      |                        ^~~~~~~
../wine-proton-wine-6.3-8c/dlls/ntdll/unix/fsync.c:756:24: warning: unused variable ‘futexes’ [-Wunused-variable]

Any idea if something can be done?

mynis01 commented on 2021-12-29 17:31 (UTC)


The upgrade built without any intervention for me today. Thanks for letting us know what changed!

heavysink commented on 2021-12-29 04:39 (UTC)

@solloron1 @mynis01 @HHL

From LDAP 2.5, openldap introduces some functions like ldap_connect which conflicts with the private built-in function in wine. I looked at for curl and renamed the functions in wine from ldap_connect to oldap_connect. It now builds. Please wait for the buildbot lilac to push the patch.

solloron1 commented on 2021-12-21 02:21 (UTC) (edited on 2021-12-21 02:28 (UTC) by solloron1)

If anyone was struggling like me to get this to build @Ketsui advice works. I didn't know how to perform the patch so after some googling and reading I figured it out. If anyone else is looking for a solution:

Add this to source:

Add this to prepare(): patch -p1 -i ../wine-4.6-msvcrt_add_sincos_to_importlib.patch

Then install the PKGBUILD with makepkg -si

Also downgrade your LDAP to 2.4 as well.

Ketsui commented on 2021-11-25 08:52 (UTC)

If you get "undefined reference to `sincosf'" build error then there's a fix here:

The release version 6.3-8 builds for me after applying the aforementioned patch and disabling ldap, also I was surprised to find the resulting package being double the size of the wine package from community, please consider adding these lines to package() to fix this:

i686-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib32/wine/*.dll
x86_64-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib/wine/*.dll

mynis01 commented on 2021-11-21 20:08 (UTC)

I just tested and I was able to build this latest version of wine-valve from the AUR after downgrading lib32-libldap and libldap to the old 2.4.x versions I had in the pacman cache.

mynis01 commented on 2021-11-21 19:35 (UTC)

@HHL it looks like they're having the same problem with proton:

The maintainer said they'd push out a build soon that builds wine without LDAP. Maybe something similar can be done for this package too. I doubt many people would ever need LDAP for gaming.

HHL commented on 2021-11-21 13:41 (UTC)

1:6.3.8.rc5-1 fails building for me. Last working (i.e. installed) is 6.3.20210616-1. Installing with paru. Regarding the earlier comment, I have community/vkd3d. But from the log I get it's to do with ldap: I have core/libldap 2.6.0-2 and lib32-libldap 2.6.0-1.

In file included from ../wine-proton-wine-6.3-8-rc5/dlls/wldap32/ber.c:30:
../wine-proton-wine-6.3-8-rc5/dlls/wldap32/winldap_private.h:323:13: error: conflicting types for ‘ldap_connect’; have ‘ULONG(WLDAP32_LDAP *, LDAP_TIMEVAL *)’ {aka ‘unsigned int(struct wldap32 *, struct l_timeval *)’}
  323 | ULONG CDECL ldap_connect(WLDAP32_LDAP*,LDAP_TIMEVAL*);
      |             ^~~~~~~~~~~~
In file included from ../wine-proton-wine-6.3-8-rc5/dlls/wldap32/ber.c:25:
/usr/include/ldap.h:1555:1: note: previous declaration of ‘ldap_connect’ with type ‘int(LDAP *)’ {aka ‘int(struct ldap *)’}
 1555 | ldap_connect( LDAP *ld );
      | ^~~~~~~~~~~~
In file included from ../wine-proton-wine-6.3-8-rc5/dlls/wldap32/add.c:33:
../wine-proton-wine-6.3-8-rc5/dlls/wldap32/winldap_private.h:323:13: error: conflicting types for ‘ldap_connect’; have ‘ULONG(WLDAP32_LDAP *, LDAP_TIMEVAL *)’ {aka ‘unsigned int(struct wldap32 *, struct l_timeval *)’}
  323 | ULONG CDECL ldap_connect(WLDAP32_LDAP*,LDAP_TIMEVAL*);
      |             ^~~~~~~~~~~~
In file included from ../wine-proton-wine-6.3-8-rc5/dlls/wldap32/add.c:26:
/usr/include/ldap.h:1555:1: note: previous declaration of ‘ldap_connect’ with type ‘int(LDAP *)’ {aka ‘int(struct ldap *)’}
 1555 | ldap_connect( LDAP *ld );
      | ^~~~~~~~~~~~
make: *** [Makefile:266906: dlls/wldap32/ber.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [Makefile:266881: dlls/wldap32/add.o] Error 1
==> ERROR: A failure occurred in build().
error: failed to build 'wine-valve-1:6.3.8.rc5-1'

blau commented on 2021-11-19 10:15 (UTC)

I am also facing this problem...

SimonJ commented on 2021-11-18 16:17 (UTC)

Same error here with a native linux install. It is using the Nvidia 470 driver.

WyekS commented on 2021-11-17 21:51 (UTC)

I had enabled multilib-build. The order in which the packages are installed does not alter the result. I still get the same error

heavysink commented on 2021-11-17 20:44 (UTC) (edited on 2021-11-17 20:46 (UTC) by heavysink)

Strange... Lilac is a build bot and it only updates AUR if the compilation is successful. Have you tried multilib-build? Since it is possible that, say, you installed vkd3d-valve which provides vkd3d so it bypasses the dependency check but it will fail.

karolyi commented on 2021-11-17 20:32 (UTC)

I've got the same error on manjaro.

WyekS commented on 2021-11-17 18:39 (UTC) (edited on 2021-11-17 18:44 (UTC) by WyekS)

I have the same error as @Ota-Coder, I'm using a native arch linux and installing by yay

heavysink commented on 2021-11-17 10:24 (UTC)

@Ota-Coder You are using mingw? I don't know because it only compiles for native archlinux...

Ota-Coder commented on 2021-11-17 10:23 (UTC)

I'm experiencing this error:

tools/winegcc/winegcc -o dlls/d2d1/d2d1.dll --wine-objdir . -b x86_64-w64-mingw32 --lib-suffix=.cross.a \
  -Wl,--wine-builtin -shared ../wine-proton-wine-6.3-8-rc4/dlls/d2d1/d2d1.spec -mno-cygwin \
  dlls/d2d1/bitmap.cross.o dlls/d2d1/bitmap_render_target.cross.o dlls/d2d1/brush.cross.o \
  dlls/d2d1/dc_render_target.cross.o dlls/d2d1/device.cross.o dlls/d2d1/effect.cross.o \
  dlls/d2d1/factory.cross.o dlls/d2d1/geometry.cross.o dlls/d2d1/hwnd_render_target.cross.o \
  dlls/d2d1/layer.cross.o dlls/d2d1/mesh.cross.o dlls/d2d1/state_block.cross.o \
  dlls/d2d1/stroke.cross.o dlls/d2d1/wic_render_target.cross.o dlls/d2d1/version.res \
  dlls/dwrite/libdwrite.delay.a dlls/d3d10_1/libd3d10_1.cross.a dlls/dxguid/libdxguid.cross.a \
  dlls/uuid/libuuid.cross.a dlls/gdi32/libgdi32.cross.a dlls/user32/libuser32.cross.a \
  dlls/advapi32/libadvapi32.cross.a dlls/ucrtbase/libucrtbase.cross.a 
/usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld: dlls/d2d1/brush.cross.o: in function `d2d_brush_fill_cb':
/home/username/.cache/yay/wine-valve/src/wine-valve-64-build/../wine-proton-wine-6.3-8-rc4/dlls/d2d1/brush.c:1215: undefined reference to `sincosf'
/usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld: dlls/d2d1/factory.cross.o: in function `D2D1MakeRotateMatrix':
/home/garuda-lxqtkwin/.cache/yay/wine-valve/src/wine-valve-64-build/../wine-proton-wine-6.3-8-rc4/dlls/d2d1/factory.c:637: undefined reference to `sincosf'
/usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld: dlls/d2d1/factory.cross.o: in function `D2D1SinCos':
/home/username/.cache/yay/wine-valve/src/wine-valve-64-build/../wine-proton-wine-6.3-8-rc4/dlls/d2d1/factory.c:718: undefined reference to `sincosf'
collect2: error: ld returned 1 exit status
winegcc: /usr/bin/x86_64-w64-mingw32-gcc failed
make: *** [Makefile:29150: dlls/d2d1/d2d1.dll] Error 2
==> ERROR: A failure occurred in build().
 -> error making: wine-valve

yampilop commented on 2021-08-07 22:33 (UTC)

@hemitheconyx solution solve my trouble too.

guglovich commented on 2021-07-23 14:07 (UTC) (edited on 2021-07-23 14:10 (UTC) by guglovich)

collect2: error: ld execution exited with return code 1

winegcc: / usr / bin / x86_64-w64-mingw32-gcc failed

make: *** [Makefile: 62090: dlls / d3drm / d3drm.dll] Error 2

make: *** Waiting for jobs to complete ...

==> ERROR: The build () has failed.


licensed commented on 2021-07-04 14:13 (UTC) (edited on 2021-07-04 14:14 (UTC) by licensed)

@hemitheconyx solution solve my trouble here too. Steps:

pacman -Rdd vkd3d-valve
yay wine-valve
yay vkd3d-valve

hemitheconyx commented on 2021-06-02 22:47 (UTC)

[ as @damir asked before: ]

@heavysink @lilac since the package builds with make -j8 (I just did it), is it possible to remove the hardcoded -j2 in the PKGBUILD ? It overrides the MAKEFLAGS env var...

somebody commented on 2021-05-20 10:22 (UTC)

i did it by installing vkd3d directly (without uninstalling because that's pain) - may need an aur helper to be able to do that without extreme pain tho.

mynis01 commented on 2021-05-18 21:04 (UTC)

@hemitheconyx That worked for me too! Thank you so much for sharing. I've also been trying to update this package for a few months and couldn't figure out what I had to do to get it to build.

hemitheconyx commented on 2021-05-18 17:55 (UTC)

I've been stuck unable to update this package for a few months, but I eventually managed to do it by uninstalling vkd3d-valve and everything which depended on it, installing instead vkd3d, and eventually reinstalling everything I uninstalled before (including wine-valve).

somebody commented on 2021-05-04 22:38 (UTC)

seems like build is failing again?

../wine-experimental-wine-6.3-20210503/dlls/d3d12/d3d12_main.c: In function ‘D3D12CreateDevice’:
../wine-experimental-wine-6.3-20210503/dlls/d3d12/d3d12_main.c:346:10: error: ‘const struct vkd3d_application_info’ has no member named ‘api_version’; did you mean ‘engine_version’?
  346 |         .api_version = VKD3D_API_VERSION_1_2,
      |          ^~~~~~~~~~~
      |          engine_version
../wine-experimental-wine-6.3-20210503/dlls/d3d12/d3d12_main.c:346:24: error: ‘VKD3D_API_VERSION_1_2’ undeclared (first use in this function); did you mean ‘VK_API_VERSION_1_2’?
  346 |         .api_version = VKD3D_API_VERSION_1_2,
      |                        ^~~~~~~~~~~~~~~~~~~~~
      |                        VK_API_VERSION_1_2

damir commented on 2021-05-04 22:33 (UTC)

is there a reason to hardcode -j2 for the make? /etc/makepkg.conf has the MAKEFLAGS set and i am wondering if there is a specific reason to limit it here to 2

keilmillerjr commented on 2021-05-03 13:56 (UTC)

Package recently updated, but still failing 5 months later.

sylvite commented on 2021-02-01 18:35 (UTC) (edited on 2021-02-01 21:56 (UTC) by sylvite)

I created a Dockerfile as a PoC just to show that this package can build without any patches or other aur/git repos. Obviously I haven't tried running wine-valve in docker-- this is just to show that the build works without errors.

$ curl > Dockerfile 
$ docker build -t wine-valve .

Edit: The corresponding pacman list:

$ docker run -it --rm wine-valve pacman -Q

heavysink commented on 2021-01-30 13:07 (UTC) (edited on 2021-01-30 13:08 (UTC) by heavysink)

Hi, I did the following experiments:

1) Use stock vkd3d, it leaves out errors:

/usr/bin/ld: evr.dll-EkR7O1.spec.o: warning: relocation against `__imp_MFConvertColorInfoToDXVA' in read-only section `.text'
/usr/bin/ld: evr.dll-EkR7O1.spec.o: in function `__wine_spec_imp_MFConvertColorInfoToDXVA':
(.text+0x36a): undefined reference to `__imp_MFConvertColorInfoToDXVA'
/usr/bin/ld: evr.dll-EkR7O1.spec.o: relocation R_X86_64_PC32 against undefined symbol `__imp_MFConvertColorInfoToDXVA' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value

2) using vkd3d-valve: /usr/bin/ld: d3d12_main.o: in function `D3D12CreateVersionedRootSignatureDeserializer':

d3d12_main.c:(.text+0x1873): undefined reference to `vkd3d_create_versioned_root_signature_deserializer'

/usr/bin/ld: d3d12_main.o: in function `D3D12SerializeVersionedRootSignature':

d3d12_main.c:(.text+0x1ad9): undefined reference to `vkd3d_serialize_versioned_root_signature'

adding '!buildflags' like won't help

sylvite commented on 2021-01-15 07:20 (UTC) (edited on 2021-01-15 07:24 (UTC) by sylvite)

I've tried for weeks to get this to install to no avail. Then with some combination of uninstalling and installing *-git and non *-git packages, I was finally able to get 5.13-4 installed earlier today. I don't remember the exact commands I used, but I pasted a snippet of lines from my pacman.log in order here,, if it can be of any help to anyone.

Edit: And at least one small game seems to run OK, although I lost some of my settings from when I was using multilib/wine, which I'm looking into.

andrfgs commented on 2021-01-02 04:06 (UTC)

This is broken and even installing Valve's vkd3d versions do not fix it. The error is the same as reported by @minder before and after installing the Valve versions of vkd3d

I still can't understand how to fix this using the aforementioned link. I have to investigate further.

keilmillerjr commented on 2020-12-25 20:01 (UTC)

@minder I have the same issue.

kesis commented on 2020-12-12 17:19 (UTC)

@minder I had the same error but it compiled after installing Valve's versions of vkd3d (vkd3d-valve-git, lib32-vkd3d-valve-git).

ynikitenko commented on 2020-12-12 16:11 (UTC)

@minder - this is a linkage error. A dynamic library was not found (not in LD_LIBRARY_PATH or not installed, or a wrong version without that function). There was a discussion of this error on .

minder commented on 2020-12-11 23:54 (UTC) (edited on 2020-12-11 23:54 (UTC) by minder)

Got this error during 5.13-2 compilation:

/usr/bin/ld: d3d12_main.o: in function `D3D12CreateVersionedRootSignatureDeserializer':
d3d12_main.c:(.text+0x142c): undefined reference to `vkd3d_create_versioned_root_signature_deserializer'
/usr/bin/ld: d3d12_main.o: in function `D3D12SerializeVersionedRootSignature':
d3d12_main.c:(.text+0x16fe): undefined reference to `vkd3d_serialize_versioned_root_signature'
collect2: error: ld returned 1 exit status
winegcc: /usr/bin/gcc failed

qweasdvv commented on 2020-06-27 04:08 (UTC)

please add deps faudio and lib32-faudio