mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-03-16 07:20:28 +03:00
Destroyed Build instructions (Ubuntu) (markdown)
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
|
|
Loading…
x
Reference in New Issue
Block a user