kakra / wine-proton

Proton'ized Wine, served hot, extra spicy: Please read README.md as a starting point
https://github.com/kakra/wine-proton/blob/rebase/proton_3.16/README.md
Other
35 stars 1 forks source link

Cannot build in Arch Linux #4

Closed mozo78 closed 5 years ago

mozo78 commented 5 years ago

Hello, when I try to build the package it gives me the following error: https://pastebin.com/V6tTRvkN

kakra commented 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.

mozo78 commented 5 years ago

I followed the instructions but it again failed to build: https://pastebin.com/8xVTCfXJ

kakra commented 5 years ago

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.

kakra commented 5 years ago

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.

mozo78 commented 5 years ago

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]$ 
kakra commented 5 years ago

@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

mozo78 commented 5 years ago

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.

kakra commented 5 years ago

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.

mozo78 commented 5 years ago

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 :)

mozo78 commented 5 years ago

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.

kakra commented 5 years ago

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.

kakra commented 5 years ago

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

mozo78 commented 5 years ago

Ok, thank you :) I'll try with make dist.tar.xz then.

kakra commented 5 years ago

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.

kakra commented 5 years ago

The DXVK build issue may be fixed once Arch merges wine-mirror/wine@9bb21d11352783307a978d777dc0ab5d474c09c1.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46293

mozo78 commented 5 years ago

make dist.tar.xz -j$(nproc) did the trick. Thank you :)

kakra commented 5 years ago

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.

mozo78 commented 5 years ago

We are with 4.0 RC2 a week already :)

https://www.archlinux.org/packages/multilib/x86_64/wine/

kakra commented 5 years ago

Sorry, rc3... I updated my comment.

mozo78 commented 5 years ago

Ah I see :)