# Maintainer: loathingkernel pkgname=proton _srctag=7.0-4 _commit= pkgver=${_srctag//-/.} _geckover=2.47.3 _monover=7.3.0 pkgrel=3 epoch=1 pkgdesc="Compatibility tool for Steam Play based on Wine and additional components" url="https://github.com/ValveSoftware/Proton" 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 libvpx lib32-libvpx 'sdl2>=2.0.16' 'lib32-sdl2>=2.0.16' desktop-file-utils python # Steam native runtime listed here because of atk conflict bash steam alsa-lib alsa-plugins at-spi2-core cairo curl dbus-glib fontconfig freetype2 freeglut gdk-pixbuf2 glew1.10 glib2 glu gtk2 lib32-alsa-lib lib32-alsa-plugins lib32-at-spi2-core lib32-cairo lib32-curl lib32-dbus-glib lib32-fontconfig lib32-freetype2 lib32-freeglut lib32-gdk-pixbuf2 lib32-glew1.10 lib32-glib2 lib32-glu lib32-gtk2 lib32-libcaca lib32-libcanberra lib32-libcups lib32-libcurl-compat lib32-libcurl-gnutls lib32-dbus lib32-libdrm lib32-libgcrypt15 lib32-libice lib32-libidn11 lib32-libjpeg6 lib32-libnm lib32-pipewire lib32-libpng12 lib32-libpulse lib32-librtmp0 lib32-libsm lib32-libtheora lib32-libtiff4 lib32-libudev0-shim lib32-libusb lib32-libva lib32-libvdpau lib32-libvorbis lib32-libvpx1.3 lib32-libwrap lib32-libxcomposite lib32-libxcursor lib32-libxft lib32-libxi lib32-libxinerama lib32-libxmu lib32-libxrandr lib32-libxrender lib32-libxtst lib32-libxxf86vm lib32-nspr lib32-openal lib32-openssl-1.0 lib32-pango lib32-sdl lib32-sdl2 lib32-sdl2_image lib32-sdl2_mixer lib32-sdl2_ttf lib32-sdl_image lib32-sdl_mixer lib32-sdl_ttf libcaca libcanberra libcups libcurl-compat libcurl-gnutls dbus libdrm libgcrypt15 libice libidn11 libjpeg6 libnm libpng12 libpulse librsvg librtmp0 libsm libtheora libtiff4 libudev0-shim libusb libva libvdpau libvorbis libvpx1.3 libwrap libxcomposite libxcursor libxft libxi libxinerama libxmu libxrandr libxrender libxtst libxxf86vm nspr openal openssl-1.0 pango sdl sdl2 sdl2_image sdl2_mixer sdl2_ttf sdl_image sdl_mixer sdl_ttf vulkan-icd-loader vulkan-driver lib32-vulkan-driver lib32-vulkan-icd-loader lib32-libappindicator-gtk2 lib32-libindicator-gtk2 lib32-libdbusmenu-glib lib32-libdbusmenu-gtk2 # End of steam native runtime ) makedepends=(autoconf bison perl fontforge flex mingw-w64-gcc git wget rsync mingw-w64-tools lld nasm meson cmake afdko python-pefile glslang vulkan-headers clang 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' rust lib32-rust-libs libgphoto2 gsm lib32-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 lib32-gsm dosbox steam-native-runtime ) makedepends=(${makedepends[@]} ${depends[@]}) provides=('proton-native') conflicts=('proton-native') install=${pkgname}.install source=( proton::git+https://github.com/ValveSoftware/Proton.git#tag=proton-${_srctag} wine-valve::git+https://github.com/ValveSoftware/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 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 ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git dav1d::git+https://code.videolan.org/videolan/dav1d.git gst-plugins-rs::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git dxil-spirv::git+https://github.com/HansKristian-Work/dxil-spirv.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 0001-wldap32-25946b48148784e8275c1685f6498ab88f553ca3.patch 0001-AUR-pkgbuild-changes.patch ) noextract=( wine-gecko-${_geckover}-{x86,x86_64}.tar.xz wine-mono-${_monover}-x86.tar.xz ) _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 <