Closed mozo78 closed 5 years ago
I've updated the README.md
to include instructions on how to build on Arch Linux. Because I'm a total Arch noob (this was my first install), I expect it's not perfect - do not follow it blindly. Let me know if you think it can be improved.
I followed the instructions but it again failed to build: https://pastebin.com/8xVTCfXJ
Yes, I'm working on that... I've re-done all the makefiles to define dependencies properly now. It also looks cleaner now. Hang on, I'm still testing.
Works for me now from a clean clone except for DXVK... I didn't test the resulting build, tho. The README.md
has new instructions.
If DXVK fails for you, this is probably due to a bug how Arch configured its wineg++
compiler, it has -isystem /usr/include
while my Gentoo version doesn't have it. This could mess with the stdlib include paths.
make dist.tar.xz
works (and doesn't build DXVK). I guess that make dxvk-dist.tar.xz
could work if wineg++
would work okay. I wonder whether other projects using wineg++
in Arch suffer the same issues... There's not much I can find except one very current similar report here: https://aur.archlinux.org/packages/carla-bridges-win64-git/
It essentially says you may get this error or don't. Good luck. :-)
Arch Linux doesn't seem to have a concept of installing packages by version so I had no downgrades available for testing.
So I can't use make dxvkdist but make dist? What negatives bring this? Can I use DXVK in the old fasion putting the libraries in the .exe directory?
Now if I try to build the package nothing happens. The result is:
[mozo@mozo wine-proton]$ make configure
[mozo@mozo wine-proton]$
@mozo78 Just run make
. Running make configure
is more or less a no-op now.
If DXVK is not included in the bundle your system is going to build, it will just use whatever DXVK version Proton provides (because this bundle won't overwrite the DLLs then, or you can put the DXVK files into the .exe directory, both options will work).
PS: You may want to first clean the directories free of old compile failures:
git clean -xdf && git submodule foreach git clean -xdf
Thank you for the DXVK clarification :)
For the build problems: There aren't old compile failures. For every new try I test with fresh git clone.
As I said, just running make
or make -j$(nproc)
should work fine right out of the box... It did here in a fresh Arch container I've setup just for this very issue (using the bootstrap tar image one can download for Arch installation from scratch).
PS: -j$(nproc)
will compile with multiple processes in parallel which should be faster. The nproc
comand will show the number of CPU threads supported. You could also use make -j3
or whatever count is sane.
With make -j$(nproc) it finally starts to build without errors. How can I set it locally instead of system wide? With vanilla Wine I use:
./configure --enable-win64 --prefix=/home/mozo/wine
Haw I can achieve this with your build? Thank you :)
Oops, it again gives error:
Done installing wine libraries!
Bundling vendor libraries...
Adding the FAudio ingredient...
Stirring some vkd3d into wine...
Creating vkd3d distribution...
Creating FAudio distribution...
Spicing up with DXVK...
Configuring sacred 32-bit DXVK libraries...
Configuring sacred 64-bit DXVK libraries...
Building 64-bit DXVK libraries...
Building 32-bit DXVK libraries...
make[3]: *** [makefile:46: build/wine64] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [makefile:46: build/wine32] Error 1
make[2]: *** [makefile:153: vendor/dxvk/dist.tar.xz] Error 2
make[1]: *** [makefile:156: bundle-dxvkdist] Error 2
make: *** [makefile:176: dxvk-dist.tar.xz] Error 2
I tried with make dxvkdist and with make dist with the same result.
Unpack the resulting dist.tar.xz
, tho things work a little different in Proton-land... You may need to adjust LD_LIBRARY_PATH
to run the files, and also it removes most of the wine-cruft not needed for running just a game.
However, you could edit the makefile
and add your own configure flags (variable CONFIGURE_FLAGS
), also change the DESTDIR=
in the install rules. Then run make install-wine
instead of making the .tar.xz
. But this won't include the vendored projects then, you'd need to build/install those individually/manually.
Running make vendor/{faudio,vkd3d}/dist.tar.xz
would create the .tar.xz
of those subprojects which you could manually extract and place the .so
files. But I won't support automating this, this project is meant to build a proton-compatible dist-bundle - which works.
BTW: DESTDIR
should be the installation destination path, thus your $HOME/wine/
, --prefix
should be one of the well-known paths (/
, /opt
, /usr
, /usr/local
), thus this should be DESTDIR=$HOME/wine
with --prefix=/
for your example. Then, point the ld path to the proper locations: LD_LIBRARY_PATH=$HOME/wine/lib64:$HOME/wine/lib
when running wine.
Oops, it again gives error:
Done installing wine libraries! Bundling vendor libraries... Adding the FAudio ingredient... Stirring some vkd3d into wine... Creating vkd3d distribution... Creating FAudio distribution... Spicing up with DXVK... Configuring sacred 32-bit DXVK libraries... Configuring sacred 64-bit DXVK libraries... Building 64-bit DXVK libraries... Building 32-bit DXVK libraries... make[3]: *** [makefile:46: build/wine64] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: *** [makefile:46: build/wine32] Error 1 make[2]: *** [makefile:153: vendor/dxvk/dist.tar.xz] Error 2 make[1]: *** [makefile:156: bundle-dxvkdist] Error 2 make: *** [makefile:176: dxvk-dist.tar.xz] Error 2
I tried with make dxvkdist and with make dist with the same result.
Yes, because both build with DXVK. Use make dist.tar.xz
. See line 37, 173, and 183 of makefile
.
I already pointed that out before: https://github.com/kakra/wine-proton/issues/4#issuecomment-448035476
Ok, thank you :) I'll try with make dist.tar.xz
then.
BTW: make bundle-dist
should create a dist directory for you that you can use. However, if you change the --prefix
or DESTDIR
it won't work correctly because wine stuff will end up at your custom destination directory while the rest ends up in dist
.
The DXVK build issue may be fixed once Arch merges wine-mirror/wine@9bb21d11352783307a978d777dc0ab5d474c09c1.
make dist.tar.xz -j$(nproc) did the trick. Thank you :)
You're welcome. I agree this can be closed, I'm sure once Arch provides wine 4.0-rc3, you can also build with dxvk.
We are with 4.0 RC2 a week already :)
Sorry, rc3... I updated my comment.
Ah I see :)
Hello, when I try to build the package it gives me the following error: https://pastebin.com/V6tTRvkN