@ -0,0 +1,49 @@ | |||
# Maintainer: Adrià Cereto i Massagué <ssorgatem at gmail.com> | |||
pkgname=dxvk-git | |||
pkgver=20180814.e5eb155 | |||
pkgrel=1 | |||
pkgdesc="A Vulkan-based compatibility layer for Direct3D 11 which allows running 3D applications on Linux using Wine." | |||
arch=('x86_64') | |||
url="https://github.com/doitsujin/dxvk" | |||
license=('zlib/libpng') | |||
depends=('vulkan-icd-loader') | |||
makedepends=('ninja' 'meson>=0.43' 'glslang' 'mingw-w64-gcc' 'git') | |||
provides=("dxvk") | |||
conflicts=("dxvk-bin") | |||
options=(!strip !buildflags staticlibs) | |||
source=($pkgname::"git+https://github.com/doitsujin/dxvk.git" | |||
patch_nowine.patch) | |||
#patch_revert-attribute_divisor.patch) | |||
md5sums=('SKIP' | |||
'e44502b2fc7e2db2db0090f779531189') | |||
pkgver() { | |||
cd "$pkgname" | |||
git log -1 --format=%cd.%h --date=short|tr -d - | |||
} | |||
prepare() { | |||
cd "$pkgname" | |||
patch -p1 < ../patch_nowine.patch | |||
#patch -p1 -R < ../patch_revert-attribute_divisor.patch | |||
} | |||
build() { | |||
"$pkgname"/package-release.sh $pkgver $PWD --no-package | |||
} | |||
package() { | |||
mkdir -p "$pkgdir/usr/share/dxvk" | |||
cp -rv dxvk-$pkgver/* "$pkgdir/usr/share/dxvk" | |||
if [ ! -f "$pkgdir"/usr/share/dxvk/x64/d3d11.dll ] ||\ | |||
[ ! -f "$pkgdir"/usr/share/dxvk/x64/dxgi.dll ] ||\ | |||
[ ! -f "$pkgdir"/usr/share/dxvk/x32/d3d11.dll ] ||\ | |||
[ ! -f "$pkgdir"/usr/share/dxvk/x32/dxgi.dll ]; then | |||
echo "Missing files, build was unsuccessful" | |||
return 1 | |||
fi | |||
mkdir -p "$pkgdir/usr/bin" | |||
ln -s "/usr/share/dxvk/x32/setup_dxvk.sh" "$pkgdir/usr/bin/setup_dxvk32" | |||
ln -s "/usr/share/dxvk/x64/setup_dxvk.sh" "$pkgdir/usr/bin/setup_dxvk64" | |||
} |
@ -0,0 +1,42 @@ | |||
--- a/build-win32.txt | |||
+++ b/build-win32.txt | |||
@@ -3,7 +3,6 @@ | |||
cpp = 'i686-w64-mingw32-g++' | |||
ar = 'i686-w64-mingw32-ar' | |||
strip = 'i686-w64-mingw32-strip' | |||
-exe_wrapper = 'wine' | |||
[properties] | |||
c_link_args = ['-static', '-static-libgcc'] | |||
--- a/build-win64.txt | |||
+++ b/build-win64.txt | |||
@@ -3,7 +3,6 @@ | |||
cpp = 'x86_64-w64-mingw32-g++' | |||
ar = 'x86_64-w64-mingw32-ar' | |||
strip = 'x86_64-w64-mingw32-strip' | |||
-exe_wrapper = 'wine' | |||
[properties] | |||
c_link_args = ['-static', '-static-libgcc'] | |||
--- a/package-release.sh | |||
+++ b/package-release.sh | |||
@@ -11,9 +11,6 @@ | |||
DXVK_ARCHIVE_PATH=$(realpath "$2")"/dxvk-$DXVK_VERSION.tar.gz" | |||
function build_arch { | |||
- export WINEARCH="win$1" | |||
- export WINEPREFIX="$DXVK_BUILD_DIR/wine.$1" | |||
- | |||
cd "$DXVK_SRC_DIR" | |||
meson --cross-file "$DXVK_SRC_DIR/build-win$1.txt" \ | |||
@@ -31,8 +28,7 @@ | |||
cp "$DXVK_BUILD_DIR/install.$1/bin/d3d11.dll" "$DXVK_BUILD_DIR/x$1/d3d11.dll" | |||
cp "$DXVK_BUILD_DIR/install.$1/bin/dxgi.dll" "$DXVK_BUILD_DIR/x$1/dxgi.dll" | |||
cp "$DXVK_BUILD_DIR/install.$1/bin/setup_dxvk.sh" "$DXVK_BUILD_DIR/x$1/setup_dxvk.sh" | |||
- | |||
- rm -R "$DXVK_BUILD_DIR/wine.$1" | |||
+ | |||
rm -R "$DXVK_BUILD_DIR/build.$1" | |||
rm -R "$DXVK_BUILD_DIR/install.$1" | |||
} |
@ -0,0 +1,20 @@ | |||
<?xml version="1.0"?> | |||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> | |||
<fontconfig> | |||
<alias binding="same"> | |||
<family>MS Shell Dlg</family> | |||
<accept><family>Microsoft Sans Serif</family></accept> | |||
<default><family>sans-serif</family></default> | |||
</alias> | |||
<alias binding="same"> | |||
<family>MS Shell Dlg 2</family> | |||
<accept><family>Tahoma</family></accept> | |||
<default><family>sans-serif</family></default> | |||
</alias> | |||
<alias binding="same"> | |||
<family>MS Sans Serif</family> | |||
<prefer><family>Microsoft Sans Serif</family></prefer> | |||
<default><family>sans-serif</family></default> | |||
</alias> | |||
</fontconfig> |
@ -0,0 +1,324 @@ | |||
# Maintainer: Daniel Bermond < yahoo-com: danielbermond > | |||
# Contributor: Pekka Helenius (~ Fincer) <fincer89@hotmail.com> | |||
# Enable Wine Staging? 1 = yes | |||
enable_staging=1 | |||
# Staging patchsets. Default: all patchsets. Please see Wine Staging patchinstall.sh file for individual patchset names. | |||
staging_patchsets=(--all) # In order to disable all patchsets, use #(--all) and add desired patchsets individually here | |||
# Enable 32-bit compilation? 1 = yes | |||
enable_32=1 | |||
# Enable 64-bit compilation? 1 = yes | |||
enable_64=1 | |||
provides=('wine' 'wine-git' 'wine-staging' 'wine-staging-git' 'wine-staging-dxvk-git') | |||
if [[ enable_staging -eq 1 ]]; then | |||
pkgname=wine-staging-git | |||
pkgdesc="A compatibility layer for running Windows programs (staging branch, Git version)" | |||
url="https://github.com/wine-staging/wine-staging/" | |||
conflicts=('wine' 'wine-git' 'wine-staging') | |||
else | |||
pkgname=wine-git | |||
pkgdesc="A compatibility layer for running Windows programs (Git version)" | |||
url="https://source.winehq.org/git/wine.git/" | |||
conflicts=('wine' 'wine-staging' 'wine-staging-git') | |||
fi | |||
pkgver=stg.3.13.1.r11.g39cafb1d+wine.wine.3.13.r0.g25cc380b8e | |||
pkgrel=1 | |||
arch=('i686' 'x86_64') | |||
license=('LGPL') | |||
_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' | |||
'desktop-file-utils' | |||
'vulkan-icd-loader' 'lib32-vulkan-icd-loader' | |||
) | |||
makedepends=( | |||
'git' | |||
'autoconf' | |||
'ncurses' | |||
'bison' | |||
'perl' | |||
#'fontforge' | |||
'flex' | |||
'gcc>=4.5.0-2' | |||
'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' | |||
'libgl' 'lib32-libgl' | |||
'opencl-icd-loader' 'lib32-opencl-icd-loader' | |||
'libxslt' 'lib32-libxslt' | |||
'libpulse' 'lib32-libpulse' | |||
'libva' 'lib32-libva' | |||
'gst-plugins-base-libs' 'lib32-gst-plugins-base-libs' | |||
'samba' | |||
#'opencl-headers' | |||
#'gcc-multilib>=4.5.0-2' | |||
) | |||
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' | |||
'ncurses' 'lib32-ncurses' | |||
'opencl-icd-loader' 'lib32-opencl-icd-loader' | |||
'libxslt' 'lib32-libxslt' | |||
'libtxc_dxtn' 'lib32-libtxc_dxtn' | |||
'libva' 'lib32-libva' | |||
'gst-plugins-base-libs' 'lib32-gst-plugins-base-libs' | |||
'vulkan-icd-loader' 'lib32-vulkan-icd-loader' | |||
'cups' | |||
'samba' | |||
'dosbox' | |||
) | |||
# lib32-libtxc_dxtn | |||
# 'gtk3' 'lib32-gtk3' | |||
options=('staticlibs') | |||
source=(wine-git::'git://source.winehq.org/git/wine.git' | |||
'30-win32-aliases.conf' | |||
) | |||
if [[ $(find ./custom_patches -mindepth 1 -maxdepth 1 -name "*.patch") ]]; then | |||
cp ./custom_patches/*.patch ./ | |||
let p=0 | |||
for patch in $(find . -mindepth 1 -maxdepth 1 -name "*.patch"); do | |||
patches[$p]="$(basename ${patch})" | |||
let p++ | |||
done | |||
unset p | |||
source+=(${source[@]} ${patches[@]}) | |||
fi | |||
if [[ enable_staging -eq 1 ]]; then | |||
stagingsrc=wine-staging-git::'git://github.com/wine-staging/wine-staging.git' | |||
source+=($stagingsrc) | |||
fi | |||
if [[ "$CARCH" == "i686" ]]; then | |||
# Strip lib32 etc. on i686 | |||
_depends=(${_depends[@]/*32-*/}) | |||
makedepends=(${makedepends[@]/*32-*/} ${_depends[@]}) | |||
makedepends=(${makedepends[@]/*-multilib*/}) | |||
optdepends=(${optdepends[@]/*32-*/}) | |||
else | |||
makedepends=(${makedepends[@]} ${_depends[@]}) | |||
fi | |||
pkgver() { | |||
msg2 "Setting Wine versions..." | |||
if [[ enable_staging -eq 1 ]]; then | |||
cd "${srcdir}/wine-staging-git" | |||
_staging_tag="$(git tag | sort -Vr | head -n1 | sed 's/-/./g;s/^v//')" | |||
_staging_version="stg.$(git describe --long \ | |||
| sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//' \ | |||
| sed "s/^latest.release/${_staging_tag}/")" | |||
fi | |||
cd "${srcdir}/wine-git" | |||
_wine_version="wine.$(git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g')" | |||
if [[ enable_staging -eq 1 ]]; then | |||
printf "%s+%s" "$_staging_version" "$_wine_version" | |||
else | |||
printf "%s" "$_wine_version" | |||
fi | |||
} | |||
prepare() { | |||
if [[ enable_staging -eq 1 ]]; then | |||
cd "$srcdir"/wine-git | |||
msg2 "Cleaning the wine source code tree..." | |||
# Restore the wine tree to its git origin state, without wine-staging patches | |||
#+(necessary for reapllying wine-staging patches in succedent builds, | |||
#+otherwise the patches will fail to be reapplied) | |||
git reset --hard HEAD # Restore tracked files | |||
git clean -d -x -f # Delete untracked files | |||
# Change back to the wine upstream commit that this version of wine-staging is based in | |||
git checkout $(../"$pkgname"/patches/patchinstall.sh --upstream-commit) | |||
fi | |||
} | |||
build() { | |||
cd "${srcdir}" | |||
# Delete old build dirs (from previous builds) and make new ones | |||
rm -rf "$pkgname"-{32,64}-build | |||
mkdir --parents "$pkgname"-32-build | |||
if [[ enable_staging -eq 1 ]]; then | |||
# Apply all wine-staging patches | |||
msg2 "Applying wine-staging patches..." | |||
./wine-staging-git/patches/patchinstall.sh DESTDIR="${srcdir}/wine-git" \ | |||
${staging_patchsets[*]} | |||
fi | |||
# Apply all custom patches | |||
msg2 "Applying custom patches..." | |||
cd "${srcdir}"/wine-git | |||
for i in $srcdir/*.patch | |||
do | |||
patch -Np1 < $i | |||
done | |||
cd "${srcdir}" | |||
# Build wine 64-bit | |||
#+(according to the wine wiki this 64-bit/32-bit building order is mandatory) | |||
if [[ "$CARCH" = "x86_64" ]] && [[ enable_64 -eq 1 ]]; then | |||
msg2 "Building Wine-64..." | |||
mkdir --parents "$pkgname"-64-build | |||
cd "$pkgname"-64-build | |||
../wine-git/configure \ | |||
--with-x \ | |||
--with-gstreamer \ | |||
--enable-win64 \ | |||
--with-xattr \ | |||
--disable-mscoree \ | |||
--with-vulkan \ | |||
--prefix=/usr \ | |||
--libdir=/usr/lib | |||
make | |||
_wine32opts=( | |||
--libdir=/usr/lib32 | |||
--with-wine64="${srcdir}/${pkgname}-64-build" | |||
) | |||
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" | |||
fi | |||
# Build wine 32-bit | |||
if [[ enable_32 -eq 1 ]]; then | |||
msg2 "Building Wine-32..." | |||
cd "$srcdir"/"$pkgname"-32-build | |||
../wine-git/configure \ | |||
--with-x \ | |||
--with-gstreamer \ | |||
--with-xattr \ | |||
--disable-mscoree \ | |||
--with-vulkan \ | |||
"${_wine32opts[@]}" \ | |||
--prefix=/usr | |||
make | |||
fi | |||
if [[ ! enable_32 -eq 1 ]] && [[ ! enable_64 -eq 1 ]]; then | |||
msg2 "You must define at least one architecture in PKGBUILD! Aborting" | |||
exit 1 | |||
fi | |||
} | |||
package() { | |||
depends=(${_depends[@]}) | |||
# Package wine 32-bit | |||
#+(according to the wine wiki this reverse 32-bit/64-bit packaging order is important) | |||
if [[ $enable_32 -eq 1 ]]; then | |||
msg2 "Packaging Wine-32..." | |||
cd "$srcdir"/"$pkgname"-32-build | |||
if [ "$CARCH" = "i686" ]; then | |||
make prefix="$pkgdir/usr" install | |||
else | |||
make prefix="${pkgdir}/usr" \ | |||
libdir="${pkgdir}/usr/lib32" \ | |||
dlldir="${pkgdir}/usr/lib32/wine" install | |||
fi | |||
fi | |||
# Package wine 64-bit | |||
if [[ "$CARCH" == "x86_64" ]] && [[ enable_64 -eq 1 ]]; then | |||
msg2 "Packaging Wine-64..." | |||
cd "$srcdir"/"$pkgname"-64-build | |||
make prefix="${pkgdir}/usr" \ | |||
libdir="${pkgdir}/usr/lib" \ | |||
dlldir="${pkgdir}/usr/lib/wine" install | |||
if [[ enable_dxvk -eq 1 ]]; then | |||
mv "$srcdir"/dxvk-compiled/x64/{d3d11.dll,dxgi.dll} "${pkgdir}/usr/lib/wine/fakedlls/" | |||
chmod 644 "${pkgdir}/usr/lib/wine/fakedlls/"{d3d11.dll,dxgi.dll} | |||
mv "$srcdir"/dxvk-compiled/x32/{d3d11.dll,dxgi.dll} "${pkgdir}/usr/lib32/wine/fakedlls/" | |||
chmod 644 "${pkgdir}/usr/lib32/wine/fakedlls/"{d3d11.dll,dxgi.dll} | |||
fi | |||
fi | |||
# Font aliasing settings for Win32 applications | |||
install -d "$pkgdir"/etc/fonts/conf.{avail,d} | |||
install -m644 "${srcdir}/30-win32-aliases.conf" "${pkgdir}/etc/fonts/conf.avail" | |||
ln -s ../conf.avail/30-win32-aliases.conf "${pkgdir}/etc/fonts/conf.d/30-win32-aliases.conf" | |||
} | |||
md5sums=('SKIP' | |||
'1ff4e467f59409272088d92173a0f801' | |||
'SKIP' | |||
'1ff4e467f59409272088d92173a0f801' | |||
'4228291253f5e94b793e5b0e6acab6a1' | |||
'16f24605c2f46404e4db1c89dbf307a6' | |||
'69169c9d32f51ec7af98570061261a2d' | |||
'c11dfdfda50dc4c05d2f7ef8eef01e70' | |||
'958fcdea1a455786a22e09a6afc0adaf' | |||
'711c39eeb131ff30e2bfb68ea27d4040' | |||
'3474c0d9e65cefc223c0a43cd5b21ce1' | |||
'f58a4e17b33bd96ce0d6e8325cad7f76' | |||
'18e99ddef0c5ae3bd1b03781ffb1d614' | |||
'e833694fa978a26ad3254d43ca6127e1' | |||
'SKIP') |
@ -0,0 +1,305 @@ | |||
#!/bin/bash | |||
# getsource - Simple script to set up Wine Staging + DXVK for PoL wineprefixes | |||
# Copyright (C) 2018 Pekka Helenius | |||
# | |||
# This program is free software: you can redistribute it and/or modify | |||
# it under the terms of the GNU General Public License as published by | |||
# the Free Software Foundation, either version 3 of the License, or | |||
# (at your option) any later version. | |||
# | |||
# This program is distributed in the hope that it will be useful, | |||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
# GNU General Public License for more details. | |||
# | |||
# You should have received a copy of the GNU General Public License | |||
# along with this program. If not, see <https://www.gnu.org/licenses/>. | |||
########################################################### | |||
# Your system username (who has PoL profile // existing Wine prefixes) | |||
# Get it by running 'whoami' | |||
USER=fincer | |||
########################################################### | |||
# REQUIREMENTS: | |||
# - Arch Linux or equivalent (uses pacman) | |||
# | |||
# - Existing PlayonLinux package installation and $HOME/.PlayOnLinux folder | |||
# with all relevant subfolders | |||
# | |||
# - git, sudo, pwd...etc. | |||
# | |||
# - dxvk-git and wine-staging-git package dependencies installed | |||
# (see PKGBUILD files ./PKGBUILD and ./0-dxvk-git/PKGBUILD for details) | |||
# | |||
# - Internet connection | |||
# | |||
# - GPU Vulkan support and the most recent Nvidia/AMD drivers | |||
########################################################### | |||
# Usage | |||
# Run with sudo | |||
# | |||
# # sudo bash ./updatewine.sh | |||
# | |||
# NOTE: All commands are executed as user (defined above). | |||
# Only commands which require root permissions are ones | |||
# which install packages wine-staging-git and dxvk into | |||
# your system | |||
# All regular user commands have prefix 'cmd' below | |||
# Switches: | |||
# | |||
# --refresh | |||
# | |||
# Check for new Staging/DXVK releases, update PoL Wine prefixes if needed | |||
# Does a comparison between local & remote git repos | |||
# | |||
# --check | |||
# | |||
# Check for new Staging/DXVK releases | |||
# Does a comparison between local & remote git repos | |||
# | |||
# --force | |||
# | |||
# Force Wine Staging & DXVK installation | |||
# | |||
########################################################### | |||
# Get current date | |||
CURDATE=$(date "+%d-%m-%Y %H:%M:%S") | |||
# This variable value is automatically generated. DO NOT CHANGE. | |||
LASTUPDATE= | |||
# This variable value is automatically generated. DO NOT CHANGE. | |||
WINE_VERSION= | |||
########################################################### | |||
# Switches | |||
if [[ "${1}" == "--refresh" ]]; then | |||
WINE_INSTALL= | |||
CHECK= | |||
fi | |||
if [[ "${1}" == "--check" ]]; then | |||
CHECK= | |||
fi | |||
if [[ "${1}" == "--force" ]] || [[ $WINE_VERSION == "" ]] || [[ $LASTUPDATE == "" ]]; then | |||
WINE_INSTALL= | |||
FORCE_INSTALL= | |||
fi | |||
########################################################### | |||
if [[ $UID -ne 0 ]]; then | |||
echo "Run as root or sudo" | |||
exit 1 | |||
fi | |||
echo -e "\nLast update: $LASTUPDATE\n" | |||
ORG_CURDIR=$(pwd) | |||
cmd() { | |||
sudo -u $USER bash -c "${*}" | |||
} | |||
########################################################### | |||
# Check for existing PoL user folder | |||
if [[ ! -d /home/$USER/.PlayOnLinux ]]; then | |||
echo "No existing PlayonLinux profiles in $USER's home folder. Aborting" | |||
exit 1 | |||
fi | |||
########################################################### | |||
# Check internet connection | |||
function netCheck() { | |||
if [[ $(echo $(wget --delete-after -q -T 5 github.com -o -)$?) -ne 0 ]]; then | |||
echo -e "\nInternet connection failed (GitHub). Please check your connection and try again.\n" | |||
exit 1 | |||
fi | |||
} | |||
########################################################### | |||
# Local/Remote git comparisons | |||
function gitCheck() { | |||
netCheck | |||
if [[ -v $FORCE_INSTALL ]]; then | |||
NEEDSBUILD=1 | |||
return 0 | |||
fi | |||
if [[ ! -d "${1}" ]]; then | |||
NEEDSBUILD=1 | |||
return 1 | |||
fi | |||
echo -e "=> Checking ${2} GIT for changes\n" | |||
local CURDIR="${PWD}" | |||
cd "${1}" | |||
local LOCAL_GIT=$(git rev-parse @) | |||
local REMOTE_GIT=$(git ls-remote origin -h refs/heads/master | awk '{print $1}') | |||
echo -e "\t${2}:\n\tlocal git: $LOCAL_GIT\n\tremote git: $REMOTE_GIT" | |||
if [[ $LOCAL_GIT != $REMOTE_GIT ]]; then | |||
# true | |||
echo -e "\e[91m\n\t${2} needs to be updated\e[0m\n" | |||
NEEDSBUILD=1 | |||
else | |||
# false | |||
echo -e "\e[92m\n\t${2} is updated\e[0m\n" | |||
NEEDSBUILD=0 | |||
fi | |||
cd "${CURDIR}" | |||
} | |||
########################################################### | |||
# Remove any existing pkg,src or tar.xz packages left by previous pacman commands | |||
cmd "rm -rf ./*/{pkg,src,*.tar.xz}" | |||
cmd "rm -f ./0-wine-staging-git/*.patch" | |||
if [[ $? -ne 0 ]]; then | |||
echo "Could not remove previous pacman-generated Wine source folders" | |||
exit 1 | |||
fi | |||
########################################################### | |||
# Do git check for Wine Staging | |||
gitCheck ./wine-staging-git Wine | |||
# If needs build and --check switch is not used | |||
if [[ $NEEDSBUILD -eq 1 ]] && [[ ! -v CHECK ]]; then | |||
# Create wine-staging-git package and install it to the system | |||
cd "${ORG_CURDIR}"/0-wine-staging-git | |||
cmd "updpkgsums && makepkg" | |||
if [[ $? -eq 0 ]]; then | |||
pacman -U --noconfirm wine-*.tar.xz | |||
else | |||
exit 1 | |||
fi | |||
if [[ $? -eq 0 ]]; then | |||
cmd "rm -rf ./{*.patch,pkg,src,*.tar.xz}" | |||
WINE_INSTALL= | |||
WINE_VERSION_UPDATE=$(pacman -Qi wine-staging-git | grep 'Version' | awk '{print $NF}') | |||
else | |||
exit 1 | |||
fi | |||
cd .. | |||
fi | |||
############################# | |||
# Create dxvk-git package and install it to the system | |||
gitCheck ./0-dxvk-git/dxvk-git DXVK | |||
# If needs build and --check switch is not used | |||
if [[ $NEEDSBUILD -eq 1 ]] && [[ ! -v CHECK ]]; then | |||
# Create dxvk-git package and install it to the system | |||
cd "${ORG_CURDIR}"/0-dxvk-git | |||
cmd "updpkgsums && makepkg" | |||
if [[ $? -eq 0 ]]; then | |||
pacman -U --noconfirm dxvk-git*.tar.xz | |||
else | |||
exit 1 | |||
fi | |||
if [[ $? -eq 0 ]]; then | |||
cmd "rm -rf ./{pkg,src,dxvk-git*.tar.xz}" | |||
else | |||
exit 1 | |||
fi | |||
fi | |||
cd .. | |||
# If a new Wine Staging version was installed and 'System' version of Wine has been used in | |||
# PoL wineprefix configurations, update those existing PoL wineprefixes | |||
if [[ -v WINE_INSTALL ]]; then | |||
for wineprefix in $(find /home/$USER/.PlayOnLinux/wineprefix -mindepth 1 -maxdepth 1 -type d); do | |||
if [[ -d ${wineprefix}/dosdevices ]]; then | |||
# If VERSION string exists, skip updating that prefix. | |||
if [[ $(printf $(grep -ril "VERSION" ${wineprefix}/playonlinux.cfg &> /dev/null)$?) -ne 0 ]]; then | |||
# If currently installed Wine version is not same than we just built. | |||
if [[ -v WINE_VERSION_UPDATE ]]; then | |||
if [[ "${WINE_VERSION}" != "${WINE_VERSION_UPDATE}" ]]; then | |||
cmd "WINEPREFIX=${wineprefix} wineboot -u" | |||
fi | |||
fi | |||
fi | |||
fi | |||
done | |||
# If a new Wine Staging version was installed, update WINE_VERSION string variable in this script file | |||
if [[ -v WINE_VERSION_UPDATE ]]; then | |||
cmd "sed -i 's/^WINE_VERSION=.*/WINE_VERSION=\"${WINE_VERSION_UPDATE}\"/' $ORG_CURDIR/updatewine.sh" | |||
fi | |||
fi | |||
# Install dxvk-git to every PlayOnLinux wineprefix | |||
if [[ $? -eq 0 ]]; then | |||
for wineprefix in $(find /home/$USER/.PlayOnLinux/wineprefix -mindepth 1 -maxdepth 1 -type d); do | |||
if [[ -d ${wineprefix}/dosdevices ]]; then | |||
if [[ $(printf $(grep -ril "\"d3d11\"=\"native\"" ${wineprefix}/user.reg &> /dev/null)$?) -ne 0 ]]; then | |||
cmd "WINEPREFIX=${wineprefix} setup_dxvk32" | |||
cmd "WINEPREFIX=${wineprefix} setup_dxvk64" | |||
fi | |||
# For D3D10 DXVK support | |||
if [[ $(printf $(grep -ril "\"\*d3dcompiler_43\"=\"native\"" ${wineprefix}/user.reg &> /dev/null)$?) -ne 0 ]]; then | |||
cmd "WINEPREFIX=${wineprefix} winetricks d3dcompiler_43" | |||
fi | |||
fi | |||
done | |||
fi | |||
# Update LASTUPDATE variable string, if --check switch is not used + a new Wine Staging version is used or NEEDSBUILD variable is set to 1 | |||
if [[ ! -v CHECK ]]; then | |||
if [[ -v WINE_INSTALL ]] || [[ $NEEDSBUILD -eq 1 ]]; then | |||
cmd "sed -i 's/^LASTUPDATE=.*/LASTUPDATE=\"$CURDATE\"/' $ORG_CURDIR/updatewine.sh" | |||
fi | |||
fi | |||
# Unset various env vars | |||
unset CHECK | |||
unset WINE_INSTALL | |||
unset FORCE_INSTALL |