Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build in Arch Linux #4

Closed
mozo78 opened this issue Dec 15, 2018 · 20 comments
Closed

Cannot build in Arch Linux #4

mozo78 opened this issue Dec 15, 2018 · 20 comments
Assignees
Labels
documentation Documentation should be improved enhancement New feature or request help wanted Extra attention is needed

Comments

@mozo78
Copy link

mozo78 commented Dec 15, 2018

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

@kakra kakra added help wanted Extra attention is needed documentation Documentation should be improved enhancement New feature or request labels Dec 15, 2018
@kakra kakra changed the title Spirv-headers and spirv-tools needed at build on Arch Linux Cannot build in Arch Linux Dec 16, 2018
@kakra
Copy link
Owner

kakra commented Dec 16, 2018

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.

@kakra kakra closed this as completed Dec 16, 2018
@mozo78
Copy link
Author

mozo78 commented Dec 16, 2018

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

@kakra
Copy link
Owner

kakra commented Dec 16, 2018

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 kakra reopened this Dec 16, 2018
@kakra
Copy link
Owner

kakra commented Dec 17, 2018

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.

@kakra kakra self-assigned this Dec 17, 2018
@mozo78
Copy link
Author

mozo78 commented Dec 18, 2018

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
Copy link
Owner

kakra commented Dec 18, 2018

@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
Copy link
Author

mozo78 commented Dec 18, 2018

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
Copy link
Owner

kakra commented Dec 18, 2018

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
Copy link
Author

mozo78 commented Dec 18, 2018

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
Copy link
Author

mozo78 commented Dec 18, 2018

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
Copy link
Owner

kakra commented Dec 18, 2018

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
Copy link
Owner

kakra commented Dec 18, 2018

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:
#4 (comment)

@mozo78
Copy link
Author

mozo78 commented Dec 18, 2018

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

@kakra
Copy link
Owner

kakra commented Dec 18, 2018

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
Copy link
Owner

kakra commented Dec 18, 2018

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

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

@mozo78
Copy link
Author

mozo78 commented Dec 18, 2018

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

@mozo78 mozo78 closed this as completed Dec 18, 2018
@kakra
Copy link
Owner

kakra commented Dec 18, 2018

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
Copy link
Author

mozo78 commented Dec 19, 2018

We are with 4.0 RC2 a week already :)

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

@kakra
Copy link
Owner

kakra commented Dec 19, 2018

Sorry, rc3... I updated my comment.

@mozo78
Copy link
Author

mozo78 commented Dec 19, 2018

Ah I see :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Documentation should be improved enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants