# Maintainer: loathingkernel pkgname=proton-experimental _srctag=9.0-20240411 _commit= pkgver=${_srctag//-/.} _geckover=2.47.4 _monover=9.0.0 _xaliaver=0.4.1 pkgrel=2 epoch=1 pkgdesc="Compatibility tool for Steam Play based on Wine and additional components, experimental branch" url="https://github.com/ValveSoftware/Proton" arch=(x86_64 x86_64_v3) options=(!staticlibs !lto !debug emptydirs) license=('custom') depends=( attr lib32-attr fontconfig lib32-fontconfig libxcursor lib32-libxcursor libxrandr lib32-libxrandr libxi lib32-libxi gettext lib32-gettext freetype2 lib32-freetype2 gcc-libs lib32-gcc-libs libpcap lib32-libpcap lzo lib32-lzo libxkbcommon lib32-libxkbcommon libvpx lib32-libvpx sdl2 lib32-sdl2 libsoup lib32-libsoup libgudev lib32-libgudev # blas lib32-blas # lapack lib32-lapack desktop-file-utils python steam-native-runtime ) depends+=( wayland lib32-wayland ) makedepends=(autoconf bison perl flex mingw-w64-gcc git wget rsync unzip mingw-w64-tools lld nasm meson cmake fontforge afdko python-pefile glslang vulkan-headers clang giflib lib32-giflib gnutls lib32-gnutls libxinerama lib32-libxinerama libxcomposite lib32-libxcomposite libxxf86vm lib32-libxxf86vm 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 libpulse lib32-libpulse gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader sdl2 lib32-sdl2 rust lib32-rust-libs libgphoto2 opencl-headers ) optdepends=( giflib lib32-giflib gnutls lib32-gnutls v4l-utils lib32-v4l-utils libpulse lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama opencl-icd-loader lib32-opencl-icd-loader gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader libgphoto2 ) provides=('proton') install=${pkgname}.install source=( proton::git+https://github.com/ValveSoftware/Proton.git#tag=experimental-${_srctag} 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://github.com/madewokherd/xalia/releases/download/xalia-${_xaliaver}/xalia-${_xaliaver}-net48-mono.zip 0001-AUR-Pkgbuild-changes.patch 0002-AUR-Do-not-update-cargo-crates.patch 0003-AUR-Remove-kaldi-openfst-vosk-api-modules-because-of.patch 0004-AUR-Copy-DLL-dependencies-of-32bit-libvkd3d-dlls-int.patch 0005-AUR-Strip-binaries-early.patch 0006-AUR-Fix-hwnd-redefinition.patch ) noextract=( wine-gecko-${_geckover}-{x86,x86_64}.tar.xz wine-mono-${_monover}-x86.tar.xz xalia-${_xaliaver}-net48-mono.zip ) _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/gcc-$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 < /dev/null) /usr/bin/$t ${_opt[1]} "\$@" EOF done install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-ld <