proton-ge-custom
This commit is contained in:
parent
d7e1d213c2
commit
5ae5a33538
6 changed files with 1050 additions and 0 deletions
270
proton-ge-custom/.SRCINFO
Normal file
270
proton-ge-custom/.SRCINFO
Normal file
|
@ -0,0 +1,270 @@
|
|||
pkgbase = proton-ge-custom
|
||||
pkgdesc = Compatibility tool for Steam Play based on Wine and additional components, GloriousEggroll's custom build
|
||||
pkgver = 7.2.GE.2
|
||||
pkgrel = 4
|
||||
epoch = 1
|
||||
url = https://github.com/GloriousEggroll/proton-ge-custom
|
||||
arch = x86_64
|
||||
arch = x86_64_v3
|
||||
license = custom
|
||||
makedepends = autoconf
|
||||
makedepends = bison
|
||||
makedepends = perl
|
||||
makedepends = fontforge
|
||||
makedepends = flex
|
||||
makedepends = mingw-w64-gcc
|
||||
makedepends = git
|
||||
makedepends = wget
|
||||
makedepends = rsync
|
||||
makedepends = mingw-w64-tools
|
||||
makedepends = lld
|
||||
makedepends = nasm
|
||||
makedepends = meson
|
||||
makedepends = cmake
|
||||
makedepends = python-virtualenv
|
||||
makedepends = python-pip
|
||||
makedepends = glslang
|
||||
makedepends = vulkan-headers
|
||||
makedepends = giflib
|
||||
makedepends = lib32-giflib
|
||||
makedepends = libpng
|
||||
makedepends = lib32-libpng
|
||||
makedepends = gnutls
|
||||
makedepends = lib32-gnutls
|
||||
makedepends = libxinerama
|
||||
makedepends = lib32-libxinerama
|
||||
makedepends = libxcomposite
|
||||
makedepends = lib32-libxcomposite
|
||||
makedepends = libxmu
|
||||
makedepends = lib32-libxmu
|
||||
makedepends = libxxf86vm
|
||||
makedepends = lib32-libxxf86vm
|
||||
makedepends = libldap
|
||||
makedepends = lib32-libldap
|
||||
makedepends = mpg123
|
||||
makedepends = lib32-mpg123
|
||||
makedepends = openal
|
||||
makedepends = lib32-openal
|
||||
makedepends = v4l-utils
|
||||
makedepends = lib32-v4l-utils
|
||||
makedepends = alsa-lib
|
||||
makedepends = lib32-alsa-lib
|
||||
makedepends = libxcomposite
|
||||
makedepends = lib32-libxcomposite
|
||||
makedepends = mesa
|
||||
makedepends = lib32-mesa
|
||||
makedepends = mesa-libgl
|
||||
makedepends = lib32-mesa-libgl
|
||||
makedepends = opencl-icd-loader
|
||||
makedepends = lib32-opencl-icd-loader
|
||||
makedepends = libxslt
|
||||
makedepends = lib32-libxslt
|
||||
makedepends = libpulse
|
||||
makedepends = lib32-libpulse
|
||||
makedepends = libva
|
||||
makedepends = lib32-libva
|
||||
makedepends = gtk3
|
||||
makedepends = lib32-gtk3
|
||||
makedepends = gst-plugins-base-libs
|
||||
makedepends = lib32-gst-plugins-base-libs
|
||||
makedepends = vulkan-icd-loader
|
||||
makedepends = lib32-vulkan-icd-loader
|
||||
makedepends = sdl2>=2.0.16
|
||||
makedepends = lib32-sdl2>=2.0.16
|
||||
makedepends = libgphoto2
|
||||
makedepends = gsm
|
||||
makedepends = opencl-headers
|
||||
makedepends = attr
|
||||
makedepends = lib32-attr
|
||||
makedepends = fontconfig
|
||||
makedepends = lib32-fontconfig
|
||||
makedepends = lcms2
|
||||
makedepends = lib32-lcms2
|
||||
makedepends = libxml2
|
||||
makedepends = lib32-libxml2
|
||||
makedepends = libxcursor
|
||||
makedepends = lib32-libxcursor
|
||||
makedepends = libxrandr
|
||||
makedepends = lib32-libxrandr
|
||||
makedepends = libxdamage
|
||||
makedepends = lib32-libxdamage
|
||||
makedepends = libxi
|
||||
makedepends = lib32-libxi
|
||||
makedepends = gettext
|
||||
makedepends = lib32-gettext
|
||||
makedepends = freetype2
|
||||
makedepends = lib32-freetype2
|
||||
makedepends = glu
|
||||
makedepends = lib32-glu
|
||||
makedepends = libsm
|
||||
makedepends = lib32-libsm
|
||||
makedepends = gcc-libs
|
||||
makedepends = lib32-gcc-libs
|
||||
makedepends = libpcap
|
||||
makedepends = lib32-libpcap
|
||||
makedepends = lzo
|
||||
makedepends = lib32-lzo
|
||||
makedepends = libxkbcommon
|
||||
makedepends = lib32-libxkbcommon
|
||||
makedepends = sdl2>=2.0.16
|
||||
makedepends = lib32-sdl2>=2.0.16
|
||||
makedepends = desktop-file-utils
|
||||
makedepends = python
|
||||
makedepends = steam-native-runtime
|
||||
makedepends = cabextract
|
||||
depends = attr
|
||||
depends = lib32-attr
|
||||
depends = fontconfig
|
||||
depends = lib32-fontconfig
|
||||
depends = lcms2
|
||||
depends = lib32-lcms2
|
||||
depends = libxml2
|
||||
depends = lib32-libxml2
|
||||
depends = libxcursor
|
||||
depends = lib32-libxcursor
|
||||
depends = libxrandr
|
||||
depends = lib32-libxrandr
|
||||
depends = libxdamage
|
||||
depends = lib32-libxdamage
|
||||
depends = libxi
|
||||
depends = lib32-libxi
|
||||
depends = gettext
|
||||
depends = lib32-gettext
|
||||
depends = freetype2
|
||||
depends = lib32-freetype2
|
||||
depends = glu
|
||||
depends = lib32-glu
|
||||
depends = libsm
|
||||
depends = lib32-libsm
|
||||
depends = gcc-libs
|
||||
depends = lib32-gcc-libs
|
||||
depends = libpcap
|
||||
depends = lib32-libpcap
|
||||
depends = lzo
|
||||
depends = lib32-lzo
|
||||
depends = libxkbcommon
|
||||
depends = lib32-libxkbcommon
|
||||
depends = sdl2>=2.0.16
|
||||
depends = lib32-sdl2>=2.0.16
|
||||
depends = desktop-file-utils
|
||||
depends = python
|
||||
depends = steam-native-runtime
|
||||
depends = cabextract
|
||||
optdepends = giflib
|
||||
optdepends = lib32-giflib
|
||||
optdepends = libpng
|
||||
optdepends = lib32-libpng
|
||||
optdepends = libldap
|
||||
optdepends = lib32-libldap
|
||||
optdepends = gnutls
|
||||
optdepends = lib32-gnutls
|
||||
optdepends = mpg123
|
||||
optdepends = lib32-mpg123
|
||||
optdepends = openal
|
||||
optdepends = lib32-openal
|
||||
optdepends = v4l-utils
|
||||
optdepends = lib32-v4l-utils
|
||||
optdepends = libpulse
|
||||
optdepends = lib32-libpulse
|
||||
optdepends = alsa-plugins
|
||||
optdepends = lib32-alsa-plugins
|
||||
optdepends = alsa-lib
|
||||
optdepends = lib32-alsa-lib
|
||||
optdepends = libjpeg-turbo
|
||||
optdepends = lib32-libjpeg-turbo
|
||||
optdepends = libxcomposite
|
||||
optdepends = lib32-libxcomposite
|
||||
optdepends = libxinerama
|
||||
optdepends = lib32-libxinerama
|
||||
optdepends = opencl-icd-loader
|
||||
optdepends = lib32-opencl-icd-loader
|
||||
optdepends = libxslt
|
||||
optdepends = lib32-libxslt
|
||||
optdepends = libva
|
||||
optdepends = lib32-libva
|
||||
optdepends = gtk3
|
||||
optdepends = lib32-gtk3
|
||||
optdepends = gst-plugins-base-libs
|
||||
optdepends = lib32-gst-plugins-base-libs
|
||||
optdepends = vulkan-icd-loader
|
||||
optdepends = lib32-vulkan-icd-loader
|
||||
optdepends = libgphoto2
|
||||
optdepends = gsm
|
||||
optdepends = dosbox
|
||||
provides = proton
|
||||
noextract = wine-gecko-2.47.2-x86.tar.xz
|
||||
noextract = wine-gecko-2.47.2-x86_64.tar.xz
|
||||
noextract = wine-mono-7.1.2-x86.tar.xz
|
||||
options = !staticlibs
|
||||
options = !lto
|
||||
options = emptydirs
|
||||
source = proton-ge-custom::git+https://github.com/gloriouseggroll/proton-ge-custom.git#tag=7.2-GE-2
|
||||
source = wine::git+https://github.com/wine-mirror/wine.git
|
||||
source = dxvk::git+https://github.com/doitsujin/dxvk.git
|
||||
source = openvr::git+https://github.com/ValveSoftware/openvr.git
|
||||
source = liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git
|
||||
source = FAudio::git+https://github.com/FNA-XNA/FAudio.git
|
||||
source = gstreamer::git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git
|
||||
source = gst-plugins-base::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git
|
||||
source = gst-plugins-good::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git
|
||||
source = gst-orc::git+https://gitlab.freedesktop.org/gstreamer/orc.git
|
||||
source = vkd3d-proton::git+https://github.com/HansKristian-Work/vkd3d-proton.git
|
||||
source = OpenXR-SDK::git+https://github.com/KhronosGroup/OpenXR-SDK.git
|
||||
source = dxvk-nvapi::git+https://github.com/jp7677/dxvk-nvapi.git
|
||||
source = vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git
|
||||
source = Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git
|
||||
source = SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git
|
||||
source = Vulkan-Loader::git+https://github.com/KhronosGroup/Vulkan-Loader.git
|
||||
source = gst-libav::git+https://gitlab.freedesktop.org/gstreamer/gst-libav.git
|
||||
source = dxil-spirv::git+https://github.com/HansKristian-Work/dxil-spirv.git
|
||||
source = wine-staging::git+https://github.com/wine-staging/wine-staging.git
|
||||
source = ffmpeg-meson::git+https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg.git
|
||||
source = lsteamclient-gloriouseggroll::git+https://github.com/gloriouseggroll/lsteamclient.git
|
||||
source = vrclient_x64-gloriouseggroll::git+https://github.com/gloriouseggroll/vrclient_x64.git
|
||||
source = protonfixes-gloriouseggroll::git+https://github.com/gloriouseggroll/protonfixes.git
|
||||
source = gst-plugins-bad::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad.git
|
||||
source = gst-plugins-ugly::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly.git
|
||||
source = https://dl.winehq.org/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86.tar.xz
|
||||
source = https://dl.winehq.org/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86_64.tar.xz
|
||||
source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.1.2/wine-mono-7.1.2-x86.tar.xz
|
||||
source = https://raw.githubusercontent.com/Frogging-Family/wine-tkg-git/cbf83264a16183d6b4d574e746522969fb02d126/wine-tkg-git/wine-tkg-patches/proton/fsync_futex_waitv.patch
|
||||
source = wine-more_8x5_res.patch
|
||||
source = proton-sanitize_makefile.patch
|
||||
source = proton-disable_lock.patch
|
||||
source = proton-user_compat_data.patch
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = SKIP
|
||||
sha256sums = 8fab46ea2110b2b0beed414e3ebb4e038a3da04900e7a28492ca3c3ccf9fea94
|
||||
sha256sums = b4476706a4c3f23461da98bed34f355ff623c5d2bb2da1e2fa0c6a310bc33014
|
||||
sha256sums = 59f146dde0f0540ca4648fc648e6b16335c71921deaf111b5fe8c3967881661d
|
||||
sha256sums = b121625686227bb9e51b44e1e2e762250d34b1d3f8d7750787470b1885f3a1c4
|
||||
sha256sums = 9005d8169266ba0b93be30e1475fe9a3697464796f553886c155ec1d77d71215
|
||||
sha256sums = cedd69b258c3e446307d3e4b22fe63d7fb9ad3736711ec998933dcc393b43ce7
|
||||
sha256sums = 27b75be282c5f235171569aebce80020b330d6117becdb3b1670d3124eb52489
|
||||
sha256sums = 242566c092f83a71ba06c3aefe0400af65a6fa564dd63196af54403c2c4d09e2
|
||||
|
||||
pkgname = proton-ge-custom
|
396
proton-ge-custom/PKGBUILD
Normal file
396
proton-ge-custom/PKGBUILD
Normal file
|
@ -0,0 +1,396 @@
|
|||
# Maintainer: ndowens <ndowens@artixlinux.org>
|
||||
# Contributor: loathingkernel <loathingkernel _a_ gmail _d_ com>
|
||||
|
||||
pkgname=proton-ge-custom
|
||||
_srctag=7.2-GE-2
|
||||
pkgver=${_srctag//-/.}
|
||||
_geckover=2.47.2
|
||||
_monover=7.1.2
|
||||
pkgrel=1
|
||||
pkgdesc="Compatibility tool for Steam Play based on Wine and additional components, GloriousEggroll's custom build"
|
||||
url="https://github.com/GloriousEggroll/proton-ge-custom"
|
||||
arch=(x86_64 x86_64_v3)
|
||||
options=(!staticlibs !lto emptydirs)
|
||||
license=('custom')
|
||||
|
||||
depends=(
|
||||
attr lib32-attr
|
||||
fontconfig lib32-fontconfig
|
||||
lcms2 lib32-lcms2
|
||||
libxml2 lib32-libxml2
|
||||
libxcursor lib32-libxcursor
|
||||
libxrandr lib32-libxrandr
|
||||
libxdamage lib32-libxdamage
|
||||
libxi lib32-libxi
|
||||
gettext lib32-gettext
|
||||
freetype2 lib32-freetype2
|
||||
glu lib32-glu
|
||||
libsm lib32-libsm
|
||||
gcc-libs lib32-gcc-libs
|
||||
libpcap lib32-libpcap
|
||||
lzo lib32-lzo
|
||||
libxkbcommon lib32-libxkbcommon
|
||||
'sdl2>=2.0.16' 'lib32-sdl2>=2.0.16'
|
||||
desktop-file-utils
|
||||
python
|
||||
steam-native-runtime
|
||||
cabextract
|
||||
)
|
||||
|
||||
makedepends=(autoconf bison perl fontforge flex mingw-w64-gcc
|
||||
git wget rsync mingw-w64-tools lld nasm meson cmake python-virtualenv python-pip
|
||||
glslang vulkan-headers
|
||||
giflib lib32-giflib
|
||||
libpng lib32-libpng
|
||||
gnutls lib32-gnutls
|
||||
libxinerama lib32-libxinerama
|
||||
libxcomposite lib32-libxcomposite
|
||||
libxmu lib32-libxmu
|
||||
libxxf86vm lib32-libxxf86vm
|
||||
libldap lib32-libldap
|
||||
mpg123 lib32-mpg123
|
||||
openal lib32-openal
|
||||
v4l-utils lib32-v4l-utils
|
||||
alsa-lib lib32-alsa-lib
|
||||
libxcomposite lib32-libxcomposite
|
||||
mesa lib32-mesa
|
||||
mesa-libgl lib32-mesa-libgl
|
||||
opencl-icd-loader lib32-opencl-icd-loader
|
||||
libxslt lib32-libxslt
|
||||
libpulse lib32-libpulse
|
||||
libva lib32-libva
|
||||
gtk3 lib32-gtk3
|
||||
gst-plugins-base-libs lib32-gst-plugins-base-libs
|
||||
vulkan-icd-loader lib32-vulkan-icd-loader
|
||||
'sdl2>=2.0.16' 'lib32-sdl2>=2.0.16'
|
||||
libgphoto2
|
||||
gsm
|
||||
opencl-headers
|
||||
)
|
||||
|
||||
optdepends=(
|
||||
giflib lib32-giflib
|
||||
libpng lib32-libpng
|
||||
libldap lib32-libldap
|
||||
gnutls lib32-gnutls
|
||||
mpg123 lib32-mpg123
|
||||
openal lib32-openal
|
||||
v4l-utils lib32-v4l-utils
|
||||
libpulse lib32-libpulse
|
||||
alsa-plugins lib32-alsa-plugins
|
||||
alsa-lib lib32-alsa-lib
|
||||
libjpeg-turbo lib32-libjpeg-turbo
|
||||
libxcomposite lib32-libxcomposite
|
||||
libxinerama lib32-libxinerama
|
||||
opencl-icd-loader lib32-opencl-icd-loader
|
||||
libxslt lib32-libxslt
|
||||
libva lib32-libva
|
||||
gtk3 lib32-gtk3
|
||||
gst-plugins-base-libs lib32-gst-plugins-base-libs
|
||||
vulkan-icd-loader lib32-vulkan-icd-loader
|
||||
libgphoto2
|
||||
gsm
|
||||
dosbox
|
||||
)
|
||||
|
||||
makedepends=(${makedepends[@]} ${depends[@]})
|
||||
provides=('proton')
|
||||
source=(
|
||||
proton-ge-custom::git+https://github.com/gloriouseggroll/proton-ge-custom.git#tag=${_srctag}
|
||||
wine::git+https://github.com/wine-mirror/wine.git
|
||||
dxvk::git+https://github.com/doitsujin/dxvk.git
|
||||
openvr::git+https://github.com/ValveSoftware/openvr.git
|
||||
liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git
|
||||
FAudio::git+https://github.com/FNA-XNA/FAudio.git
|
||||
gstreamer::git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git
|
||||
gst-plugins-base::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git
|
||||
gst-plugins-good::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git
|
||||
gst-orc::git+https://gitlab.freedesktop.org/gstreamer/orc.git
|
||||
vkd3d-proton::git+https://github.com/HansKristian-Work/vkd3d-proton.git
|
||||
OpenXR-SDK::git+https://github.com/KhronosGroup/OpenXR-SDK.git
|
||||
dxvk-nvapi::git+https://github.com/jp7677/dxvk-nvapi.git
|
||||
vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git
|
||||
Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git
|
||||
SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git
|
||||
Vulkan-Loader::git+https://github.com/KhronosGroup/Vulkan-Loader.git
|
||||
gst-libav::git+https://gitlab.freedesktop.org/gstreamer/gst-libav.git
|
||||
dxil-spirv::git+https://github.com/HansKristian-Work/dxil-spirv.git
|
||||
wine-staging::git+https://github.com/wine-staging/wine-staging.git
|
||||
ffmpeg-meson::git+https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg.git
|
||||
lsteamclient-gloriouseggroll::git+https://github.com/gloriouseggroll/lsteamclient.git
|
||||
vrclient_x64-gloriouseggroll::git+https://github.com/gloriouseggroll/vrclient_x64.git
|
||||
protonfixes-gloriouseggroll::git+https://github.com/gloriouseggroll/protonfixes.git
|
||||
gst-plugins-bad::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad.git
|
||||
gst-plugins-ugly::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly.git
|
||||
https://dl.winehq.org/wine/wine-gecko/${_geckover}/wine-gecko-${_geckover}-x86{,_64}.tar.xz
|
||||
https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${_monover}/wine-mono-${_monover}-x86.tar.xz
|
||||
https://raw.githubusercontent.com/Frogging-Family/wine-tkg-git/cbf83264a16183d6b4d574e746522969fb02d126/wine-tkg-git/wine-tkg-patches/proton/fsync_futex_waitv.patch
|
||||
wine-more_8x5_res.patch
|
||||
proton-sanitize_makefile.patch
|
||||
proton-disable_lock.patch
|
||||
proton-user_compat_data.patch
|
||||
)
|
||||
noextract=(
|
||||
wine-gecko-${_geckover}-{x86,x86_64}.tar.xz
|
||||
wine-mono-${_monover}-x86.tar.xz
|
||||
)
|
||||
sha256sums=('SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'8fab46ea2110b2b0beed414e3ebb4e038a3da04900e7a28492ca3c3ccf9fea94'
|
||||
'b4476706a4c3f23461da98bed34f355ff623c5d2bb2da1e2fa0c6a310bc33014'
|
||||
'59f146dde0f0540ca4648fc648e6b16335c71921deaf111b5fe8c3967881661d'
|
||||
'b121625686227bb9e51b44e1e2e762250d34b1d3f8d7750787470b1885f3a1c4'
|
||||
'9005d8169266ba0b93be30e1475fe9a3697464796f553886c155ec1d77d71215'
|
||||
'cedd69b258c3e446307d3e4b22fe63d7fb9ad3736711ec998933dcc393b43ce7'
|
||||
'27b75be282c5f235171569aebce80020b330d6117becdb3b1670d3124eb52489'
|
||||
'242566c092f83a71ba06c3aefe0400af65a6fa564dd63196af54403c2c4d09e2')
|
||||
|
||||
_make_wrappers () {
|
||||
# _arch prefix gcc ld as strip
|
||||
local _i686=( "i686" "-m32" "-melf_i386" "--32" "elf32-i386")
|
||||
local _x86_64=("x86_64" "-m64" "-melf_x86_64" "--64" "elf64-x86-64")
|
||||
local _opts=(_i686 _x86_64)
|
||||
declare -n _opt
|
||||
for _opt in "${_opts[@]}"; do
|
||||
for l in ar ranlib nm; do
|
||||
ln -s /usr/bin/$l wrappers/${_opt[0]}-pc-linux-gnu-$l
|
||||
done
|
||||
for t in gcc g++; do
|
||||
install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-$t <<EOF
|
||||
#!/usr/bin/bash
|
||||
$(which ccache 2> /dev/null) /usr/bin/$t ${_opt[1]} "\$@"
|
||||
EOF
|
||||
done
|
||||
install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-ld <<EOF
|
||||
#!/usr/bin/bash
|
||||
/usr/bin/ld ${_opt[2]} "\$@"
|
||||
EOF
|
||||
install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-as <<EOF
|
||||
#!/usr/bin/bash
|
||||
/usr/bin/as ${_opt[3]} "\$@"
|
||||
EOF
|
||||
install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-strip <<EOF
|
||||
#!/usr/bin/bash
|
||||
/usr/bin/strip -F ${_opt[4]} "\$@"
|
||||
EOF
|
||||
done
|
||||
}
|
||||
|
||||
prepare() {
|
||||
# I know this is fugly and it should NOT be done
|
||||
# but the afdko package from AUR breaks regularly.
|
||||
# Install it from pip in a virtualenv
|
||||
[ -d build_venv ] && rm -rf build_venv
|
||||
virtualenv --app-data "$srcdir"/build_venv/cache --no-wheel build_venv
|
||||
source build_venv/bin/activate
|
||||
pip install --no-cache-dir meson==0.59.3
|
||||
pip install --no-cache-dir afdko
|
||||
pip install --no-cache-dir pefile
|
||||
|
||||
# Provide wrappers to compiler tools
|
||||
rm -rf wrappers && mkdir wrappers
|
||||
_make_wrappers
|
||||
|
||||
[ ! -d gecko ] && mkdir gecko
|
||||
mv wine-gecko-${_geckover}-x86{,_64}.tar.xz gecko/
|
||||
|
||||
[ ! -d mono ] && mkdir mono
|
||||
mv wine-mono-${_monover}-x86.tar.xz mono/
|
||||
|
||||
[ ! -d build ] && mkdir build
|
||||
cd proton-ge-custom
|
||||
|
||||
_submodules=(
|
||||
wine
|
||||
dxvk
|
||||
openvr
|
||||
liberation-fonts::fonts/liberation-fonts
|
||||
FAudio
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-orc
|
||||
vkd3d-proton
|
||||
OpenXR-SDK
|
||||
dxvk-nvapi
|
||||
vkd3d-valve::vkd3d
|
||||
Vulkan-Headers
|
||||
SPIRV-Headers
|
||||
Vulkan-Loader
|
||||
gst-libav
|
||||
wine-staging
|
||||
ffmpeg-meson::ffmpeg
|
||||
lsteamclient-gloriouseggroll::lsteamclient
|
||||
vrclient_x64-gloriouseggroll::vrclient_x64
|
||||
protonfixes-gloriouseggroll::protonfixes
|
||||
gst-plugins-bad
|
||||
gst-plugins-ugly
|
||||
)
|
||||
|
||||
for submodule in "${_submodules[@]}"; do
|
||||
git submodule init "${submodule#*::}"
|
||||
git config submodule."${submodule#*::}".url "$srcdir"/"${submodule%::*}"
|
||||
git submodule update "${submodule#*::}"
|
||||
done
|
||||
|
||||
pushd vkd3d-proton
|
||||
for submodule in subprojects/{dxil-spirv,Vulkan-Headers,SPIRV-Headers}; do
|
||||
git submodule init "${submodule}"
|
||||
git config submodule."${submodule}".url "$srcdir"/"${submodule#*/}"
|
||||
git submodule update "${submodule}"
|
||||
done
|
||||
pushd subprojects/dxil-spirv
|
||||
git submodule init third_party/spirv-headers
|
||||
git config submodule.third_party/spirv-headers.url "$srcdir"/SPIRV-Headers
|
||||
git submodule update third_party/spirv-headers
|
||||
popd
|
||||
popd
|
||||
|
||||
pushd dxvk-nvapi
|
||||
git submodule init external/Vulkan-Headers
|
||||
git config submodule.external/Vulkan-Headers.url "$srcdir"/Vulkan-Headers
|
||||
git submodule update external/Vulkan-Headers
|
||||
popd
|
||||
|
||||
cp "$srcdir"/fsync_futex_waitv.patch patches/proton/57-fsync_futex_waitv.patch
|
||||
./patches/protonprep.sh
|
||||
|
||||
pushd wine
|
||||
# From Arch Wine
|
||||
sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i configure*
|
||||
# Fix openldap 2.5+ detection
|
||||
sed 's/-lldap_r/-lldap/' -i configure
|
||||
# Adds more 16:10 resolutions for use with FSR
|
||||
patch -p1 -i "$srcdir"/wine-more_8x5_res.patch
|
||||
popd
|
||||
|
||||
patch -p1 -i "$srcdir"/proton-sanitize_makefile.patch
|
||||
patch -p1 -i "$srcdir"/proton-disable_lock.patch
|
||||
patch -p1 -i "$srcdir"/proton-user_compat_data.patch
|
||||
|
||||
# Remove repos from srcdir to save space
|
||||
for submodule in "${_submodules[@]}"; do
|
||||
rm -rf "$srcdir"/"${submodule%::*}"
|
||||
done
|
||||
rm -rf "$srcdir"/dxil-spirv
|
||||
rm -rf "$srcdir"/Vulkan-Headers
|
||||
rm -rf "$srcdir"/SPIRV-Headers
|
||||
}
|
||||
|
||||
build() {
|
||||
source build_venv/bin/activate
|
||||
export PATH="$(pwd)/wrappers:$PATH"
|
||||
|
||||
cd build
|
||||
ROOTLESS_CONTAINER="" \
|
||||
../proton-ge-custom/configure.sh \
|
||||
--container-engine="" \
|
||||
--proton-sdk-image="" \
|
||||
--steam-runtime=native \
|
||||
--no-proton-sdk \
|
||||
--build-name="${pkgname}"
|
||||
|
||||
# Filter known bad flags before applying optimizations
|
||||
# Filter fstack-protector{ ,-all,-strong} flag for MingW.
|
||||
# https://github.com/Joshua-Ashton/d9vk/issues/476
|
||||
export CFLAGS="${CFLAGS// -fstack-protector*([\-all|\-strong])/}"
|
||||
export CXXFLAGS="${CXXFLAGS// -fstack-protector*([\-all|\-strong])/}"
|
||||
# From wine-staging PKGBUILD
|
||||
# Doesn't compile with these flags in MingW so remove them.
|
||||
# They are also filtered in Wine PKGBUILDs so remove them
|
||||
# for winelib versions too.
|
||||
# Doesn't compile without remove these flags as of 4.10
|
||||
export CFLAGS="${CFLAGS/ -fno-plt/}"
|
||||
export CXXFLAGS="${CXXFLAGS/ -fno-plt/}"
|
||||
export LDFLAGS="${LDFLAGS/,-z,now/}"
|
||||
# MingW Wine builds fail with relro
|
||||
export LDFLAGS="${LDFLAGS/,-z,relro/}"
|
||||
|
||||
# By default export FLAGS used by proton and ignore makepkg
|
||||
# This overrides FLAGS from makepkg.conf, if you comment these you are on your own
|
||||
# If you want the "best" possible optimizations for your system you can use
|
||||
# `-march=native` and remove the `-mtune=core-avx2` option.
|
||||
# `-O2` is adjusted to `-O3` since AVX is disabled
|
||||
export CFLAGS="-O3 -march=native -pipe" # -mtune=haswell -pipe"
|
||||
export CXXFLAGS="-O3 -march=native -pipe" # -mtune=haswell -pipe"
|
||||
export RUSTFLAGS="-C opt-level=3 -C target-cpu=native"
|
||||
export LDFLAGS="-Wl,-O1,--sort-common,--as-needed"
|
||||
|
||||
# If using -march=native and the CPU supports AVX, launching a d3d9
|
||||
# game can cause an Unhandled exception. The cause seems to be the
|
||||
# combination of AVX instructions and tree vectorization (implied by O3),
|
||||
# all tested archictures from sandybridge to haswell are affected.
|
||||
# Since Wine 5.16 AVX is supported. Testing showed 32bit applications
|
||||
# crashing with AVX regardless, but 64bit applications worked just fine.
|
||||
# Relevant Wine issues
|
||||
# https://bugs.winehq.org/show_bug.cgi?id=45289
|
||||
# https://bugs.winehq.org/show_bug.cgi?id=43516
|
||||
# AVX is "hard" disabled for 32bit in any case.
|
||||
# AVX2 for 64bit is disabled below.
|
||||
export CFLAGS+=" -mno-avx2"
|
||||
export CXXFLAGS+=" -mno-avx2"
|
||||
|
||||
export WINEESYNC=0
|
||||
export WINEFSYNC=0
|
||||
export DISPLAY=
|
||||
SUBJOBS=$([[ "$MAKEFLAGS" =~ -j\ *([1-9][0-9]*) ]] && echo "${BASH_REMATCH[1]}" || echo "$(nproc)") \
|
||||
make -j1 dist
|
||||
}
|
||||
|
||||
package() {
|
||||
cd build
|
||||
|
||||
local _compatdir="$pkgdir/usr/share/steam/compatibilitytools.d"
|
||||
mkdir -p "$_compatdir"
|
||||
cp -rf --no-dereference --preserve=mode,links dist "$_compatdir/${pkgname}"
|
||||
|
||||
mkdir -p "$pkgdir/usr/share/licenses/${pkgname}"
|
||||
mv "$_compatdir/${pkgname}"/LICENSE{,.OFL} \
|
||||
"$pkgdir/usr/share/licenses/${pkgname}"
|
||||
|
||||
cd "$_compatdir/${pkgname}/files"
|
||||
i686-w64-mingw32-strip --strip-unneeded \
|
||||
$(find lib/wine \( -iname fakedlls -or -iname i386-windows \) -prune -false -or -iname "*.dll" -or -iname "*.exe")
|
||||
x86_64-w64-mingw32-strip --strip-unneeded \
|
||||
$(find lib64/wine \( -iname fakedlls -or -iname x86_64-windows \) -prune -false -or -iname "*.dll" -or -iname "*.exe")
|
||||
|
||||
local _geckodir="share/wine/gecko/wine-gecko-${_geckover}"
|
||||
i686-w64-mingw32-strip --strip-unneeded \
|
||||
$(find "$_geckodir"-x86 -iname "*.dll" -or -iname "*.exe")
|
||||
x86_64-w64-mingw32-strip --strip-unneeded \
|
||||
$(find "$_geckodir"-x86_64 -iname "*.dll" -or -iname "*.exe")
|
||||
|
||||
local _monodir="share/wine/mono/wine-mono-${_monover}"
|
||||
i686-w64-mingw32-strip --strip-unneeded \
|
||||
$(find "$_monodir"/lib/mono -iname "*.dll" -or -iname "*.exe")
|
||||
i686-w64-mingw32-strip --strip-unneeded \
|
||||
"$_monodir"/lib/x86/*.dll \
|
||||
$(find "$_monodir" -iname "*x86.dll" -or -iname "*x86.exe")
|
||||
x86_64-w64-mingw32-strip --strip-unneeded \
|
||||
"$_monodir"/lib/x86_64/*.dll \
|
||||
$(find "$_monodir" -iname "*x86_64.dll" -or -iname "*x86_64.exe")
|
||||
}
|
31
proton-ge-custom/proton-disable_lock.patch
Normal file
31
proton-ge-custom/proton-disable_lock.patch
Normal file
|
@ -0,0 +1,31 @@
|
|||
diff --git a/proton b/proton
|
||||
index 910a2e1..9cc88f0 100755
|
||||
--- a/proton
|
||||
+++ b/proton
|
||||
@@ -292,7 +292,6 @@ class Proton:
|
||||
self.wine_bin = self.bin_dir + "wine"
|
||||
self.wine64_bin = self.bin_dir + "wine64"
|
||||
self.wineserver_bin = self.bin_dir + "wineserver"
|
||||
- self.dist_lock = FileLock(self.path("dist.lock"), timeout=-1)
|
||||
|
||||
def path(self, d):
|
||||
return self.base_dir + d
|
||||
@@ -1463,8 +1462,6 @@ if __name__ == "__main__":
|
||||
|
||||
g_proton = Proton(os.path.dirname(sys.argv[0]))
|
||||
|
||||
- g_proton.cleanup_legacy_dist()
|
||||
- g_proton.do_steampipe_fixups()
|
||||
|
||||
g_compatdata = CompatData(os.environ["STEAM_COMPAT_DATA_PATH"])
|
||||
|
||||
@@ -1477,7 +1474,8 @@ if __name__ == "__main__":
|
||||
g_session.init_wine()
|
||||
|
||||
if g_proton.missing_default_prefix():
|
||||
- g_proton.make_default_prefix()
|
||||
+ log("Default prefix is missing, something is very wrong.")
|
||||
+ sys.exit(1)
|
||||
|
||||
import protonfixes
|
||||
|
318
proton-ge-custom/proton-sanitize_makefile.patch
Normal file
318
proton-ge-custom/proton-sanitize_makefile.patch
Normal file
|
@ -0,0 +1,318 @@
|
|||
diff --git a/build/makefile_base.mak b/build/makefile_base.mak
|
||||
index dc52210f..dcfca71c 100755
|
||||
--- a/build/makefile_base.mak
|
||||
+++ b/build/makefile_base.mak
|
||||
@@ -62,7 +62,6 @@ ifeq ($(ENABLE_CCACHE),1)
|
||||
export CCACHE_DIR := $(if $(CCACHE_DIR),$(CCACHE_DIR),$(HOME)/.ccache)
|
||||
DOCKER_OPTS := -v $(CCACHE_DIR):$(CCACHE_DIR)$(CONTAINER_MOUNT_OPTS) $(CCACHE_ENV) -e CCACHE_DIR=$(CCACHE_DIR) $(DOCKER_OPTS)
|
||||
else
|
||||
- export CCACHE_DISABLE := 1
|
||||
DOCKER_OPTS := $(CCACHE_ENV) -e CCACHE_DISABLE=1 $(DOCKER_OPTS)
|
||||
endif
|
||||
|
||||
@@ -120,7 +119,7 @@ container-build:
|
||||
all32 $(MAKECMDGOALS32): container-build
|
||||
all64 $(MAKECMDGOALS64): container-build
|
||||
else
|
||||
-J = $(patsubst -j%,%,$(filter -j%,$(MAKEFLAGS)))
|
||||
+J = $(patsubst -j%,%,$(SUBJOBS))
|
||||
endif
|
||||
|
||||
|
||||
@@ -170,11 +169,12 @@ else
|
||||
endif
|
||||
|
||||
CROSSLDFLAGS += -Wl,--file-alignment,4096
|
||||
-OPTIMIZE_FLAGS := -O2 -march=nocona -mtune=core-avx2 -mfpmath=sse
|
||||
+CFLAGS ?= -O2 -march=nocona -mtune=core-avx2
|
||||
+OPTIMIZE_FLAGS := $(CFLAGS) -mfpmath=sse
|
||||
SANITY_FLAGS := -fwrapv -fno-strict-aliasing
|
||||
DEBUG_FLAGS := -gdwarf-2 -gstrict-dwarf
|
||||
COMMON_FLAGS = $(DEBUG_FLAGS) $(OPTIMIZE_FLAGS) $(SANITY_FLAGS) -ffile-prefix-map=$(CCACHE_BASEDIR)=.
|
||||
-COMMON_FLAGS32 := -mstackrealign
|
||||
+COMMON_FLAGS32 := -mstackrealign -mno-avx
|
||||
CARGO_BUILD_ARG := --release
|
||||
|
||||
##
|
||||
@@ -359,8 +359,8 @@ ALL_TARGETS += dist
|
||||
GOAL_TARGETS += dist
|
||||
|
||||
dist_prefix: wine gst_good
|
||||
- find $(DST_LIBDIR32)/wine -type f -execdir chmod a-w '{}' '+'
|
||||
- find $(DST_LIBDIR64)/wine -type f -execdir chmod a-w '{}' '+'
|
||||
+ find $(DST_LIBDIR32)/wine -type f -execdir chmod go-w '{}' '+'
|
||||
+ find $(DST_LIBDIR64)/wine -type f -execdir chmod go-w '{}' '+'
|
||||
rm -rf $(abspath $(DIST_PREFIX))
|
||||
python3 $(SRCDIR)/default_pfx.py $(abspath $(DIST_PREFIX)) $(abspath $(DST_DIR)) $(STEAM_RUNTIME_RUNSH)
|
||||
|
||||
@@ -413,6 +413,9 @@ endif # ifeq ($(CONTAINER),)
|
||||
##
|
||||
|
||||
GST_COMMON_MESON_ARGS := \
|
||||
+ -Db_lto=true \
|
||||
+ -Db_pie=true \
|
||||
+ -Ddoc=disabled \
|
||||
-Dexamples=disabled \
|
||||
-Dtests=disabled \
|
||||
-Dgtk_doc=disabled \
|
||||
@@ -425,6 +428,7 @@ GST_COMMON_MESON_ARGS := \
|
||||
|
||||
GST_ORC_MESON_ARGS := \
|
||||
-Dorc-test=disabled \
|
||||
+ -Dpackage-name="GStreamer Orc (Proton)" \
|
||||
$(GST_COMMON_MESON_ARGS)
|
||||
|
||||
$(eval $(call rules-source,gst_orc,$(SRCDIR)/gst-orc))
|
||||
@@ -441,6 +445,9 @@ GSTREAMER_MESON_ARGS := \
|
||||
-Dbenchmarks=disabled \
|
||||
-Dtools=disabled \
|
||||
-Dbash-completion=disabled \
|
||||
+ -Dptp-helper-permissions=capabilities \
|
||||
+ -Ddbghelp=disabled \
|
||||
+ -Dpackage-name="GStreamer (Proton)" \
|
||||
$(GST_COMMON_MESON_ARGS)
|
||||
|
||||
GSTREAMER_DEPENDS = gst_orc
|
||||
@@ -477,6 +484,8 @@ GST_BASE_MESON_ARGS := \
|
||||
-Dx11=disabled \
|
||||
-Dxshm=disabled \
|
||||
-Dxvideo=disabled \
|
||||
+ -Dtools=disabled \
|
||||
+ -Dpackage-name="GStreamer Base Plugins (Proton)" \
|
||||
$(GST_COMMON_MESON_ARGS)
|
||||
|
||||
GST_BASE_DEPENDS = gst_orc gstreamer
|
||||
@@ -540,7 +549,8 @@ GST_GOOD_MESON_ARGS := \
|
||||
-Dwavenc=disabled \
|
||||
-Dximagesrc=disabled \
|
||||
-Dy4m=enabled \
|
||||
- -Ddoc='disabled' \
|
||||
+ -Dtools=disabled \
|
||||
+ -Dpackage-name="GStreamer Good Plugins (Proton)" \
|
||||
$(GST_COMMON_MESON_ARGS)
|
||||
|
||||
GST_GOOD_DEPENDS = gst_orc gstreamer gst_base
|
||||
@@ -575,6 +585,9 @@ GST_BAD_MESON_ARGS := \
|
||||
-Dopencv=disabled \
|
||||
-Dvoamrwbenc=disabled \
|
||||
-Dx265=disabled \
|
||||
+ -Dopenexr=disabled \
|
||||
+ -Dtools=disabled \
|
||||
+ -Dpackage-name="GStreamer Bad Plugins (Proton)" \
|
||||
$(GST_COMMON_MESON_ARGS)
|
||||
|
||||
GST_BAD_DEPENDS = gst_orc gstreamer gst_base
|
||||
@@ -590,6 +603,8 @@ $(eval $(call rules-meson,gst_bad,64))
|
||||
|
||||
GST_UGLY_MESON_ARGS := \
|
||||
-Ddoc='disabled' \
|
||||
+ -Dtools='disabled' \
|
||||
+ -Dpackage-name="GStreamer Ugly Plugins (Proton)" \
|
||||
$(GST_COMMON_MESON_ARGS)
|
||||
|
||||
GST_UGLY_DEPENDS = gst_orc gstreamer gst_base
|
||||
@@ -605,6 +620,9 @@ $(eval $(call rules-meson,gst_ugly,64))
|
||||
|
||||
GST_LIBAV_MESON_ARGS := \
|
||||
-Ddoc=disabled \
|
||||
+ -Dtools=disabled \
|
||||
+ --force-fallback-for=FFmpeg \
|
||||
+ -Dpackage-name="GStreamer FFmpeg Plugin (Proton)" \
|
||||
$(GST_COMMON_MESON_ARGS)
|
||||
|
||||
GST_LIBAV_DEPENDS = gst_orc gstreamer gst_base
|
||||
@@ -768,8 +786,14 @@ WINE_SOURCE_ARGS = \
|
||||
--exclude include/config.h.in \
|
||||
|
||||
WINE_CONFIGURE_ARGS = \
|
||||
+ --with-x \
|
||||
+ --with-gstreamer \
|
||||
+ --with-faudio \
|
||||
--with-mingw \
|
||||
--without-xpresent \
|
||||
+ --without-vkd3d \
|
||||
+ --without-oss \
|
||||
+ --disable-win16 \
|
||||
--disable-tests
|
||||
|
||||
WINE_CONFIGURE_ARGS64 = --enable-win64
|
||||
@@ -824,16 +848,6 @@ $(OBJ)/.vrclient-post-source:
|
||||
mkdir -p $(VRCLIENT_OBJ64) && cp -a $(VRCLIENT_SRC)/vrclient_x64/vrclient_x64.spec $(VRCLIENT_OBJ64)/vrclient_x64.spec
|
||||
touch $@
|
||||
|
||||
-##
|
||||
-## xkbcommon -- needed for wayland support in wome
|
||||
-##
|
||||
-
|
||||
-XKBCOMMON_MESON_ARGS := \
|
||||
- -Denable-docs='false'
|
||||
-
|
||||
-$(eval $(call rules-source,xkbcommon,$(SRCDIR)/xkbcommon))
|
||||
-$(eval $(call rules-meson,xkbcommon,32))
|
||||
-$(eval $(call rules-meson,xkbcommon,64))
|
||||
|
||||
|
||||
##
|
||||
@@ -843,6 +857,9 @@ $(eval $(call rules-meson,xkbcommon,64))
|
||||
DXVK_MESON_ARGS32 = --bindir=$(DXVK_DST32)/lib/wine/dxvk
|
||||
DXVK_MESON_ARGS64 = --bindir=$(DXVK_DST64)/lib64/wine/dxvk
|
||||
|
||||
+DXVK_CPPFLAGS= -msse -msse2
|
||||
+DXVK_LDFLAGS= -static -static-libgcc -static-libstdc++
|
||||
+
|
||||
$(eval $(call rules-source,dxvk,$(SRCDIR)/dxvk))
|
||||
$(eval $(call rules-meson,dxvk,32,CROSS))
|
||||
$(eval $(call rules-meson,dxvk,64,CROSS))
|
||||
@@ -865,6 +882,9 @@ $(OBJ)/.dxvk-post-build32:
|
||||
DXVK_NVAPI_MESON_ARGS32 = --bindir=$(DXVK_NVAPI_DST32)/lib/wine/nvapi
|
||||
DXVK_NVAPI_MESON_ARGS64 = --bindir=$(DXVK_NVAPI_DST64)/lib64/wine/nvapi
|
||||
|
||||
+DXVK_NVAPI_CPPFLAGS= -msse -msse2
|
||||
+DXVK_NVAPI_LDFLAGS= -static -static-libgcc -static-libstdc++
|
||||
+
|
||||
$(eval $(call rules-source,dxvk-nvapi,$(SRCDIR)/dxvk-nvapi))
|
||||
$(eval $(call rules-meson,dxvk-nvapi,32,CROSS))
|
||||
$(eval $(call rules-meson,dxvk-nvapi,64,CROSS))
|
||||
@@ -928,10 +948,13 @@ VKD3D_PROTON_SOURCE_ARGS = \
|
||||
--exclude vkd3d_build.h.in \
|
||||
--exclude vkd3d_version.h.in \
|
||||
|
||||
-VKD3D_PROTON_MESON_ARGS = -Denable_standalone_d3d12=true
|
||||
+VKD3D_PROTON_MESON_ARGS = -Denable_d3d12=true
|
||||
VKD3D_PROTON_MESON_ARGS32 = --bindir=$(VKD3D_PROTON_DST32)/lib/wine/vkd3d-proton
|
||||
VKD3D_PROTON_MESON_ARGS64 = --bindir=$(VKD3D_PROTON_DST64)/lib64/wine/vkd3d-proton
|
||||
|
||||
+VKD3D_PROTON_CPPFLAGS= -msse -msse2
|
||||
+VKD3D_PROTON_LDFLAGS= -static -static-libgcc -static-libstdc++
|
||||
+
|
||||
$(eval $(call rules-source,vkd3d-proton,$(SRCDIR)/vkd3d-proton))
|
||||
$(eval $(call rules-meson,vkd3d-proton,32,CROSS))
|
||||
$(eval $(call rules-meson,vkd3d-proton,64,CROSS))
|
||||
diff --git a/make/rules-autoconf.mk b/make/rules-autoconf.mk
|
||||
index 0827caa9..4e6d19f2 100644
|
||||
--- a/make/rules-autoconf.mk
|
||||
+++ b/make/rules-autoconf.mk
|
||||
@@ -31,9 +31,9 @@ $$(OBJ)/.$(1)-configure$(3): $$(OBJ)/.$(1)-pre-configure
|
||||
$$(OBJ)/.$(1)-build$(3):
|
||||
@echo ":: building $(3)bit $(1)..." >&2
|
||||
cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
|
||||
- $$(MAKE)
|
||||
+ $$(MAKE) -j$$(SUBJOBS)
|
||||
cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
|
||||
- $$(MAKE) install
|
||||
+ $$(MAKE) -j$$(SUBJOBS) install
|
||||
touch $$@
|
||||
endif
|
||||
endef
|
||||
diff --git a/make/rules-cargo.mk b/make/rules-cargo.mk
|
||||
index 2dbfe75f..6afbc42c 100644
|
||||
--- a/make/rules-cargo.mk
|
||||
+++ b/make/rules-cargo.mk
|
||||
@@ -14,7 +14,9 @@ $$(OBJ)/.$(1)-configure$(3):
|
||||
$$(OBJ)/.$(1)-build$(3):
|
||||
@echo ":: building $(3)bit $(1)..." >&2
|
||||
cd $$($(2)_SRC) && env $$($(2)_ENV$(3)) \
|
||||
- cargo build $$(filter -j%,$$(MAKEFLAGS)) --target "$$(CARGO_TARGET_$(3))" --target-dir $$($(2)_OBJ$(3)) $$(CARGO_BUILD_ARG)
|
||||
+ cargo update --offline --verbose
|
||||
+ cd $$($(2)_SRC) && env $$($(2)_ENV$(3)) \
|
||||
+ cargo build -j$$(SUBJOBS) --locked --offline --verbose --target "$$(CARGO_TARGET_$(3))" --target-dir $$($(2)_OBJ$(3)) $$(CARGO_BUILD_ARG)
|
||||
touch $$@
|
||||
endif
|
||||
endef
|
||||
diff --git a/make/rules-cmake.mk b/make/rules-cmake.mk
|
||||
index 0e18df97..2150cba8 100644
|
||||
--- a/make/rules-cmake.mk
|
||||
+++ b/make/rules-cmake.mk
|
||||
@@ -28,9 +28,9 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/CMakeLists.txt
|
||||
$$(OBJ)/.$(1)-build$(3):
|
||||
@echo ":: building $(3)bit $(1)..." >&2
|
||||
cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
|
||||
- $$(MAKE)
|
||||
+ $$(MAKE) -j$$(SUBJOBS)
|
||||
cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \
|
||||
- $$(MAKE) install
|
||||
+ $$(MAKE) -j$$(SUBJOBS) install
|
||||
touch $$@
|
||||
endif
|
||||
endef
|
||||
diff --git a/make/rules-common.mk b/make/rules-common.mk
|
||||
index bc407604..c3a7dbeb 100644
|
||||
--- a/make/rules-common.mk
|
||||
+++ b/make/rules-common.mk
|
||||
@@ -125,8 +125,12 @@ $(2)_LIBFLAGS$(3) = $$(foreach d,$$($(2)_DEPS$(3)),-L$$($$(d)_LIBDIR$(3))) \
|
||||
# native version doesn't exist.
|
||||
|
||||
$(2)_ENV$(3) = \
|
||||
+ WINEDEBUG="-all" \
|
||||
+ WINEPREFIX="$$(OBJ)/pfx-wine$(3)" \
|
||||
+ WINEDLLOVERRIDES="winemenubuilder=d;mscoree=d;mshtml=d" \
|
||||
CARGO_HOME=$$(OBJ)/.cargo \
|
||||
CARGO_TARGET_$$(call toupper,$$(CARGO_TARGET_$(3)))_LINKER="$$(TARGET_$(4)$(3))-gcc" \
|
||||
+ CARGO_TARGET_$$(call toupper,$$(CARGO_TARGET_$(3)))_RUSTFLAGS="$$(RUSTFLAGS)" \
|
||||
CCACHE_BASEDIR="$$(CCACHE_BASEDIR)" \
|
||||
STRIP="$$(STRIP)" \
|
||||
AR="$$(TARGET_$(4)$(3))-ar" \
|
||||
@@ -140,7 +144,7 @@ $(2)_ENV$(3) = \
|
||||
PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_BINDIR$(3))),,:):$$(SRC)/glslang/bin:$$$$PATH" \
|
||||
LD_LIBRARY_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))),,:)$$$$LD_LIBRARY_PATH" \
|
||||
PKG_CONFIG_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))/pkgconfig))" \
|
||||
- PKG_CONFIG_LIBDIR="/usr/lib/$$(PKG_CONFIG_TARGET_$(4)$(3))/pkgconfig:/usr/share/pkgconfig" \
|
||||
+ PKG_CONFIG_LIBDIR="/usr/lib$(3)/pkgconfig:/usr/share/pkgconfig" \
|
||||
CFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
|
||||
CPPFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
|
||||
CXXFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17" \
|
||||
@@ -164,7 +168,7 @@ $(2)_ENV$(3) += \
|
||||
CROSSCPPFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \
|
||||
CROSSCXXFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17" \
|
||||
CROSSLDFLAGS="$$($(2)_LIBFLAGS$(3)) $$($(2)_LDFLAGS$(3)) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \
|
||||
- CROSSPKG_CONFIG_LIBDIR="/usr/lib/$$(PKG_CONFIG_TARGET_CROSS$(3))/pkgconfig:/usr/share/pkgconfig" \
|
||||
+ CROSSPKG_CONFIG_LIBDIR="/usr/lib$(3)/pkgconfig:/usr/share/pkgconfig" \
|
||||
|
||||
endif
|
||||
|
||||
@@ -177,14 +181,14 @@ else
|
||||
install-strip = objcopy --file-alignment=4096 --strip-debug $(1) $(2)/$(notdir $(1)) && rm -f $(2)/$(notdir $(1)).debug
|
||||
endif
|
||||
|
||||
-TARGET_32 := i686-linux-gnu
|
||||
-TARGET_64 := x86_64-linux-gnu
|
||||
+TARGET_32 := i686-pc-linux-gnu
|
||||
+TARGET_64 := x86_64-pc-linux-gnu
|
||||
TARGET_CROSS32 := i686-w64-mingw32
|
||||
TARGET_CROSS64 := x86_64-w64-mingw32
|
||||
|
||||
-PKG_CONFIG_TARGET_32 := i386-linux-gnu
|
||||
-PKG_CONFIG_TARGET_64 := x86_64-linux-gnu
|
||||
-PKG_CONFIG_TARGET_CROSS32 := i386-w64-mingw32
|
||||
+PKG_CONFIG_TARGET_32 := i686-pc-linux-gnu
|
||||
+PKG_CONFIG_TARGET_64 := x86_64-pc-linux-gnu
|
||||
+PKG_CONFIG_TARGET_CROSS32 := i686-w64-mingw32
|
||||
PKG_CONFIG_TARGET_CROSS64 := x86_64-w64-mingw32
|
||||
|
||||
$(OBJ)/.%-post-build32:
|
||||
diff --git a/make/rules-meson.mk b/make/rules-meson.mk
|
||||
index d603bfde..f798edfc 100644
|
||||
--- a/make/rules-meson.mk
|
||||
+++ b/make/rules-meson.mk
|
||||
@@ -60,7 +60,7 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/meson.build
|
||||
$$(OBJ)/.$(1)-build$(3):
|
||||
@echo ":: building $(3)bit $(1)..." >&2
|
||||
env $$($(2)_ENV$(3)) \
|
||||
- ninja $$(filter -j%,$$(MAKEFLAGS)) -C "$$($(2)_OBJ$(3))" install $(-v?)
|
||||
+ ninja -j$$(SUBJOBS) -C "$$($(2)_OBJ$(3))" install $(-v?)
|
||||
touch $$@
|
||||
endif
|
||||
endef
|
||||
diff --git a/make/rules-winemaker.mk b/make/rules-winemaker.mk
|
||||
index 25c4dd33..fb6ebc4d 100644
|
||||
--- a/make/rules-winemaker.mk
|
||||
+++ b/make/rules-winemaker.mk
|
||||
@@ -29,7 +29,7 @@ $$(OBJ)/.$(1)-build$(3):
|
||||
@echo ":: building $(3)bit $(1)..." >&2
|
||||
rsync -arx "$$($(2)_SRC)/" "$$($(2)_OBJ$(3))/"
|
||||
env $$($(2)_ENV$(3)) \
|
||||
- $$(MAKE) -C "$$($(2)_OBJ$(3))" LIBRARIES="$$($(2)_LDFLAGS)"
|
||||
+ $$(MAKE) -j$$(SUBJOBS) -C "$$($(2)_OBJ$(3))" LIBRARIES="$$($(2)_LDFLAGS)"
|
||||
cd "$$($(2)_OBJ$(3))" && touch "$(basename $(4)).spec" && env $$($(2)_ENV$(3)) \
|
||||
winebuild --dll --fake-module -E "$(basename $(4)).spec" -o "$(4).fake"
|
||||
ifeq ($(3),32)
|
20
proton-ge-custom/proton-user_compat_data.patch
Normal file
20
proton-ge-custom/proton-user_compat_data.patch
Normal file
|
@ -0,0 +1,20 @@
|
|||
diff --git a/proton b/proton
|
||||
index aed378c..c04fa15 100755
|
||||
--- a/proton
|
||||
+++ b/proton
|
||||
@@ -1461,6 +1461,15 @@ if __name__ == "__main__":
|
||||
log("No compat data path?")
|
||||
sys.exit(1)
|
||||
|
||||
+ if "PROTON_USER_COMPAT_DATA" in os.environ:
|
||||
+ if nonzero(os.environ["PROTON_USER_COMPAT_DATA"]):
|
||||
+ compatpath = os.environ["STEAM_COMPAT_DATA_PATH"].split('/')
|
||||
+ os.environ["STEAM_COMPAT_DATA_PATH"] = "{}/{}/{}/{}".format(
|
||||
+ os.environ["STEAM_COMPAT_CLIENT_INSTALL_PATH"],
|
||||
+ compatpath[-3], compatpath[-2], compatpath[-1])
|
||||
+ if not os.path.exists(os.environ["STEAM_COMPAT_DATA_PATH"]):
|
||||
+ os.makedirs(os.environ["STEAM_COMPAT_DATA_PATH"])
|
||||
+
|
||||
g_proton = Proton(os.path.dirname(sys.argv[0]))
|
||||
|
||||
g_proton.cleanup_legacy_dist()
|
15
proton-ge-custom/wine-more_8x5_res.patch
Normal file
15
proton-ge-custom/wine-more_8x5_res.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
diff --git a/dlls/winex11.drv/fs.c b/dlls/winex11.drv/fs.c
|
||||
index c37899605e7..6470d2ffbb9 100644
|
||||
--- a/dlls/winex11.drv/fs.c
|
||||
+++ b/dlls/winex11.drv/fs.c
|
||||
@@ -78,6 +78,10 @@ static struct fs_monitor_size fs_monitor_sizes[] =
|
||||
{2880, 1620}, /* 16:9 */
|
||||
{2954, 1662}, /* 16:9 - 'FSR 2160p Ultra Quality' */
|
||||
{3200, 1800}, /* 16:9 */
|
||||
+ {640, 400}, /* 8:5 */
|
||||
+ {840, 525}, /* 8:5 */
|
||||
+ {960, 600}, /* 8:5 */
|
||||
+ {1280, 800}, /* 8:5 */
|
||||
{1440, 900}, /* 8:5 */
|
||||
{1680, 1050}, /* 8:5 */
|
||||
{1920, 1200}, /* 8:5 */
|
Loading…
Reference in a new issue