protonscr

Unable to compile Proton correctly

protonopen
ValveSoftware/Proton#8012 · opened 2024-08-22 by baikaishiuc · updated 2024-09-21 · 5 comments · github
Bbaikaishiuc 2024-08-22 github

Proton Version: experminental_9.0

How to reproduce this problem:

git clone --recurse-submodules https://github.com/ValveSoftware/Proton.git proton
git checkout experimental_9.0
git submodule update --init --recursive
mkdir ../build && cd ../build
../proton/configure.sh --enable-ccache --build-name=my_build
make

error info:

-- Installing: /home/zhengxianwei/source/Proton/build/dst-glslang32/lib/glslang/glslang-config.cmake
-- Installing: /home/zhengxianwei/source/Proton/build/dst-glslang32/lib/glslang/glslang-config-version.cmake
make[1]: Leaving directory '/home/zhengxianwei/source/Proton/build/obj-glslang32'
touch /home/zhengxianwei/source/Proton/build/.glslang-build32
rm obj-fonts/LiberationMono-Regular.sfd obj-fonts/LiberationSerif-Regular.sfd obj-fonts/LiberationSans-Bold.sfd obj-fonts/LiberationSans-Regular.sfd obj-fonts/LiberationMono-Bold.sfd
make: *** [../Makefile.in:1263: all] Error 2
JJaskowicz1 2024-08-31 github

Same here.

JJaskowicz1 2024-08-31 github

I want to add, I can't compile on the proton_9.0 branch either. I'm on Debian 12, gcc12.2.0.

I've tried make install (like the guide says for an easy install) and i've tried make redist. Both throw Error 2.

make install will do:

/home/archie/proton/build/build-proton_9.0-local/src-wine/include/zmouse.h /home/archie/proton/build/build-proton_9.0-local/dst-wine32/include/wine/windows/zmouse.h
make[1]: Leaving directory '/home/archie/proton/build/build-proton_9.0-local/obj-wine32'
touch /home/archie/proton/build/build-proton_9.0-local/.wine-build32
make: Leaving directory '/home/archie/proton/build/build-proton_9.0-local'
make[1]: *** [../../Makefile.in:1172: all] Error 2
make[1]: Leaving directory '/home/archie/proton/build/build-proton_9.0-local'
make: *** [Makefile:133: install] Error 2

make redist will do:

/home/archie/build/src-wine/tools/install-sh -m 644  include/xpsobjectmodel_1.h /home/archie/build/dst-wine32/include/wine/windows/xpsobjectmodel_1.h
/home/archie/build/src-wine/tools/install-sh -m 644  /home/archie/build/src-wine/include/zmouse.h /home/archie/build/dst-wine32/include/wine/windows/zmouse.h
make[1]: Leaving directory '/home/archie/build/obj-wine32'
touch /home/archie/build/.wine-build32
rm obj-fonts/LiberationMono-Bold.sfd obj-fonts/LiberationMono-Regular.sfd obj-fonts/LiberationSerif-Regular.sfd obj-fonts/LiberationSans-Bold.sfd obj-fonts/LiberationSans-Regular.sfd
make: *** [../proton/Makefile.in:1172: redist] Error 2
AAthanasius 2024-09-07 github

I think perhaps you're both running into the issue I'm seeing.

A problem is that the error spat out by the normal build process is actually only reporting that 'something' went wrong with the docker-run build process. That's what that Error 2 comes from.

If you save the entire build output to a log file then you might see what I'm seeing which is a problem relating to openfst:

rsync --filter=:C --exclude '*~' --exclude .git --exclude compile_commands.json --include src/include/fst/config.h.in --exclude aclocal.m4 --exclude ar-lib --exclude autom4te.cache --exclude compile --exclude config.guess --exclude config.h.in --exclude config.sub --exclude configure --exclude depcomp --exclude install-sh --exclude ltmain.sh --exclude m4/libtool.m4 --exclude m4/ltoptions.m4 --exclude m4/ltsugar.m4 --exclude m4/ltversion.m4 --exclude m4/lt~obsolete.m4 --exclude Makefile.in --exclude missing --exclude test-driver  --info=name -Oarx --delete "/mnt/tuesday/data0/git-clones/Proton.git/openfst/" "/mnt/tuesday/data0/git-clones/proton-builds/e-9.0-20240808/src-openfst" 
include/private/
make: *** No rule to make target '/mnt/tuesday/data0/git-clones/Proton.git/openfst/configure.ac', needed by '/mnt/tuesday/data0/git-clones/proton-builds/e-9.0-20240808/src-openfst/configure'.  Stop.
make: *** Waiting for unfinished jobs....

This will then eventually lead to a build failure on any subsequent attempt to build using the same build directory, but first it will work its way through everything else that it did manage to rsync and configure properly.

So, what's up with the openfst rsync/configure ?

My "/mnt/tuesday/data0/git-clones/Proton.git/openfst/" (as the name implies, this is the checkout of this repo), as per the rsync cited above currently is entirely empty. I'd assume something earlier in the build process is meant to populate it.

Earlier build output relating to openfst:

syncing openfst... done, dirty
../../Proton.git/Makefile.in:425: warning: overriding recipe for target '/mnt/tuesday/data0/git-clones/proton-builds/e-9.0-20240808/src-openfst/configure'
../../Proton.git/Makefile.in:424: warning: ignoring old recipe for target '/mnt/tuesday/data0/git-clones/proton-builds/e-9.0-20240808/src-openfst/configure'

but there's similar for other modules, so this may be a red herring.

From scratch:

athan@emilia:/mnt/tuesday/data0/git-clones/proton-builds/e-9.0-20240808;
11:21:52 0$ ../../Proton.git/configure.sh --enable-ccache --build-name=e-9.0-20240808
...
nice -10 make -j16 -l16 2>&1 | tee make-manual.log

And the output of that make was: make-manual.log.gz

FFuzzyQuils 2024-09-21 github

I ran into this issue today trying to build Proton to test a DXVK branch; my suspicion is that the Proton repo wasn't properly cloned with submodules as running git submodule update --remote --recursive or just git submodule update openfst fixed the empty folder issue for me.

Always cloning the repository as per Valve's instructions (git clone --recursive <URL here>) usually prevents this issue but my end also had an empty folder so idk what causes this to happen in the first place.

AAthanasius 2024-09-21 github

I'm guessing forcing the submodule updates on checkout using a hook isn't done in case someone is wanting to just switch quickly between branches/other refs to check something ?

Proton versions