Updated to 2.0

This commit is contained in:
Алзим 2017-01-30 15:51:40 +03:00
parent 208b372b6a
commit 48eeaa8019
6 changed files with 6188 additions and 186 deletions

View file

@ -1,5 +1,4 @@
sources:
wine-1.9.23.tar.bz2: 8fe86ae157986a38e4883639e4c900f30af6967e
wine-1.9.23.tar.bz2.sign: 8ff5205bb15259008f790f9399f399173436180b
wine-d3d9-patches-wine-d3d9-1.9.8.tar.bz2: 3c91f74106ff08f084f4b77516dfd06c06580819
wine-staging-1.9.23.tar.gz: f83a3d6cd9ac2f07d5e0e749e25c35bc1b9b265f
wine-2.0.tar.bz2: 3f433d564eb661e7d384871bc4a102eee12638b9
wine-2.0.tar.bz2.sign: eb9c3ae5bcfaa2b8bf4e4e01e366a3f1561d7df8
wine-staging-2.0.tar.gz: b6ad25e8cd2054d0ecb86a4b4410365502bd8ea1

123
staging-helper.patch Normal file
View file

@ -0,0 +1,123 @@
From b47606c13908f702b955ff7f6cbe94cde8de3139 Mon Sep 17 00:00:00 2001
From: Nick Sarnie <commendsarnex@gmail.com>
Date: Wed, 25 Jan 2017 15:05:02 -0500
Subject: [PATCH] Staging Helper
Signed-off-by: Nick Sarnie <commendsarnex@gmail.com>
---
dlls/ntdll/loadorder.c | 2 ++
programs/winecfg/resource.h | 1 +
programs/winecfg/staging.c | 29 +++++++++++++++++++++++++++++
programs/winecfg/winecfg.rc | 1 +
4 files changed, 33 insertions(+)
diff --git a/dlls/ntdll/loadorder.c b/dlls/ntdll/loadorder.c
index 50688123f3..0e05a0dab2 100644
--- a/dlls/ntdll/loadorder.c
+++ b/dlls/ntdll/loadorder.c
@@ -633,8 +633,10 @@ WCHAR* get_redirect( const WCHAR *app_name, const WCHAR *path, BYTE *buffer, ULO
goto done;
/* then module basename without '*' (only if explicit path) */
+ /*
if (basename != module+1 && (ret = get_redirect_value( std_key, app_key, basename, buffer, size )))
goto done;
+ */
/* and last the hard-coded default */
ret = NULL;
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
index b94e773b60..028dbb730b 100644
--- a/programs/winecfg/resource.h
+++ b/programs/winecfg/resource.h
@@ -218,6 +218,7 @@
#define IDC_ENABLE_EAX 9003
#define IDC_ENABLE_HIDEWINE 9004
#define IDC_ENABLE_GTK3 9005
+#define IDC_ENABLE_NATIVE_D3D9 9006
/* About tab */
#define IDC_ABT_OWNER 8432
diff --git a/programs/winecfg/staging.c b/programs/winecfg/staging.c
index a96bdcaab4..7eec5e9608 100644
--- a/programs/winecfg/staging.c
+++ b/programs/winecfg/staging.c
@@ -122,6 +122,23 @@ static void gtk3_set(BOOL status)
#endif
}
+/*
+ * Gallium nine
+ */
+static BOOL nine_get(void)
+{
+ BOOL ret;
+ char *value = get_reg_key(config_key, keypath("DllRedirects"), "d3d9", NULL);
+ ret = (value && !strcmp(value, "d3d9-nine.dll"));
+ HeapFree(GetProcessHeap(), 0, value);
+ return ret;
+}
+
+static void nine_set(BOOL status)
+{
+ set_reg_key(config_key, keypath("DllRedirects"), "d3d9", status ? "d3d9-nine.dll" : NULL);
+}
+
static void load_staging_settings(HWND dialog)
{
CheckDlgButton(dialog, IDC_ENABLE_CSMT, csmt_get() ? BST_CHECKED : BST_UNCHECKED);
@@ -129,6 +146,7 @@ static void load_staging_settings(HWND dialog)
CheckDlgButton(dialog, IDC_ENABLE_EAX, eax_get() ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(dialog, IDC_ENABLE_HIDEWINE, hidewine_get() ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(dialog, IDC_ENABLE_GTK3, gtk3_get() ? BST_CHECKED : BST_UNCHECKED);
+ CheckDlgButton(dialog, IDC_ENABLE_NATIVE_D3D9, nine_get() ? BST_CHECKED : BST_UNCHECKED);
#ifndef HAVE_VAAPI
disable(IDC_ENABLE_VAAPI);
@@ -136,6 +154,9 @@ static void load_staging_settings(HWND dialog)
#ifndef HAVE_GTK3
disable(IDC_ENABLE_GTK3);
#endif
+#if !defined(HAVE_D3D9NINE)
+ disable(IDC_ENABLE_NATIVE_D3D9);
+#endif
}
INT_PTR CALLBACK StagingDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
@@ -163,6 +184,8 @@ INT_PTR CALLBACK StagingDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
{
case IDC_ENABLE_CSMT:
csmt_set(IsDlgButtonChecked(hDlg, IDC_ENABLE_CSMT) == BST_CHECKED);
+ nine_set(FALSE);
+ CheckDlgButton(hDlg, IDC_ENABLE_NATIVE_D3D9, BST_UNCHECKED);
SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0);
return TRUE;
case IDC_ENABLE_VAAPI:
@@ -181,6 +204,12 @@ INT_PTR CALLBACK StagingDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
gtk3_set(IsDlgButtonChecked(hDlg, IDC_ENABLE_GTK3) == BST_CHECKED);
SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0);
return TRUE;
+ case IDC_ENABLE_NATIVE_D3D9:
+ nine_set(IsDlgButtonChecked(hDlg, IDC_ENABLE_NATIVE_D3D9) == BST_CHECKED);
+ csmt_set(FALSE);
+ CheckDlgButton(hDlg, IDC_ENABLE_CSMT, BST_UNCHECKED);
+ SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0);
+ return TRUE;
}
break;
}
diff --git a/programs/winecfg/winecfg.rc b/programs/winecfg/winecfg.rc
index c375217d71..31cc9bae0d 100644
--- a/programs/winecfg/winecfg.rc
+++ b/programs/winecfg/winecfg.rc
@@ -320,6 +320,7 @@ BEGIN
CONTROL "Enable Environmental Audio E&xtensions (EAX)",IDC_ENABLE_EAX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,70,230,8
CONTROL "&Hide Wine version from applications",IDC_ENABLE_HIDEWINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,85,230,8
CONTROL "Enable &GTK3 Theming",IDC_ENABLE_GTK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,100,230,8
+ CONTROL "Enable Gallium &Nine for better D3D9 graphic performance",IDC_ENABLE_NATIVE_D3D9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,115,230,8
END
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
--
2.11.0

