Valve wineHQ's clone

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
raul
Newbie
Newbie
Posts: 2
Joined: Wed Aug 22, 2018 8:04 am

Valve wineHQ's clone

Post by raul »

Valve wineHQ's clone
https://github.com/ValveSoftware/Proton
Well, that's what they're going to do about it.
Introduction

Proton is a tool for use with the Steam client which allows games which are exclusive to Windows to run on Linux and macOS operating systems. It uses Wine to facilitate this.

Most users will prefer to use Proton provided by the Steam client itself. The source code is provided to enable advanced users the ability to alter Proton. For example, some users may wish to use a different version of Wine with a particular title.

Getting Started with Proton from Steam Play

Make sure you are opted into the Steam Client Beta!
Proton requires graphics drivers that are more recent than what is typically packaged in most distributions; please read the list of requirements and quickstart for Ubuntu 18.04 users
Install and play games! Please refer to this post for more information.
Obtaining Proton from source

NOTE: If you are not comfortable in a command line terminal, or if you find any of the information presented in here strange and uncomfortable, then this is probably not for you. The instructions are likely to be incomplete and require some knowledge and skill on your part, and there is no warranty or guarantee that anyone will help you with this process.

We strongly recommend that most users use the production build of Proton.

The most current source for Proton is here: https://github.com/ValveSoftware/Proton

Which you can clone to your system with this command:

git clone https://github.com/ValveSoftware/Proton.git proton
After cloning the Proton git repository, the next step will be to obtain the various submodules that go into building Proton:

cd proton
#for linux:
git submodule update --init wine dxvk ffmpeg openal-soft openvr
#for macos:
git submodule update --init
If you wish to change any subcomponent, now is the time to do so. For example, if you wish make changes to Wine, you would apply those changes to the wine/ directory.

Building for Linux

To build Proton for Linux, set up a Debian machine with the Steam runtime and chroots as documented in the Steam Runtime repository:

https://github.com/ValveSoftware/steam-runtime

In addition, you will need to install gcc-5 and a long list of dependencies required for Wine. The following set of commands is an example session, and may not be complete.

cd ~
git clone https://github.com/ValveSoftware/steam-runtime.git
cd steam-runtime
#install the end-user steam runtime:
./build-runtime.py
#install the 32-bit scout_beta runtime:
./setup_chroot.sh --beta --i386
#enter the 32-bit runtime:
schroot --chroot steamrt_scout_beta_i386
This will enter the chroot environment, where you would issue the following commands:

sudo apt-get install gcc-5 g++-5 g++-5-multilib flex bison libosmesa6-dev libpcap-dev libhal-dev libsane-dev libv4l-dev libgphoto2-2-dev libcapi20-dev libgsm1-dev libmpg123-dev libvulkan-dev libxslt1-dev nasm yasm
sudo update-alternatives --install `which gcc` gcc `which gcc-5` 50
sudo update-alternatives --set gcc `which gcc-5`
sudo update-alternatives --install `which g++` g++ `which g++-5` 50
sudo update-alternatives --set g++ `which g++-5`
sudo update-alternatives --install `which cpp` cpp-bin `which cpp-5` 50
sudo update-alternatives --set cpp-bin `which cpp-5`
exit
Next, you need to repeat the process, but for amd64:

./setup_chroot.sh --beta --amd64
schroot --chroot steamrt_scout_beta_amd64
And then repeat all of the commands to install gcc and Wine dependencies again.

In addition, your host system will need to be able to run Wine in both 64- and 32-bit modes in order to create the default prefix. It is recommended to install Wine from your package manager, including its optional dependencies.

The openal-soft build system requires cmake 3.0.2 or later, which is newer than the Steam runtime SDK provides. You will need to build and install a newer cmake into each of the runtimes. For convenience, the build_proton.sh script will attempt to use cmake from ~/opt32/bin/ and ~/opt64/bin/, if available.

The following example session obtained and built cmake:

cd /tmp
wget https://cmake.org/files/v3.11/cmake-3.11.4.tar.gz
schroot --chroot steamrt_scout_beta_i386
tar -xzf cmake-3.11.4.tar.gz
cd cmake-3.11.4
./configure --parallel=4 --prefix=~/opt32
make -j 4 && make install
exit
rm -rf cmake-3.11.4
schroot --chroot steamrt_scout_beta_amd64
tar -xzf cmake-3.11.4.tar.gz
cd cmake-3.11.4
./configure --parallel=4 --prefix=~/opt64
make -j 4 && make install
exit
Finally, change your directory back to proton, and run:

cd ../proton
./build_proton.sh
That should configure and build Wine, and then package the result up into dist/. It is important to examine the output near the end of build/wine.win{64,32}/config.log to ensure that you have all of the relevant libraries in each chroot. Search for 'executing Makefile commands' in config.log to find messages about missing libraries. It is normal to be missing a few libraries, including OpenCL, OSS, and libav.

NOTE: The build_proton.sh script builds most components inside the Steam runtime chroot. However, dxvk will not build in that environment, so the build_proton.sh script will build it on your local system. This will require you to be able to build dxvk on your local system; refer to the dxvk README.md for more details.

Building for macOS

To build Proton for macOS, install the latest Xcode command line tools, as well as cmake (for openal-soft) and a recent nasm (for libjpeg-turbo). You can use a packager like Homebrew to find these packages. Then run:

./build_proton.sh
TODO - Surely there are other dependencies we have not listed there.

