Destroyed Build instructions (Ubuntu) (markdown)

Arkadiusz Hiler 2023-08-15 17:23:41 +03:00
parent 2bb6ae01d0
commit 3347b98dbc

@ -1,102 +0,0 @@
# Introduction
These instructions cover building Proton 4.2 or newer on Ubuntu using Docker. It is possible to compile without Docker (with `--no-steam-runtime` option to configure script), but this article does not cover such scenario.
Tested on Ubuntu 18.04.
## Install Docker
Install Docker using the instructions [here](https://docs.docker.com/install/linux/docker-ce/ubuntu/).
Make it start at boot:
$ sudo systemctl enable docker
Proton build system expects, that Docker can be started by a user, so you need to:
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ sudo systemctl restart docker
$ newgrp docker
Verify that you can run docker commands without sudo (as noted in the [Linux post-installation steps](https://docs.docker.com/install/linux/linux-postinstall/)):
$ docker run hello-world
Now it's time to reboot your machine.
## Install build dependencies
$ sudo apt-get install gnupg2 meson gcc g++ fontforge \
mingw-w64 mingw-w64-common mingw-w64-tools
If the repository version of Meson is too old, install using pip:
$ pip3 install meson
## Obtain the source code
Clone Proton repository using `--recurse-submodules` to automatically initialize all submodules:
$ git clone --recurse-submodules git@github.com:ValveSoftware/Proton.git proton
Then clone steam-runtime, it should be placed next to Proton repository.
$ git clone git@github.com:ValveSoftware/steam-runtime.git
## Build Docker images
Before the first Proton compilation, you need to build and install Docker images with the Steam runtime. Each of these steps will take several minutes.
$ ./steam-runtime/setup_docker.sh amd64 --extra-bootstrap=./proton/steamrt-bootstrap.sh steam-proton-dev
$ ./steam-runtime/setup_docker.sh i386 --extra-bootstrap=./proton/steamrt-bootstrap.sh steam-proton-dev32
Once finished, you can check if new images were registered in docker (IMAGE ID will likely be different for you):
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
steam-proton-dev32 latest ff2263a37f39 24 minutes ago 1.86GB
steam-proton-dev latest 41907a89f224 30 minutes ago 1.95GB
hello-world latest fce289e99eb9 12 months ago 1.84kB
## Build
Now it's time to build Proton itself:
$ mkdir proton-mybuild
$ cd proton-mybuild
$ ../proton/configure.sh --steam-runtime64=docker:steam-proton-dev --steam-runtime32=docker:steam-proton-dev32 --steam-runtime=$HOME/steam-runtime/runtime/ --build-name="proton-mybuild"
$ make
### Possible Make Errors
If you encounter the error `mutex in namespace std does not name a type`, you will need to do the following (as noted on [Stack Overflow](https://stackoverflow.com/questions/14191566/c-mutex-in-namespace-std-does-not-name-a-type)):
$ cd $(dirname $(which i686-w64-mingw32-g++))
$ sudo mv i686-w64-mingw32-g++ i686-w64-mingw32-g++.old
$ sudo ln -s ./i686-w64-mingw32-g++-posix i686-w64-mingw32-g++
$ cd $(dirname $(which x86_64-w64-mingw32-g++))
$ sudo mv x86_64-w64-mingw32-g++ x86_64-w64-mingw32-g++.old
$ sudo ln -s ./x86_64-w64-mingw32-g++-posix x86_64-w64-mingw32-g++
If you encounter the error `fatal error: dxgi.h: No such file or directory`, I have not found a good fix, however, you can add this line to the makefile to compile without dxvk:
NO_DXVK := 1
*If anyone finds a better fix for the above issue, please update this page.*
## Packaging and Installation
To package Proton after successful build:
$ make dist
To test it you can install your build in Steam client. You need to select `proton-localbuild` in Steam Play settings.
$ make install
If you want to remove your locally built proton:
$ rm -rf ~/.local/share/Steam/.../proton-mybuild
Read more about deployment and Proton configuration: https://github.com/ValveSoftware/Proton#deploying