5658
wine-d3d9.patch Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,17 +1,15 @@
%ifarch x86_64
%define wine wine64
%define mark64 ()(64bit)
%define wine wine64
%define mark64 ()(64bit)
%else
%define wine wine
%define mark64 %{nil}
%define wine wine
%define mark64 %{nil}
%endif
%define major 1
%define libname %mklibname %{name} %{major}
%define devname %mklibname %{name} -d
%define d3d_version 1.9.8
# On 32-bit we have
# wine32 - those 32-bit binaries that are also used on 64-bit for 32-bit support
# wine - all other files (requires 'wine32')
@ -21,7 +19,7 @@
Summary: WINE Is Not An Emulator - runs MS Windows programs
Name: wine
Version: 1.9.23
Version: 2.0
Release: 1
Epoch: 2
License: LGPLv2+
@ -29,15 +27,19 @@ Group: Emulators
Url: http://www.winehq.com/
Source0: http://mirrors.ibiblio.org/wine/source/%(echo %{version} |cut -d. -f1-2)/%{name}-%{version}.tar.bz2
Source1: http://mirrors.ibiblio.org/wine/source/%(echo %{version} |cut -d. -f1-2)/%{name}-%{version}.tar.bz2.sign
# RH stuff
# FIXME: provide a systemd-based solution
# See: https://wiki.archlinux.org/index.php/wine (Using Wine as an interpreter for Win16/Win32 binaries)
# Old RH stuff
Source2: wine.init
Source3: wine.systemd
# Wine-Compholio, from github by tag
# https://github.com/compholio/wine-compholio/archive/v%{version}.tar.gz
Source3: wine-staging-%{version}.tar.gz
# Wine Gallium Nine, from github by tag
# https://github.com/NP-Hardass/wine-d3d9-patches/archive/wine-d3d9-%{version}.tar.gz
# 1.9.8 tarball is master snapshot rebased against wine-staging 1.9.8
Source4: wine-d3d9-patches-wine-d3d9-%{d3d_version}.tar.bz2
# https://github.com/compholio/wine-compholio/archive/v%%{version}.tar.gz
Source4: wine-staging-%{version}.tar.gz
# Wine Gallium Nine patches for wine-staging %%{version}
# from https://github.com/sarnex/wine-d3d9-patches.
# Install staging-helper before wine-d3d9
Source6: staging-helper.patch
Source7: wine-d3d9.patch
Source10: wine.rpmlintrc
Source11: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
Source12: http://kegel.com/wine/wisotool
@ -45,7 +47,7 @@ Source12: http://kegel.com/wine/wisotool
# (Anssi 05/2008) Adds:
# a: => /media/floppy (/mnt/floppy on 2007.1 and older)
# d: => $HOME (at config_dir creation time, not refreshed if $HOME changes;
# note that Wine also provides $HOME in My Documents)
# note that Wine also provides $HOME in My Documents)
# only on 2008.0: e: => /media/cdrom (does not exist on 2008.1+)
# com4 => /dev/ttyUSB0 (replaces /dev/ttyS3)
# have to substitute @MDKVERSION@ in dlls/ntdll/server.c
@ -249,6 +251,7 @@ Wine is often updated.
%{_libdir}/libwine*.so
%{_libdir}/%{name}/*.def
%{_includedir}/*
#%%{_bindir}/fnt2bdf
%{_bindir}/wmc
%{_bindir}/wrc
%{_bindir}/winebuild
@ -272,16 +275,18 @@ Wine is often updated.
#----------------------------------------------------------------------------
%prep
%setup -q
%setup -qn %{name}-%{version}
%patch0 -p1 -b .conf
# Wine-Compholio
gzip -dc "%{SOURCE3}" | /bin/tar -xf - --strip-components=1
make -C "patches" DESTDIR="%{_builddir}/wine-%{version}" install
# Wine-staging
gzip -dc "%{SOURCE4}" | /bin/tar -xf - --strip-components=1
#make -C "patches" DESTDIR="%%{_builddir}/wine-%%{version}-rc4" install
# See patchinstall.sh --help for all the options
./patches/patchinstall.sh DESTDIR="%{_builddir}/wine-%{version}" --all
# Gallium Nine
tar -xf %{SOURCE4}
patch -p1 < wine-d3d9-patches-wine-d3d9-%{d3d_version}/wine-d3d9.patch
# Gallium Nine support
patch -p1 < %{SOURCE6}
patch -p1 < %{SOURCE7}
sed -i 's,@MDKVERSION@,%{mdvver},' dlls/ntdll/server.c
@ -299,13 +304,12 @@ export CFLAGS="%{optflags} -fno-omit-frame-pointer"
# not change build behaviour.
export ICOTOOL=false
autoreconf -fi
autoreconf -vfi
%configure2_5x \
--with-d3dadapter \
--with-pulse \
%ifarch x86_64
--enable-win64
--enable-win64 \
%endif
--with-pulse
make depend
make
@ -316,6 +320,9 @@ make
install -m 0755 %{SOURCE11} %{buildroot}%{_bindir}/
install -m 0755 %{SOURCE12} %{buildroot}%{_bindir}/
# Danny: dirty:
# install -m755 tools/fnt2bdf -D %%{buildroot}%%{_bindir}/fnt2bdf
# Allow users to launch Windows programs by just clicking on the .exe file...
install -m755 %{SOURCE2} -D %{buildroot}%{_initrddir}/%{name}
@ -453,7 +460,7 @@ EOF
%{_bindir}/wineserver
%{_bindir}/wineboot
%{_bindir}/function_grep.pl
#%{_bindir}/wineprefixcreate
#%%{_bindir}/wineprefixcreate
%{_bindir}/msidb
%{_bindir}/msiexec
%{_bindir}/notepad
@ -481,6 +488,7 @@ EOF
%{_mandir}/man1/winemine.1*
%{_mandir}/man1/winepath.1*
%dir %{_datadir}/%{name}
#{_datadir}/%%{name}/generic.ppd
%{_datadir}/%{name}/%{name}.inf
%{_datadir}/%{name}/l_intl.nls
%{_datadir}/applications/*.desktop

5
wine.systemd Normal file
View file

@ -0,0 +1,5 @@
# Pre-PE Windows Executables
:windows:M::MZ::/usr/bin/wine:
# PE Windows Executables
:windowsPE:M::PE::/usr/bin/wine:

View file

@ -1,8 +1,12 @@
#!/bin/sh
# shellcheck disable=SC2030,SC2031
# SC2030: Modification of WINE is local (to subshell caused by (..) group).
# SC2031: WINE was modified in a subshell. That change might be lost
# This has to be right after the shebang, see: https://github.com/koalaman/shellcheck/issues/779
# Name of this version of winetricks (YYYYMMDD)
# (This doesn't change often, use the sha1sum of the file when reporting problems)
WINETRICKS_VERSION=20161012
WINETRICKS_VERSION=20170101
# This is a UTF-8 file
# You should see an o with two dots over it here [ö]
@ -137,12 +141,23 @@ WINETRICKS_VERSION=20161012
# *) echo "This is the English message" ;;
# esac
#
# Support:
# - Winetricks is maintained by Austin English <austinenglish!$gmail.com>.
# - If winetricks has helped you out, then please consider donating to the FSF/EFF as a thank you
# - If winetricks has helped you out, then please consider donating to the FSF/EFF as a thank you:
# * EFF - https://supporters.eff.org/donate/button
# * FSF - https://my.fsf.org/donate
# - Donations towards electricity bill and developer beer fund can be sent via Paypal to above address.
# - I try to actively respond to bugs and pull requests on GitHub:
# - Bugs: https://github.com/Winetricks/winetricks/issues/new
# - Pull Requests: https://github.com/Winetricks/winetricks/pulls
#--------------------------------------------------------------------
# FIXME: XDG_CACHE_HOME is defined twice, clean this up
XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
W_COUNTRY=""
W_PREFIXES_ROOT="${WINE_PREFIXES:-$XDG_DATA_HOME/wineprefixes}"
# For temp files before $WINEPREFIX is available:
@ -627,6 +642,8 @@ w_dotnet_verify()
dotnet45) version="4.5" ;;
dotnet452) version="4.5.2" ;;
dotnet46) version="4.6" ;;
dotnet461) version="4.6.1" ;;
dotnet462) version="4.6.2" ;;
*) echo error ; exit 1 ;;
esac
w_call dotnet_verifier
@ -748,11 +765,11 @@ winetricks_selfupdate_rollback()
}
# Download a file
# Usage: w_download_to packagename url [sha1sum [filename [cookie jar]]]
# Usage: w_download_to (packagename|path to download file) url [sha1sum [filename [cookie jar]]]
# Caches downloads in winetrickscache/$packagename
w_download_to()
{
_W_packagename="$1"
_W_packagename="$1" # or path to download file to
_W_url="$2"
_W_sum="$3"
_W_file="$4"
@ -771,10 +788,14 @@ w_download_to()
_W_file=$(basename "$_W_url")
fi
if [ -z "${_W_packagename%%/*}" ] && pathchk -P "$_W_packagename" ; then
_W_cache="$_W_packagename"
if echo "${_W_packagename}" | grep -q -e '\/-' -e '^-'; then
w_die "Invalid path ${_W_packagename} given"
else
_W_cache="$W_CACHE/$_W_packagename"
if ! echo "${_W_packagename}" | grep -q '^/' ; then
_W_cache="$W_CACHE/$_W_packagename"
else
_W_cache="$_W_packagename"
fi
fi
if test ! -d "$_W_cache"
@ -782,11 +803,41 @@ w_download_to()
w_try mkdir -p "$_W_cache"
fi
# If WINETRICKS_DOWNLOADER is set, ensure it is to a valid value (aria2c, curl, wget), if not, error.
# If unset, fallback to checking for them in $PATH as before:
# shellcheck disable=2104
case "${WINETRICKS_DOWNLOADER}" in
aria2c|curl|wget) : ;;
"") if [ -x "$(which aria2c 2>/dev/null)" ] ; then
WINETRICKS_DOWNLOADER="aria2c"
elif [ -x "$(which wget 2>/dev/null)" ] ; then
WINETRICKS_DOWNLOADER="wget"
elif [ -x "$(which curl 2>/dev/null)" ] ; then
WINETRICKS_DOWNLOADER="curl"
else
w_die "Please install wget or aria2c (or, if those aren't available, curl)"
fi
;;
*) w_die "Invalid value ${WINETRICKS_DOWNLOADER} given for WINETRICKS_DOWNLOADER. Possible values: aria2c, curl, wget"
esac
# FIXME: move these variables and common download options to a global place that can be shared as
# downloaders may be used outside of w_download_to() (e.g., winetricks_stats_report() and winetricks_dl_url_to_stdout())
# Common values for aria2c/curl/wget
# Connection timeout time (in seconds):
WINETRICKS_DOWNLOADER_TIMEOUT=${WINETRICKS_DOWNLOADER_TIMEOUT:-15}
# Number of retry attempts:
WINETRICKS_DOWNLOADER_RETRIES=${WINETRICKS_DOWNLOADER_RETRIES:-3}
# Try download twice
checksum_ok=""
tries=0
while test $tries -lt 2
do
# Warn on a second try
test "$tries" -eq 1 && winetricks_dl_warning
tries=$((tries + 1))
if test -s "$_W_cache/$_W_file"
@ -850,8 +901,10 @@ w_download_to()
aria2c_torify_opts="" ;;
esac
if [ -x "$(which aria2c 2>/dev/null)" ]
if [ "${WINETRICKS_DOWNLOADER}" = "aria2c" ]
then
# Note: aria2c wants = for most options or silently fails
# (Slightly fancy) aria2c support
# See https://github.com/Winetricks/winetricks/issues/612
# --daemon=false --enable-rpc=false to ensure aria2c doesnt go into the background after starting
@ -862,17 +915,19 @@ w_download_to()
# ovewritten by the new aria2 process
$torify aria2c \
$aria2c_torify_opts \
--connect-timeout="${WINETRICKS_DOWNLOADER_TIMEOUT}" \
--continue \
--daemon=false \
--dir "$_W_cache" \
--dir="$_W_cache" \
--enable-rpc=false \
--input-file='' \
--max-connection-per-server=5 \
--out "$_W_file" \
--max-tries="$WINETRICKS_DOWNLOADER_RETRIES" \
--out="$_W_file" \
--save-session='' \
--stream-piece-selector=geom \
"$_W_url"
elif [ -x "$(which wget 2>/dev/null)" ]
elif [ "${WINETRICKS_DOWNLOADER}" = "wget" ]
then
# Use -nd to insulate ourselves from people who set -x in WGETRC
# [*] --retry-connrefused works around the broken sf.net mirroring
@ -885,25 +940,31 @@ w_download_to()
-O "$_W_file" \
-nd \
-c\
--read-timeout=300 \
--read-timeout 300 \
--retry-connrefused \
--timeout "${WINETRICKS_DOWNLOADER_TIMEOUT}" \
--tries "$WINETRICKS_DOWNLOADER_RETRIES" \
${_W_cookiejar:+--load-cookies "$_W_cookiejar"} \
${_W_agent:+--user-agent="$_W_agent"} \
"$_W_url"
elif [ -x "$(which curl 2>/dev/null)" ]
elif [ "${WINETRICKS_DOWNLOADER}" = "curl" ]
then
# Note: curl does not accept '=' when passing options
# curl doesn't get filename from the location given by the server!
# fortunately, we know it
# shellcheck disable=SC2086
$torify curl \
--connect-timeout "${WINETRICKS_DOWNLOADER_TIMEOUT}" \
-L \
-o "$_W_file" \
-C - \
--retry "$WINETRICKS_DOWNLOADER_RETRIES" \
${_W_cookiejar:+--cookie "$_W_cookiejar"} \
${_W_agent:+--user-agent "$_W_agent"} \
"$_W_url"
else
w_die "Please install wget or aria2c (or, if those aren't available, curl)"
w_die "Here be dragons"
fi
if test $? = 0
then
@ -1578,13 +1639,14 @@ w_ahk_do()
chmod +x "$W_CACHE/ahk/AutoHotkey.exe"
fi
_W_CR=$(printf \\\\r)
cat <<_EOF_ | sed "s/\$/$_W_CR/" > "$W_TMP"/tmp.ahk
# Previously this used printf + sed, but that was broken with BSD sed (FreeBSD/OS X):
# https://github.com/Winetricks/winetricks/issues/697
# So now using trying awk instead (next, perl):
cat <<_EOF_ | awk 'sub("$", "\r")' > "$W_TMP"/tmp.ahk
w_opt_unattended = ${W_OPT_UNATTENDED:-0}
$@
_EOF_
w_try "$WINE" "$W_CACHE_WIN\\ahk\\AutoHotkey.exe" "$W_TMP_WIN"\\tmp.ahk
unset _W_CR
}
# Function to protect Wine-specific sections of code.
@ -2123,7 +2185,9 @@ w_set_app_winver()
# fi
w_wine_version()
{
# Parse major/minor/micro/nano fields of VALUE. Ignore nano. Abort if major is not 1.
# Note, there are also hacks for major releases (1.6/1.8/2.0/etc. and RCs) in winetricks_init()
#
# Parse major/minor/micro/nano fields of VALUE. Ignore nano.
case $2 in
0*|1.0|1.0.*) w_die "bug: $2 is before 1.1, we don't bother with bugs fixed that long ago" ;;
1.1.*) _W_minor=1; _W_micro=$(echo "$2" | sed 's/.*\.//');;
@ -2138,6 +2202,13 @@ w_wine_version()
1.7.*) _W_minor=7; _W_micro=$(echo "$2" | sed 's/.*\.//');;
1.8.*) _W_minor=8; _W_micro=$(echo "$2" | sed 's/.*\.//');;
1.9.*) _W_minor=9; _W_micro=$(echo "$2" | sed 's/.*\.//');;
# Rather than rework numbering system to handle both, just consider 2.x+ as 1.10, 1.11, etc.
2.0|2.0-rc*) _W_minor=10; _W_micro=0;;
2.0.*|2.*) _W_minor=10; _W_micro=$(echo "$2" | sed 's/.*\.//');;
3.0|3.0-rc*) _W_minor=11; _W_micro=0;;
3.0.*|3.*) _W_minor=11; _W_micro=$(echo "$2" | sed 's/.*\.//');;
*) w_die "bug: unrecognized version $2";;
esac
@ -2157,6 +2228,7 @@ w_wine_version()
#WINETRICKS_WINE_MINOR=3 WINETRICKS_WINE_MICRO=4 w_wine_version -gt 1.2 || w_die "fail test case wine-1.3.4 > wine-1.2"
#echo Verify that version 1.6 is greater than 1.2
#WINETRICKS_WINE_MINOR=6 WINETRICKS_WINE_MICRO=0 w_wine_version -gt 1.2 || w_die "fail test case wine-1.6 > wine-1.2"
# FIXME: 2.x tests
# Usage: w_wine_version_in range ...
# True if wine version in any of the given ranges
@ -2402,7 +2474,7 @@ w_do_call()
;;
*)
# shellcheck disable=SC2154
case "$category"-"$WINETRICKS_OPT_SHAREDPREFIX" in
case "${category}-${WINETRICKS_OPT_SHAREDPREFIX}" in
apps-0|benchmarks-0|games-0)
winetricks_set_wineprefix "$cmd"
# If it's a new wineprefix, give it metadata
@ -2505,6 +2577,7 @@ REGEDIT4
_EOF_
# too verbose
w_try_regedit "$W_TMP_WIN"\\_register-font.reg
# shellcheck disable=SC1037
cp "$W_TMP"/*.reg "$W_TMP_EARLY"/_reg$$.reg
# Wine also updates the win9x fonts key, so let's do that, too
@ -2515,6 +2588,7 @@ REGEDIT4
"$font"="$file"
_EOF_
w_try_regedit "$W_TMP_WIN"\\_register-font.reg
# shellcheck disable=SC1037
cp "$W_TMP"/*.reg "$W_TMP_EARLY"/_reg$$-2.reg
}
@ -2541,6 +2615,7 @@ w_append_path()
_W_NEW_PATH="$(printf %s "$1" | sed 's,\\\\,\\\\\\\\,g')"
_W_WIN_PATH="$(w_expand_env PATH | sed 's,\\\\,\\\\\\\\,g')"
# FIXME: OS X? https://github.com/Winetricks/winetricks/issues/697
sed 's/$/\r/' > "$W_TMP"/path.reg <<_EOF_
REGEDIT4
@ -2555,6 +2630,64 @@ _EOF_
#---- Private Functions ----
winetricks_dl_url_to_stdout()
{
# FIXME: get common downloader variables supported
# FIXME: --torify support as well
if [ "${WINETRICKS_DOWNLOADER}" = "wget" ] ; then
w_try wget -q -O - "$1"
elif [ "${WINETRICKS_DOWNLOADER}" = "curl" ] ; then
w_try curl -s "$1"
elif [ "${WINETRICKS_DOWNLOADER}" = "aria2c" ] ; then
# aria2c doesn't have support downloading to stdout:
# https://github.com/aria2/aria2/issues/190
# So instead, download to a temporary directory and cat the file:
stdout_tmpfile="${W_TMP_EARLY}/stdout.tmp"
if [ -e "${stdout_tmpfile}" ] ; then
w_try rm "${stdout_tmpfile}"
fi
aria2c \
--continue \
--daemon=false \
--dir="${W_TMP_EARLY}" \
--enable-rpc=false \
--input-file='' \
--max-connection-per-server=5 \
--out="stdout.tmp" \
--save-session='' \
--stream-piece-selector=geom \
"$1" > /dev/null
w_try cat "${stdout_tmpfile}"
w_try rm "${stdout_tmpfile}"
else
w_die "Please install aria2c, curl, or wget"
fi
}
winetricks_dl_warning() {
case $LANG in
ru*) _W_countrymsg="Скрипт определил, что ваш IP адрес принадлежит России. Если во время загрузки файлов вы увидите ошибки несоответствия сертификата, перезапустите скрипт с опцией '--torify' или скачайте файлы вручную, например, используя VPN." ;;
*) _W_countrymsg="Your IP address has been determined to belong to Russia. If you encounter a certificate error while downloading, please relaunch with the '--torify' option, or download files manually, for instance using VPN." ;;
esac
# Lookup own country via IP address only once (i.e. don't run this function for every download invocation)
if [ -z "$W_COUNTRY" ] ; then
W_COUNTRY="$(winetricks_dl_url_to_stdout "http://ipinfo.io/$(winetricks_dl_url_to_stdout "http://ipinfo.io/ip")" | awk -F '"' '/country/{print $4}')"
export W_COUNTRY
if [ -z "$W_COUNTRY" ] ; then
export W_COUNTRY="unknown"
fi
fi
# TODO: Resolve a full country name via https://github.com/umpirsky/country-list/tree/master/data
case "$W_COUNTRY" in
"RU") w_warn "$_W_countrymsg" ;;
*) : ;;
esac
}
winetricks_get_sha1sum_prog() {
# Mac folks tend to not have sha1sum, but we can make do with openssl
if [ -x "$(which sha1sum 2>/dev/null)" ]
@ -2590,18 +2723,12 @@ winetricks_latest_version_check()
return
fi
latest_file="${W_TMP_EARLY}/LATEST"
latest_version="$(winetricks_dl_url_to_stdout https://raw.githubusercontent.com/Winetricks/winetricks/master/files/LATEST)"
# Obviously, always redownload:
if [ -e "$latest_file" ] ; then
w_try rm "${latest_file}"
fi
# Also check that $latest_version is an actual number in case github is down
if [ ! -z "${latest_version}" ] && [ ! "$WINETRICKS_VERSION" = "${latest_version}" ] && \
echo "${latest_version}" | grep -E "[0-9]{8}" ; then
w_download_to ${W_TMP_EARLY} https://raw.githubusercontent.com/Winetricks/winetricks/master/files/LATEST
latest_version="$(cat "${latest_file}")"
if [ ! "$WINETRICKS_VERSION" = "${latest_version}" ] ; then
if [ -f "${WINETRICKS_CONFIG}/enable-auto-update" ] ; then
w_info "You are running winetricks-${WINETRICKS_VERSION}."
w_info "New upstream release winetricks-${latest_version} is available."
@ -2816,7 +2943,7 @@ winetricks_prefixmenu()
else
_W_msg_name="$p"
fi
case $LANG in
case $LANG in
zh_CN*) printf %s " FALSE prefix='$p' '选择管理 $_W_msg_name' " ;;
zh_TW*|zh_HK*) printf %s " FALSE prefix='$p' '選擇管理 $_W_msg_name' " ;;
de*) printf %s " FALSE prefix='$p' '$_W_msg_name auswählen' " ;;
@ -3382,7 +3509,7 @@ winetricks_showmenu()
;;
esac > "$WINETRICKS_WORKDIR"/zenity.sh
> "$WINETRICKS_WORKDIR"/installed.txt
true > "$WINETRICKS_WORKDIR"/installed.txt
for metadatafile in "$WINETRICKS_METADATA"/$WINETRICKS_CURMENU/*.vars
do
code=$(winetricks_metadata_basename "$metadatafile")
@ -3504,7 +3631,7 @@ winetricks_is_installed()
;;
*)
# Compute wineprefix for this app
case "$category"-"$WINETRICKS_OPT_SHAREDPREFIX" in
case "${category}-${WINETRICKS_OPT_SHAREDPREFIX}" in
apps-0|benchmarks-0|games-0)
_W_prefix="$W_PREFIXES_ROOT/$1"
;;
@ -3892,20 +4019,20 @@ winetricks_cache_iso()
WINETRICKS_DD_PID=$!
;;
esac
echo $WINETRICKS_DD_PID > "$WINETRICKS_WORKDIR"/dd-pid
echo "$WINETRICKS_DD_PID" > "$WINETRICKS_WORKDIR"/dd-pid
# Note: if user presses ^C, winetricks_cleanup will call winetricks_iso_cleanup
# FIXME: add progress bar for kde, too
case $WINETRICKS_GUI in
none|kdialog)
while ps -p $WINETRICKS_DD_PID > /dev/null 2>&1
while ps -p "$WINETRICKS_DD_PID" > /dev/null 2>&1
do
sleep 5
ls -l "$W_CACHE"/temp.iso
done
;;
zenity)
while ps -p $WINETRICKS_DD_PID > /dev/null 2>&1
while ps -p "$WINETRICKS_DD_PID" > /dev/null 2>&1
do
echo 1
sleep 2
@ -4488,6 +4615,7 @@ winetricks_init()
W_ISO_MOUNT_LETTER=i
WINETRICKS_WINE_VERSION=$(winetricks_early_wine --version | sed 's/.*wine/wine/')
# See also w_wine_version()
# A small hack...
case "$WINETRICKS_WINE_VERSION" in
wine-1.4-*) WINETRICKS_WINE_VERSION="wine-1.4.40"; export WINETRICKS_WINE_VERSION;;
@ -4496,12 +4624,16 @@ winetricks_init()
wine-1.6) WINETRICKS_WINE_VERSION="wine-1.6.0"; export WINETRICKS_WINE_VERSION;;
wine-1.8-*) WINETRICKS_WINE_VERSION="wine-1.8.0"; export WINETRICKS_WINE_VERSION;;
wine-1.8) WINETRICKS_WINE_VERSION="wine-1.8.0"; export WINETRICKS_WINE_VERSION;;
wine-2.0-*) WINETRICKS_WINE_VERSION="wine-1.10.0"; export WINETRICKS_WINE_VERSION;;
wine-2.0) WINETRICKS_WINE_VERSION="wine-1.10.0"; export WINETRICKS_WINE_VERSION;;
wine-3.0-*) WINETRICKS_WINE_VERSION="wine-1.11.0"; export WINETRICKS_WINE_VERSION;;
wine-3.0) WINETRICKS_WINE_VERSION="wine-1.11.0"; export WINETRICKS_WINE_VERSION;;
esac
WINETRICKS_WINE_MINOR=$(echo $WINETRICKS_WINE_VERSION | sed 's/wine-1\.\([0-9]*\)\..*/\1/')
WINETRICKS_WINE_MICRO=$(echo $WINETRICKS_WINE_VERSION | sed 's/wine-1.[0-9][0-9]*\.\([0-9]*\).*/\1/')
if [ ! "$WINETRICKS_SUPER_QUIET" ] ; then
echo "Using winetricks $(winetricks_print_version) with $WINETRICKS_WINE_VERSION"
echo "Using winetricks $(winetricks_print_version) with ${WINETRICKS_WINE_VERSION} and WINEARCH=${W_ARCH}"
fi
winetricks_latest_version_check
@ -5605,7 +5737,7 @@ load_directx9()
w_override_dlls native d3dx9_30 d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37
w_override_dlls native d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43 d3dxof
w_override_dlls native dciman32 ddrawex devenum dmband dmcompos dmime dmloader dmscript dmstyle
w_override_dlls native dmsynth dmusic dmusic32 dnsapi dplay dplayx dpnaddr dpnet dpnhpast dpnlobby
w_override_dlls native dmsynth dmusic dmusic32 dplay dplayx dpnaddr dpnet dpnhpast dpnlobby
w_override_dlls native dswave dxdiagn msdmo qcap quartz streamci
w_override_dlls native dxdiag.exe
w_override_dlls builtin d3d8 d3d9 dinput dinput8 dsound
@ -5869,12 +6001,6 @@ load_dotnet20()
# and http://bugs.winehq.org/show_bug.cgi?id=30845#c10
w_set_winver win2k
# FIXME: verify on pristine Windows XP:
if w_workaround_wine_bug 34803
then
"$WINE" reg delete 'HKLM\Software\Microsoft\.NETFramework\v2.0.50727\SBSDisabled' /f
fi
w_try_cd "$W_CACHE"/"$W_PACKAGE"
w_try "$WINE" dotnetfx.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"}
w_unset_winver
@ -6049,13 +6175,6 @@ load_dotnet20sp2()
w_call dotnet20
$WINESERVER -w
# FIXME: verify on pristine Windows XP:
if w_workaround_wine_bug 34803
then
"$WINE" reg delete 'HKLM\Software\Microsoft\.NETFramework\v2.0.50727\SBSDisabled' /f
fi
$WINESERVER -w
w_try_cd "$W_CACHE/$W_PACKAGE"
w_ahk_do "
SetTitleMatchMode, 2
@ -6133,8 +6252,6 @@ load_dotnet30()
w_call dotnet20
w_warn "Installing .NET 3.0 runtime takes 3 minutes on a very fast machine, and the Finished dialog may hide in the taskbar."
# AF's workaround to avoid long pause
LANGPACKS_BASE_PATH="${W_WINDIR_UNIX}/SYSMSICache/Framework/v3.0"
test -d "${LANGPACKS_BASE_PATH}" || mkdir -p "${LANGPACKS_BASE_PATH}"
@ -6154,7 +6271,8 @@ load_dotnet30()
WINEDLLOVERRIDES="ngen.exe,mscorsvw.exe=b;$WINEDLLOVERRIDES"
w_try_cd "$W_CACHE/$W_PACKAGE"
w_try "$WINE" "$file1" ${W_OPT_UNATTENDED:+ /q /c:"install.exe /q"}
w_warn "Installing .NET 3.0 runtime silently, as otherwise it gets hidden behind taskbar. Installation usually takes about 3 minutes."
w_try "$WINE" "$file1" /q /c:"install.exe /q"
# Doesn't install any ngen.exe
# W_NGEN_CMD=""
@ -6244,8 +6362,6 @@ load_dotnet35()
w_call msxml3
fi
"$WINE" reg delete "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5" /f
# See also http://blogs.msdn.com/astebner/archive/2008/07/17/8745415.aspx
w_try_cd "$W_TMP"
w_try_cabextract $W_UNATTENDED_DASH_Q "$W_CACHE"/dotnet35/dotnetfx35.exe
@ -6355,11 +6471,6 @@ load_dotnet40()
w_call remove_mono
# Remove Mono registry entry:
"$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f
w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll"
w_try_cd "$W_CACHE/$W_PACKAGE"
WINEDLLOVERRIDES=fusion=b "$WINE" dotNetFx40_Full_x86_x64.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} || true
@ -6403,11 +6514,6 @@ load_dotnet45()
w_call remove_mono
# Remove Mono registry entry:
"$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f
w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll"
# See https://appdb.winehq.org/objectManager.php?sClass=version&iId=25478 for Focht's recipe
w_call dotnet35
w_call dotnet40
@ -6462,11 +6568,6 @@ load_dotnet452()
w_call remove_mono
# Remove Mono registry entry:
"$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f
w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll"
# See https://appdb.winehq.org/objectManager.php?sClass=version&iId=25478 for Focht's recipe
w_call dotnet35
w_call dotnet40
@ -6518,11 +6619,6 @@ load_dotnet46()
w_call remove_mono
# Remove Mono registry entry:
"$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f
w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll"
w_call dotnet45
w_set_winver win7
@ -6550,28 +6646,122 @@ load_dotnet46()
#----------------------------------------------------------------
w_metadata dotnet461 dlls \
title="MS .NET 4.6.1" \
publisher="Microsoft" \
year="2015" \
media="download" \
file1="NDP461-KB3102436-x86-x64-AllOS-ENU.exe" \
conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet35sp1 dotnet40 dotnet46 vjrun20" \
installed_file1="c:/windows/Microsoft.NET/Framework/v4.0.30319/SetupCache/v4.6.01055/1041/SetupResources.dll"
load_dotnet461()
{
if [ $W_ARCH = win64 ]
then
w_warn "This package may not work on a 64-bit installation"
fi
# https://www.microsoft.com/en-au/download/details.aspx?id=49982
w_download https://download.microsoft.com/download/E/4/1/E4173890-A24A-4936-9FC9-AF930FE3FA40/NDP461-KB3102436-x86-x64-AllOS-ENU.exe 83d048d171ff44a3cad9b422137656f585295866
w_call remove_mono
w_call dotnet46
w_set_winver win7
w_try_cd "$W_CACHE/$W_PACKAGE"
WINEDLLOVERRIDES=fusion=b "$WINE" "$file1" ${W_OPT_UNATTENDED:+/q /norestart}
status=$?
echo "exit status: $status"
case $status in
0) ;;
105) echo "exit status $status - normal, user selected 'restart now'" ;;
194) echo "exit status $status - normal, user selected 'restart later'" ;;
*) w_die "exit status $status - $W_PACKAGE installation failed" ;;
esac
w_override_dlls native mscoree
}
#----------------------------------------------------------------
w_metadata dotnet462 dlls \
title="MS .NET 4.6.2" \
publisher="Microsoft" \
year="2016" \
media="download" \
conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet35sp1 dotnet40 dotnet46 dotnet461 vjrun20"
load_dotnet462()
{
if [ $W_ARCH = win64 ]
then
w_warn "This package may not work on a 64-bit installation"
fi
if w_workaround_wine_bug 42170 "Running un-official repacked .NET 4.6.2 setup until the official version is fixed."
then
# Un-official slim version. See http://repacks.net/forum/viewtopic.php?t=7
w_download http://repacks.net/uploads/dotNetFx462_Full_x86_x64_Slim.exe 1886c2b3b6eba37fcf79d59c9e5b100930150fda
file_package="dotNetFx462_Full_x86_x64_Slim.exe"
unattended_args="/ai /gm2"
else
# Official version. See https://www.microsoft.com/en-au/download/details.aspx?id=53344
w_download https://download.microsoft.com/download/F/9/4/F942F07D-F26F-4F30-B4E3-EBD54FABA377/NDP462-KB3151800-x86-x64-AllOS-ENU.exe a70f856bda33d45ad0a8ad035f73092441715431
file_package="NDP462-KB3151800-x86-x64-AllOS-ENU.exe"
unattended_args="/q /norestart"
fi
w_call remove_mono
w_call dotnet461
w_set_winver win7
w_try_cd "$W_CACHE/$W_PACKAGE"
WINEDLLOVERRIDES=fusion=b "$WINE" "$file_package" ${W_OPT_UNATTENDED:+$unattended_args}
status=$?
echo "exit status: $status"
case $status in
0) ;;
5) w_die "exit status $status - user selected 'Cancel'" ;;
*) w_die "exit status $status - $W_PACKAGE installation failed" ;;
esac
w_override_dlls native mscoree
}
#----------------------------------------------------------------
w_metadata dotnet_verifier dlls \
title="MS .NET Verifier" \
publisher="Microsoft" \
year="2012" \
year="2016" \
media="download" \
file1="netfx_5F00_setupverifier_5F00_new.zip" \
file1="netfx_setupverifier_new.zip" \
installed_file1="$W_SYSTEM32_DLLS_WIN/netfx_setupverifier.exe"
load_dotnet_verifier()
{
# http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx
# https://blogs.msdn.microsoft.com/astebner/2008/10/13/net-framework-setup-verification-tool-users-guide/
# 2013/03/28: sha1sum 0eba832a0733cd47b7639463dd5a22a41e95ee6e # netfx_5F00_setupverifier_5F00_new.zip
# 2014/01/23: sha1sum 8818f3460826145e2a66bb91727afa7cd531037b
# 2014/11/22: sha1sum 47de0b849c4c3d354df23588c709108e7816d788
# 2015/07/31: sha1sum 32f24526a5716737281dc260451b60a641b23c7e
# 2015/12/27: sha1sum b9712da2943e057668f21f68c473657a205c5cb8
# 2016/09/22: name change, to netfx_setupverifier_new_2015_12_18.zip
# 2016/10/26: sha1sum 6eef0158dc637d186d4ab5eb13aee6ef577831b2, adds .NET Framework 4.6.{1,2} support
w_download https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/08/99/90/04/netfx_setupverifier_new_2015_12_18.zip b9712da2943e057668f21f68c473657a205c5cb8 "${file1}"
w_download https://msdnshared.blob.core.windows.net/media/2016/10/netfx_setupverifier_new.zip 6eef0158dc637d186d4ab5eb13aee6ef577831b2 "${file1}"
w_try_cd "$W_CACHE/$W_PACKAGE"
w_try_unzip "$W_SYSTEM32_DLLS" netfx_5F00_setupverifier_5F00_new.zip netfx_setupverifier.exe
w_try_unzip "$W_SYSTEM32_DLLS" netfx_setupverifier_new.zip netfx_setupverifier.exe
w_warn "You can run the .Net Verifier with \"${WINE} netfx_setupverifier.exe\""
}
@ -6913,14 +7103,19 @@ load_dirac()
if ( w_opt_unattended > 0 ) {
ControlClick, Button2
WinWait, Dirac, License
Sleep 1000
ControlClick, Button2
WinWait, Dirac, Location
Sleep 1000
ControlClick, Button2
WinWait, Dirac, Components
Sleep 1000
ControlClick, Button2
WinWait, Dirac, environment
Sleep 1000
ControlCLick, Button1
WinWait, Dirac, installed
Sleep 1000
ControlClick, Button2
}
WinWaitClose
@ -7944,8 +8139,6 @@ w_metadata remove_mono settings \
load_remove_mono()
{
# FIXME: fold other .NET cleanups here (registry entries).
# Probably should only do that for wine >= 1.5.6
mono_uuid="$($WINE uninstaller --list | grep Mono | cut -f1 -d\|)"
if test "$mono_uuid"
then
@ -7953,6 +8146,17 @@ load_remove_mono()
else
w_warn "Mono does not appear to be installed."
fi
# FIXME: verify on pristine Windows XP:
if w_workaround_wine_bug 34803
then
"$WINE" reg delete 'HKLM\Software\Microsoft\.NETFramework\v2.0.50727\SBSDisabled' /f
fi
"$WINE" reg delete "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5" /f || true
"$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f || true
w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll"
}
#----------------------------------------------------------------
@ -8515,6 +8719,30 @@ load_vcrun2008()
w_override_dlls native,builtin atl90 msvcm90 msvcp90 msvcr90 vcomp90
w_try_cd "$W_CACHE/$W_PACKAGE"
w_try "$WINE" "$file1" $W_UNATTENDED_SLASH_Q
case "$W_ARCH" in
win64)
# Also install the 64-bit version
# 2016/11/15: a7c83077b8a28d409e36316d2d7321fa0ccdb7e8
w_download https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe a7c83077b8a28d409e36316d2d7321fa0ccdb7e8
if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls"
then
rm -f "$W_TMP"/* # Avoid permission error
w_try_cabextract --directory="$W_TMP" vcredist_x64.exe
w_try_cabextract --directory="$W_TMP" "$W_TMP/vc_red.cab"
w_try cp "$W_TMP"/atl90.dll.30729.6161.Microsoft_VC90_ATL_x64.QFE "$W_SYSTEM64_DLLS"/atl90.dll
w_try cp "$W_TMP"/mfc90.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "$W_SYSTEM64_DLLS"/mfc90.dll
w_try cp "$W_TMP"/mfcm90.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "$W_SYSTEM64_DLLS"/mfcm90.dll
w_try cp "$W_TMP"/msvcm90.dll.30729.6161.Microsoft_VC90_CRT_x64.QFE "$W_SYSTEM64_DLLS"/msvcm90.dll
w_try cp "$W_TMP"/msvcp90.dll.30729.6161.Microsoft_VC90_CRT_x64.QFE "$W_SYSTEM64_DLLS"/msvcp90.dll
w_try cp "$W_TMP"/msvcr90.dll.30729.6161.Microsoft_VC90_CRT_x64.QFE "$W_SYSTEM64_DLLS"/msvcr90.dll
w_try cp "$W_TMP"/vcomp90.dll.30729.6161.Microsoft_VC90_OpenMP_x64.QFE "$W_SYSTEM64_DLLS"/vcomp90.dll
else
w_try "$WINE" vcredist_x64.exe $W_UNATTENDED_SLASH_Q
fi
;;
esac
}
#----------------------------------------------------------------
@ -8666,7 +8894,7 @@ load_vcrun2015()
w_warn "This may fail in non-XP mode, see https://bugs.winehq.org/show_bug.cgi?id=37781"
fi
w_override_dlls native,builtin api-ms-win-crt-conio-l1-1-0 api-ms-win-crt-heap-l1-1-0 api-ms-win-crt-locale-l1-1-0 api-ms-win-crt-math-l1-1-0 api-ms-win-crt-runtime-l1-1-0 api-ms-win-crt-stdio-l1-1-0 atl140 msvcp140 msvcr140 ucrtbase vcomp140 vcruntime140
w_override_dlls native,builtin api-ms-win-crt-conio-l1-1-0 api-ms-win-crt-heap-l1-1-0 api-ms-win-crt-locale-l1-1-0 api-ms-win-crt-math-l1-1-0 api-ms-win-crt-runtime-l1-1-0 api-ms-win-crt-stdio-l1-1-0 api-ms-win-crt-time-l1-1-0 atl140 concrt140 msvcp140 msvcr140 ucrtbase vcomp140 vcruntime140
w_try_cd "$W_CACHE"/"$W_PACKAGE"
w_try "$WINE" vc_redist.x86.exe $W_UNATTENDED_SLASH_Q
@ -9394,7 +9622,7 @@ w_metadata droid fonts \
installed_file1="$W_FONTSDIR_WIN/DroidSans-Bold.ttf"
do_droid() {
w_download "${DROID_URL}$1'?raw=true'" "$3" "$1"
w_download "${DROID_URL}${1}?raw=true" "${3}" "${1}"
w_try cp -f "$W_CACHE/droid/$1" "$W_FONTSDIR_UNIX"
w_register_font "$1" "$2"
}
@ -10306,15 +10534,15 @@ load_iceweasel()
w_metadata irfanview apps \
title="Irfanview" \
publisher="Irfan Skiljan" \
year="2014" \
year="2016" \
media="download" \
file1="iview438_setup.exe" \
file1="iview444_setup.exe" \
installed_file1="$W_PROGRAMS_X86_WIN/IrfanView/i_view32.exe" \
homepage="http://www.irfanview.com/"
load_irfanview()
{
w_download http://fossies.org/windows/misc/iview438_setup.exe c55c2fd91ac1af03e8063442b110ba771357d42e
w_download http://download.betanews.com/download/967963863-1/iview444_setup.exe d9675c2c4fce810134718b74b0c598957c8ebcf4
if w_workaround_wine_bug 657 "Installing mfc42"
then
w_call mfc42
@ -10343,16 +10571,10 @@ load_irfanview()
ControlClick, Button1 ; Images Only associations
Sleep 900
ControlClick, Button16 ; Next
Sleep 900
winwait, Setup, Search
Sleep 900
ControlClick, Button1 ; deselect chrome googsrch
Sleep 900
ControlClick, Button18 ; Next
Sleep 1000
winwait, Setup, INI
Sleep 1000
ControlClick, Button23 ; Next
ControlClick, Button21 ; Next
Sleep 1000
winwait, Setup, You want to change
winactivate, Setup, really
@ -10362,9 +10584,11 @@ load_irfanview()
winwait, Setup, successful
winactivate, Setup, successful
Sleep 900
ControlClick, Button1 ; no load webpage
Sleep 900
ControlClick, Button2 ; no start irfanview
Sleep 900
ControlClick, Button27 ; done
ControlClick, Button25 ; done
Sleep 900
winwaitclose
"
@ -10795,11 +11019,11 @@ load_mt4()
w_try_cd "$W_CACHE/$W_PACKAGE"
w_ahk_do "
Run, ${file1}
WinWait, MetaTrader 4 Setup, license agreement
WinWait, MetaTrader Setup, license agreement
ControlClick, Button1
Sleep 100
ControlClick, Button3
WinWait, MetaTrader 4 Setup, Installation successfully completed
WinWait, MetaTrader Setup, Installation successfully completed
ControlClick, Button4
Process, Wait, terminal.exe
Process, Close, terminal.exe
@ -10956,23 +11180,6 @@ $W_CACHE/$W_PACKAGE/key.txt and rerun."
#----------------------------------------------------------------
w_metadata opera apps \
title="Opera 11" \
publisher="Opera Software" \
year="2011" \
media="download" \
file1="Opera_1150_en_Setup.exe" \
installed_exe1="$W_PROGRAMS_X86_WIN/Opera/opera.exe"
load_opera()
{
w_download ftp://ftp.opera.com/pub/opera/win/1150/en/Opera_1150_en_Setup.exe df50c7aed50e92af858e8834f833dd0543014b46
w_try_cd "$W_CACHE/$W_PACKAGE"
w_try "$WINE" "$file1" ${W_OPT_UNATTENDED:+ /silent /launchopera 0 /allusers}
}
#----------------------------------------------------------------
w_metadata picasa39 apps \
title="Picasa 3.9" \
publisher="Google" \
@ -11198,11 +11405,6 @@ load_python26()
w_download http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi 2d1503b0e8b7e4c72a276d4d9027cf4856b208b8
w_download $WINETRICKS_SOURCEFORGE/project/pywin32/pywin32/Build%20214/pywin32-214.win32-py2.6.exe eca58f29b810d8e3e7951277ebb3e35ac35794a3
if [ "$WINETRICKS_WINE_VERSION" = "wine-1.4.1" ]
then
w_die "This installer is broken under $WINETRICKS_WINE_VERSION. Please upgrade Wine. See https://code.google.com/p/winetricks/issues/detail?id=347 for more info."
fi
w_try_cd "$W_CACHE/$W_PACKAGE"
w_try "$WINE" msiexec /i python-2.6.2.msi ALLUSERS=1 $W_UNATTENDED_SLASH_Q
@ -11560,7 +11762,7 @@ w_metadata vc2005trial apps \
load_vc2005trial()
{
w_call dotnet20
# Without mfc42.dll, pidgen.dll won't load, and the app claims "A trial edition is already installed..."
w_call mfc42
@ -14882,39 +15084,6 @@ load_gta_vc()
#----------------------------------------------------------------
w_metadata guildwars games \
title="Guild Wars" \
publisher="NCsoft" \
year="2005" \
media="download" \
file1="GwSetup.exe" \
installed_exe1="$W_PROGRAMS_X86_WIN/Guild Wars/Gw.exe" \
homepage="http://www.guildwars.com"
load_guildwars()
{
w_download "http://guildwars.com/download/" a7c4c8cb3b8cbee20707dcf8176d3da6a1686c05 GwSetup.exe
w_try_cd "$W_CACHE/$W_PACKAGE"
w_ahk_do "
Run, GwSetup.exe
WinWait, ahk_class ArenaNet_Dialog_Class
if ( w_opt_unattended > 0 ) {
; Wait for network connection to finish. This might need to be longer. Can we detect this better?
Sleep 6000
; For some reason, the OK doesn't take for me unless I activate the window first
WinActivate
Send {Enter}
; Installation takes a long time... and then starts the game, which we don't want.
}
WinWait, ahk_class ArenaNet_Dx_Window_Class
Sleep 4000
WinClose, ahk_class ArenaNet_Dx_Window_Class
"
}
#----------------------------------------------------------------
w_metadata hegemonygold_demo games \
title="Hegemony Gold" \
publisher="Longbow Games" \
@ -17899,7 +18068,7 @@ load_civ5_demo_steam()
# finds the dialog it's looking for, clicks, and exits.
w_info "If you already own the full Civ 5 game on Steam, the installer won't even appear."
w_steam_install_game 65900 "Sid Meier's Civilization V - Demo"
kill -s HUP $_job # just in case
kill -s HUP "$_job" # just in case
}
#----------------------------------------------------------------
@ -18112,6 +18281,21 @@ load_ao()
winetricks_set_wined3d_var AlwaysOffscreen "$1"
}
#----------------------------------------------------------------
# CheckFloatConstants settings
w_metadata cfc=enabled settings \
title_uk="Включити CheckFloatConstants" \
title="Enable CheckFloatConstants"
w_metadata cfc=disable settings \
title_uk="Вимкнути CheckFloatConstants (за замовчуванням)" \
title="Disable CheckFloatConstants (default)"
load_cfc()
{
winetricks_set_wined3d_var CheckFloatConstants "$1"
}
#----------------------------------------------------------------
# DirectDraw settings
@ -18822,6 +19006,30 @@ load_winxp()
#----------------------------------------------------------------
# Not really a setting, just a fake verb, that shouldn't count as 'installed',
# that always works
w_metadata good settings \
title="Fake verb that always returns true"
load_good()
{
w_info "$W_PACKAGE succeeded!"
}
#----------------------------------------------------------------
# Not really a setting, just a fake verb, that shouldn't count as 'installed',
# that always fails
w_metadata bad settings \
title="Fake verb that always returns false"
load_bad()
{
w_die "$W_PACKAGE failed!"
}
#---- Derived Metadata ----
# Generated automatically by measuring time and space requirements of all verbs
# size_MB includes size of virgin wineprefix, but not the cached installer
@ -19124,6 +19332,7 @@ winetricks_stats_report()
report="$(echo "$report" | sed 's/ /%20/g')"
# Just do a HEAD request with the raw command line.
# Yes, this can be fooled by caches. That's ok.
# FIXME: get common downloader variables supported
if [ -x "$(which wget 2>/dev/null)" ]
then
wget --spider "http://kegel.com/data/winetricks-usage?$report" > /dev/null 2>&1 || true
@ -19342,7 +19551,7 @@ then
if test "$verbs" = ""
then
# "user didn't pick anything, back up a level in the menu"
case "$WINETRICKS_CURMENU"-"$WINETRICKS_OPT_SHAREDPREFIX" in
case "${WINETRICKS_CURMENU}-${WINETRICKS_OPT_SHAREDPREFIX}" in
apps-0|benchmarks-0|games-0|main-*) WINETRICKS_CURMENU=prefix ;;
prefix-*) break ;;
*) WINETRICKS_CURMENU=main ;;
@ -19365,7 +19574,7 @@ then
do
execute_command "$verb"
done
case "$WINETRICKS_CURMENU"-"$WINETRICKS_OPT_SHAREDPREFIX" in
case "${WINETRICKS_CURMENU}-${WINETRICKS_OPT_SHAREDPREFIX}" in
prefix-*|apps-0|benchmarks-0|games-0)
# After installing isolated app, return to prefix picker
WINETRICKS_CURMENU=prefix