It is important to examine the output near the end of build/wine.win{64,32}/config.log to ensure that you have all of the relevant libraries required to build Wine properly.

Deploying

Once built, the dist/ directory will contain the files which can be distributed through Steam. For testing purposes, you should be able to clear out the files in your steamapps/common/Proton directory and replace them with the contents of dist/. The proton script will unpack the files on first run. Note that if you use the Steam client to verify local files, it will restore the production version of Proton.

Each component of this software is used under the terms of their licenses. See the LICENSE files here, as well as the LICENSE, COPYING, etc files in each submodule and directory for details.

Runtime Config Options

Proton can be tuned at runtime to help certain games run. The Steam client sets some options for known games using the STEAM_COMPAT_CONFIG variable. You can override these options using the environment variables described below. The best way to set these environment overrides is by renaming "user_settings.sample.py" to "user_settings.py" and modifying it appropriately.

To enable an option, set the variable to a non-0 value. To disable an option, set the variable to 0. To use Steam's default configuration, do not specify the variable at all.

All of the below are runtime options. They do not effect permanent changes to the Wine prefix. Removing the option will revert to the previous behavior.

Compat config string Environment Variable Description
wined3d11 PROTON_USE_WINED3D11 Use OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11.
nod3d11 PROTON_NO_D3D11 Disable d3d11.dll, for games which can fall back to and run better with d3d9.
noesync PROTON_NO_ESYNC Do not use eventfd-based in-process synchronization primitives.
Copyright (c) 2018, Valve Corporation
All rights reserved.

Redistribution and use of Proton in source and binary forms is governed
by a variety of licenses.

Refer to the contents of LICENCE.proton for the license for the top
level contents of the Proton project.

Proton uses a variety of other software, each of which is governed
by its own license. Those licenses are contained in a file named
LICENSE or COPYING in each directory.
Copyright (c) 2018, Valve Corporation
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ps. I AM NOT spambots
raul
Newbie
Newbie
Posts: 2
Joined: Wed Aug 22, 2018 8:04 am

Re: Valve wineHQ's clone

Post by raul »

winehq are not aware of a violation of gnu gpl...
please explain to me this abomination (license violation) of the valve...
please explain this clone thing!!!!!!????
This week, Valve announced a new beta version of Steam Play that includes a Windows emulator for Linux. This project is part of Steam's effort to bring more compatible games to Linux, allowing those users to play a larger subset of the service's back catalog. The team also hopes that this new feature will make it easier for developers to create Linux-compatible versions of their games.

The Steam Play beta includes Proton, a modified distribution of Wine, which allows Windows applications to run on non-Windows systems. Now, Linux users can run some Windows games (that have no existing Linux version) straight from Linux Steam. These games will have Steamworks and OpenVR support. DirectX 11 and 12 have better compatibility and reduced impact on performance because they will be based on Vulkan. There is also better fullscreen and game controller support. The graphics performance in particular appears to be better than what you typically find with emulators.

The full list of Windows-based games compatible with the beta is below. Steam promises to add more games to this list soon. If you'd like to make sure your favorite game is in consideration, you can nominate it here. And if you need to opt into the Linux Steam Client Beta, you can do that here.

Beat Saber
Bejeweled 2 Deluxe
Doki Doki Literature Club!
DOOM
DOOM II: Hell on Earth
DOOM VFR
Fallout Shelter
FATE
FINAL FANTASY VI
Geometry Dash
Google Earth VR
Into The Breach
Magic: The Gathering - Duels of the Planeswalkers 2012
Magic: The Gathering - Duels of the Planeswalkers 2013
Mount & Blade
Mount & Blade: With Fire & Sword
NieR: Automata
PAYDAY: The Heist
QUAKE
S.T.A.L.K.E.R.: Shadow of Chernobyl
Star Wars: Battlefront 2
Tekken 7
The Last Remnant
Tropico 4
Ultimate Doom
Warhammer® 40,000: Dawn of War® - Dark Crusade
Warhammer® 40,000: Dawn of War® - Soulstorm
Gcenx
Level 6
Level 6
Posts: 709
Joined: Mon Dec 25, 2017 12:11 pm

Re: Valve wineHQ's clone

Post by Gcenx »

I don’t see any violation here.

The top level of the project aka Proton is Valves own code, they never claimed Wine/DXVK or other components are there own. Each component that is used by proton links to its original license.

Codeweavers were directly paid to help produce the hightly patch wine version that is used by proton and Valve also submit patches back upstream if they conform to the wine projects requirments.

You can look directly at the project yourself on GitHub or why not just read the new section of here (winehq) it’s posted that it’s a collaboration they have been working on for over 2 years....
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: Valve wineHQ's clone

Post by dimesio »

It is a fork, not a clone, and Wine's license is LGPL, not GPL.

I don't know where you think you see a license violation. Valve's modified Wine is also LGPL and the source code and license information published on https://github.com/ValveSoftware/wine.
User avatar
DarkShadow44
Level 8
Level 8
Posts: 1207
Joined: Tue Nov 22, 2016 5:39 pm

Re: Valve wineHQ's clone

Post by DarkShadow44 »

That's the point of opensource, others can clone and use it under the terms of the license.
Jeremy White wrote:We have been working directly with Valve for two years on this effort, and the launch yesterday was one of the most joyful days of my career, for a variety of reasons.
This clone is made in cooperation with winehq, so why would we be against it?
Locked