Marcus Meissner 2017-06-25 19:24:09 +00:00 committed by Git OBS Bridge
parent 49861fcbfe
commit 419fbfa1e3
7 changed files with 231 additions and 254 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:488df7ffd2e81da455bf428fc9eb784bb4273a890334500895665711bd52f179
size 19209580

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE2iNXmnTUrZr50/lFzvrI6q8XUZ0FAlk63hIACgkQzvrI6q8X
UZ0yvQ/7BFNtOn2u8M44JKYfOUFWWD9r2SfKh0OpsNay+lM6Nsf+Ik+U2+9rQxXn
9RSTe/48oJKZiv+bSxXrAjFAoGF3UBlwnyn4ug2tGERNuw7tbjmfFblBjFBDF+dw
jntVLtZpZSa9nPKP4tWQ12a7AoNif8XHyXzs79pU9xfcRFIJZYhKn8La6OaxtU7b
+cInTZ+AzlpK3Qi/SsNIAH1i6nZ5J2amkCDYj5alQE95tnNnzM62vurlnpehAiUG
TJdVld+WRpKhKvnxyCsz559WbZb6TEuEZkURp2hEK8UGfeJ5vMk6fbpqs9mzszR/
c+X+MfIGdNSq4J77Pchm/NkDPCnVL1aQQ0AkDuPikWavel9ea6iVs0BDpJUW9Uzo
XcT1YhS46FMgTFqgWTFvCVWR1Skfj4Ko8az5EmsgR0TeuDlsYA4A3gHLBojZ40+H
mvtND5ummqdtc/IT2pnnC54s8DrwTvExJnYKSFPue2Nbid3YK+BNqOSuiNrsAQ3Z
DOqtlBbxj43JjTHzCIfDnn4dqBRbvFz5oPLTC2HQ+fbdczSC2JSse/yawhf6SPHy
O/IyJDIN57bpz1gGi3AE6y+JUWNwODkPFnw28EVyf8rSFf60658ZB4TbpGzTtMXQ
VDBe3zLpOqbHE7xWyVzzB/DEbalpBikjZtnOWmIfz3lSGKeNt+c=
=gbhq
-----END PGP SIGNATURE-----

3
wine-2.11.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:efa96dade206aa21accf0da195335a805d38209d6a14320607c6308ebde4cc3c
size 19251116

16
wine-2.11.tar.xz.sign Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE2iNXmnTUrZr50/lFzvrI6q8XUZ0FAllNWL8ACgkQzvrI6q8X
UZ3uKw//Q1V0e30uC8P4wZqGKOBteF2E+JawygfAncInfx4P8VgK4rIA6bgacWYP
bn73aziWAds3Nhzqx8VlnIBwWZ3c/e0Wv2vwUbSbwoZxxNfmGv4GyFYq/LxA6hUh
dbxcRoYa42Nr+IXDiz3Z9kVfchxaJIG1t31Q/yJ2lXw3AVN1PZWHHxGpsC1fdQV5
ikELKKIU2R3S4mM5kAhsjeM9it7IxrAZIr1GBIvdsEIV39Auo6PQ3l/DP0ADEgd8
8MEU3JIEH6tpFDd6/G2w4wjjGfXDo+KlhjzURrWY0MgOh99+L9C6IpD8gCpoPyIy
mQBuEVMqwZZLh1w9KoWbZ8Bbje4mMTE0zcoEBZ/WIrDMkCrRuiJSzOnQN2gNXn/J
xaI+aeHeQ2Ql1HfcSMZ5tvPAnjhruK4CL/1HTq5DESKZOm0X4GORNZxe2ApKairG
xSJQO+vRSGAQjOzD1UJDdtxToOov+NBFKD+UGAtqYNdmxymy6N6NT9t89LkEP664
84eHpB4ri/rVAGVIojXlzEWWoR4+224oUL/7b+eeW4Q52oYCiqvNbj9hKlSOZJFS
68Y74te+HLNUZ90qiRuI3TPAJt26GDGr8w60PHIMCWc13XCKzpZysk9/89En7GC/
OJv/pa3VBc7fJqJw52CWgyy3M+hR9c1INzkJKmZ3bs4M/cr4gZs=
=Wove
-----END PGP SIGNATURE-----

View File

@ -61,8 +61,8 @@ BuildRequires: update-desktop-files
BuildRequires: valgrind-devel
BuildRequires: xorg-x11-devel
BuildRequires: pkgconfig(libudev)
%define realver 2.10
Version: 2.10
%define realver 2.11
Version: 2.11
Release: 0
Summary: An MS Windows Emulator
License: LGPL-2.1+

View File

@ -6,7 +6,7 @@
# Name of this version of winetricks (YYYYMMDD)
# (This doesn't change often, use the sha256sum of the file when reporting problems)
WINETRICKS_VERSION=20170517-next
WINETRICKS_VERSION=20170614-next
# This is a UTF-8 file
# You should see an o with two dots over it here [ö]
@ -148,7 +148,6 @@ WINETRICKS_VERSION=20170517-next
#
# 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
@ -166,11 +165,9 @@ W_COUNTRY=""
W_PREFIXES_ROOT="${WINE_PREFIXES:-$XDG_DATA_HOME/wineprefixes}"
# For temp files before $WINEPREFIX is available:
if [ -x "$(which mktemp 2>/dev/null)" ]
then
if [ -x "$(which mktemp 2>/dev/null)" ] ; then
W_TMP_EARLY="$(mktemp -d "${TMPDIR:-/tmp}/winetricks.XXXXXXXX")"
elif [ -w "$TMPDIR" ]
then
elif [ -w "$TMPDIR" ] ; then
W_TMP_EARLY="$TMPDIR"
else
W_TMP_EARLY="/tmp"
@ -299,8 +296,7 @@ w_package_broken_win64()
# Optional:
bug_link="$1"
if [ "$W_ARCH" = "win64" ]
then
if [ "$W_ARCH" = "win64" ] ; then
if [ -n "$1" ] ; then
w_die "This package is broken on 64-bit Wine. Using a prefix made with WINEARCH=win32 to work around this. See: ${bug_link}"
else
@ -313,8 +309,7 @@ w_package_broken_win64()
# Note: this is for packages that natively don't support win64, not packages that are broken on wine64, for that, use w_package_broken_win64()
w_package_unsupported_win64()
{
if [ "$W_ARCH" = "win64" ]
then
if [ "$W_ARCH" = "win64" ] ; then
w_die "This package does not work on a 64-bit installation. You must use a prefix made with WINEARCH=win32."
fi
}
@ -322,8 +317,7 @@ w_package_unsupported_win64()
# For packages that are not well tested or have some known issues on win64, but aren't broken
w_package_warn_win64()
{
if [ "$W_ARCH" = "win64" ]
then
if [ "$W_ARCH" = "win64" ] ; then
w_warn "This package may not fully work on a 64-bit installation. 32-bit prefixes may work better."
fi
}
@ -601,8 +595,7 @@ w_get_sha1sum()
# See https://github.com/Winetricks/winetricks/issues/645
# User is running winetricks from /dev/stdin
if [ -f "$_W_sha1_file" ] || [ -h "$_W_sha1_file" ]
then
if [ -f "$_W_sha1_file" ] || [ -h "$_W_sha1_file" ] ; then
_W_gotsha1sum=$($WINETRICKS_SHA1SUM < "$_W_sha1_file" | sed 's/(stdin)= //;s/ .*//')
w_get_sha256sum "$_W_sha1_file"
else
@ -622,8 +615,7 @@ w_get_sha256sum()
# See https://github.com/Winetricks/winetricks/issues/645
# User is running winetricks from /dev/stdin
if [ -f "$_W_sha256_file" ] || [ -h "$_W_sha256_file" ]
then
if [ -f "$_W_sha256_file" ] || [ -h "$_W_sha256_file" ] ; then
_W_gotsha256sum=$($WINETRICKS_SHA256SUM < "$_W_sha256_file" | sed 's/(stdin)= //;s/ .*//')
else
w_warn "$_W_sha256_file is not a regular file, not checking sha256sum"
@ -654,8 +646,7 @@ w_verify_sha1sum()
_W_vs_file=$2
w_get_sha1sum "$_W_vs_file"
if [ "$_W_gotsha1sum"x != "$_W_vs_wantsum"x ]
then
if [ "$_W_gotsha1sum"x != "$_W_vs_wantsum"x ] ; then
w_die "sha1sum mismatch! Rename $_W_vs_file and try again."
fi
unset _W_vs_wantsum _W_vs_file _W_gotsha1sum
@ -668,8 +659,7 @@ w_verify_sha256sum()
_W_vs_file=$2
w_get_sha256sum "$_W_vs_file"
if [ "$_W_gotsha256sum"x != "$_W_vs_wantsum"x ]
then
if [ "$_W_gotsha256sum"x != "$_W_vs_wantsum"x ] ; then
w_die "sha256sum mismatch! Rename $_W_vs_file and try again."
fi
unset _W_vs_wantsum _W_vs_file _W_gotsha256sum
@ -896,12 +886,10 @@ w_download_to()
.) w_die "bug: please do not download packages to top of cache" ;;
esac
if echo "$_W_url" | grep ' '
then
if echo "$_W_url" | grep ' ' ; then
w_die "bug: please use %20 instead of literal spaces in urls, curl rejects spaces, and they make life harder for linkcheck.sh"
fi
if [ "$_W_file"x = ""x ]
then
if [ "$_W_file"x = ""x ] ; then
_W_file=$(basename "$_W_url")
fi
@ -917,31 +905,25 @@ w_download_to()
fi
fi
if test ! -d "$_W_cache"
then
if test ! -d "$_W_cache" ; then
w_try mkdir -p "$_W_cache"
fi
# Try download twice
checksum_ok=""
tries=0
while test $tries -lt 2
do
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"
then
if test "$_W_sum"
then
if test $tries = 1
then
if test -s "$_W_cache/$_W_file" ; then
if test "$_W_sum" ; then
if test $tries = 1 ; then
# The cache was full. If the file is larger than 500 MB,
# don't checksum it, that just annoys the user.
# shellcheck disable=SC2046
if test $(du -k "$_W_cache/$_W_file" | cut -f1) -gt 500000
then
if test $(du -k "$_W_cache/$_W_file" | cut -f1) -gt 500000 ; then
checksum_ok=1
break
fi
@ -953,24 +935,21 @@ w_download_to()
;;
sha1)
w_get_sha1sum "$_W_cache/$_W_file"
if [ "$_W_gotsha1sum"x = "$_W_sum"x ]
then
if [ "$_W_gotsha1sum"x = "$_W_sum"x ] ; then
checksum_ok=1
break
fi
;;
sha256)
w_get_sha256sum "$_W_cache/$_W_file"
if [ "$_W_gotsha256sum"x = "$_W_sum"x ]
then
if [ "$_W_gotsha256sum"x = "$_W_sum"x ] ; then
checksum_ok=1
break
fi
;;
esac
if test ! "$WINETRICKS_CONTINUE_DOWNLOAD"
then
if test ! "$WINETRICKS_CONTINUE_DOWNLOAD" ; then
w_warn "Checksum for $_W_cache/$_W_file did not match, retrying download"
mv -f "$_W_cache/$_W_file" "$_W_cache/$_W_file".bak
fi
@ -978,8 +957,7 @@ w_download_to()
# file exists, no checksum known, declare success and exit loop
break
fi
elif test -f "$_W_cache/$_W_file"
then
elif test -f "$_W_cache/$_W_file" ; then
# zero-length file, just delete before retrying
rm "$_W_cache/$_W_file"
fi
@ -996,8 +974,7 @@ w_download_to()
*) _W_agent="" ;;
esac
if [ "${WINETRICKS_DOWNLOADER}" = "aria2c" ]
then
if [ "${WINETRICKS_DOWNLOADER}" = "aria2c" ] ; then
# Note: aria2c wants = for most options or silently fails
# (Slightly fancy) aria2c support
@ -1024,8 +1001,7 @@ w_download_to()
--save-session='' \
--stream-piece-selector=geom \
"$_W_url"
elif [ "${WINETRICKS_DOWNLOADER}" = "wget" ]
then
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
# system when downloading corefonts
@ -1045,8 +1021,7 @@ w_download_to()
${_W_cookiejar:+--load-cookies "$_W_cookiejar"} \
${_W_agent:+--user-agent="$_W_agent"} \
"$_W_url"
elif [ "${WINETRICKS_DOWNLOADER}" = "curl" ]
then
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!
@ -1062,8 +1037,7 @@ w_download_to()
${_W_cookiejar:+--cookie "$_W_cookiejar"} \
${_W_agent:+--user-agent "$_W_agent"} \
"$_W_url"
elif [ "${WINETRICKS_DOWNLOADER}" = "fetch" ]
then
elif [ "${WINETRICKS_DOWNLOADER}" = "fetch" ] ; then
# Note: fetch does not support configurable retry count
# shellcheck disable=SC2086
@ -1075,8 +1049,8 @@ w_download_to()
else
w_die "Here be dragons"
fi
if test $? = 0
then
if test $? = 0 ; then
# Need to decompress .exe's that are compressed, else Cygwin fails
# Also affects ttf files on github
# FIXME: gzip hack below may no longer be needed, but need to investigate before removing
@ -1113,11 +1087,9 @@ w_download_to()
# Usage: w_open_folder directory
w_open_folder()
{
for _W_cmd in xdg-open open cygstart true
do
for _W_cmd in xdg-open open cygstart true ; do
_W_cmdpath=$(which $_W_cmd)
if test -n "$_W_cmdpath"
then
if test -n "$_W_cmdpath" ; then
break
fi
done
@ -1130,11 +1102,9 @@ w_open_folder()
w_open_webpage()
{
# See https://www.dwheeler.com/essays/open-files-urls.html
for _W_cmd in xdg-open sdtwebclient cygstart open firefox true
do
for _W_cmd in xdg-open sdtwebclient cygstart open firefox true ; do
_W_cmdpath=$(which $_W_cmd)
if test -n "$_W_cmdpath"
then
if test -n "$_W_cmdpath" ; then
break
fi
done
@ -1164,12 +1134,10 @@ w_download_torrent()
UT_WINPATH="$W_CACHE_WIN\\$W_PACKAGE"
w_try_cd "$W_CACHE/$W_PACKAGE"
if [ "$2"x != ""x ] # foo.torrent parameter supplied
then
if [ "$2"x != ""x ] ; then # foo.torrent parameter supplied
w_try "$WINE" utorrent "/DIRECTORY" "$UT_WINPATH" "$UT_WINPATH\\$2" &
else # grab all torrents
for torrent in *.torrent
do
for torrent in *.torrent ; do
w_try "$WINE" utorrent "/DIRECTORY" "$UT_WINPATH" "$UT_WINPATH\\$torrent" &
done
fi
@ -1352,8 +1320,7 @@ dump_container(\%top, "\t");
print "}\n";
_EOF_
for file in userdata/*/config/localconfig.vdf
do
for file in userdata/*/config/localconfig.vdf ; do
cp "$file" "$file.old"
perl "$W_TMP"/steamconfig.pl "$file.old" > "$file"
done
@ -1775,6 +1742,53 @@ w_skip_windows()
return 1
}
# for common code in w_override_dlls and w_override_app_dlls
w_common_override_dll()
{
_W_mode="$1"
module="$2"
# Remove wine's builtin manifest, if present. Use:
# wineboot ; find "$WINEPREFIX"/drive_c/windows/winsxs/ -iname *manifest | grep deadbeef | sort
case "$W_PACKAGE" in
comctl32)
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest
;;
vcrun2005)
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/amd64_microsoft.vc80.atl_1fc8b3b9a1e18e3b_8.0.50727.4053_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc80.atl_1fc8b3b9a1e18e3b_8.0.50727.4053_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_deadbeef.manifest
# These are 32-bit only?
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.6195_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc80.mfcloc_1fc8b3b9a1e18e3b_8.0.50727.6195_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc80.openmp_1fc8b3b9a1e18e3b_8.0.50727.6195_none_deadbeef.manifest
;;
vcrun2008)
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/amd64_microsoft.vc90.atl_1fc8b3b9a1e18e3b_9.0.30729.6161_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc90.atl_1fc8b3b9a1e18e3b_9.0.30729.6161_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_deadbeef.manifest
# These are 32-bit only?
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc90.mfc_1fc8b3b9a1e18e3b_9.0.30729.6161_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc90.mfcloc_1fc8b3b9a1e18e3b_9.0.30729.6161_none_deadbeef.manifest
w_try rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.vc90.openmp_1fc8b3b9a1e18e3b_9.0.30729.6161_none_deadbeef.manifest
;;
esac
if [ "$_W_mode" = default ] ; then
# To delete a registry key, give an unquoted dash as value
echo "\"*$module\"=-" >> "$W_TMP"/override-dll.reg
else
# Note: if you want to override even DLLs loaded with an absolute
# path, you need to add an asterisk:
echo "\"*$module\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
fi
}
w_override_dlls()
{
w_skip_windows w_override_dlls && return
@ -1787,7 +1801,9 @@ Usage: 'w_override_dlls mode[,mode] dll ...'." ;;
disabled)
_W_mode="" ;;
esac
shift
echo "Using $_W_mode override for following DLLs: $*"
cat > "$W_TMP"/override-dll.reg <<_EOF_
REGEDIT4
@ -1796,23 +1812,7 @@ REGEDIT4
_EOF_
while test "$1" != ""
do
case "$1" in
comctl32)
rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest
;;
esac
if [ "$_W_mode" = default ]
then
# To delete a registry key, give an unquoted dash as value
echo "\"*$1\"=-" >> "$W_TMP"/override-dll.reg
else
# Note: if you want to override even DLLs loaded with an absolute
# path, you need to add an asterisk:
echo "\"*$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
#echo "\"$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
fi
w_common_override_dll "$_W_mode" "$1"
shift
done
@ -2161,26 +2161,12 @@ Usage: 'w_override_app_dlls app mode dll ...'." ;;
while test "$1" != ""
do
case "$1" in
comctl32)
rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest
;;
esac
if [ "$_W_mode" = default ]
then
# To delete a registry key, give an unquoted dash as value
echo "\"*$1\"=-" >> "$W_TMP"/override-dll.reg
else
# Note: if you want to override even DLLs loaded with an absolute
# path, you need to add an asterisk:
echo "\"*$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
#echo "\"$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
fi
w_common_override_dll "$_W_mode" "$1"
shift
done
w_try_regedit "$W_TMP_WIN"\\override-dll.reg
rm "$W_TMP"/override-dll.reg
w_try rm "$W_TMP"/override-dll.reg
unset _W_app _W_mode
}
@ -2385,60 +2371,46 @@ w_set_app_winver()
unset _W_app
}
# Usage: w_wine_version OP VALUE
# All the integer comparison operators of 'test' are supported, since 'test' does the work.
# Usage: w_compare_wine_version OP VALUE
# Note: currently only -ge and -le are supported,
# as well as the special case -bn (between)
# Example:
# if w_wine_version -gt 1.3.2
# then
# if w_compare_wine_version -gt 2.5 ; then
# ...
# fi
w_wine_version()
w_compare_wine_version()
{
# 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/.*\.//');;
1.2) _W_minor=2; _W_micro=0;;
1.2.*) _W_minor=2; _W_micro=$(echo "$2" | sed 's/.*\.//');;
1.3.*) _W_minor=3; _W_micro=$(echo "$2" | sed 's/.*\.//');;
1.4) _W_minor=4; _W_micro=0;;
1.4.*) _W_minor=4; _W_micro=$(echo "$2" | sed 's/.*\.//');;
1.5.*) _W_minor=5; _W_micro=$(echo "$2" | sed 's/.*\.//');;
1.6|1.6-rc*) _W_minor=6; _W_micro=0;;
1.6.*) _W_minor=6; _W_micro=$(echo "$2" | sed 's/.*\.//');;
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/.*\.//');;
comparison="$1"
known_wine_val1="$2"
known_wine_val2="$3"
# 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";;
case "$comparison" in
# expected value if the comparison is true
-bn) _expected_pos_current_wine="2"
_wine_versions_string="${known_wine_val1}\n${_wine_version_stripped}\n${known_wine_val2}"
;;
-ge) _expected_pos_current_wine="2"
_wine_versions_string="${known_wine_val1}\n${_wine_version_stripped}"
;;
-le) _expected_pos_current_wine="1"
_wine_versions_string="${known_wine_val1}\n${_wine_version_stripped}"
;;
*) w_die "Unsupported comparison. Only -ge and -le are supported" ;;
esac
# Comparing current wine version 1.$WINETRICKS_WINE_MINOR.$WINETRICKS_WINE_MICRO against 1.$_W_minor.$_W_micro
if test "$WINETRICKS_WINE_MINOR" = "$_W_minor"
then
test "$WINETRICKS_WINE_MICRO" "$1" "$_W_micro" || return 1
# shellcheck disable=SC2039
_pos_current_wine="$(echo -e "${_wine_versions_string}" | sort -V | grep -n "^${_wine_version_stripped}\$" | cut -d : -f1)"
if [ "$_pos_current_wine" = "$_expected_pos_current_wine" ] ; then
#echo "true: known_wine_version=$2, comparison=$1, stripped wine=$_wine_version_stripped, expected_pos=$_expected_pos_known, pos_known=$_pos_known_wine"
#echo "Wine version comparison is true"
return 1
else
test "$WINETRICKS_WINE_MINOR" "$1" "$_W_minor" || return 1
#echo "false: known_wine_version=$2, comparison=$1, stripped wine=$_wine_version_stripped, expected_pos=$_expected_pos_known, pos_known=$_pos_known_wine"
#echo "Wine version comparison is false"
return 0
fi
}
# Built-in self test for w_wine_version
#echo Verify that version 1.3.4 is equal to itself
#WINETRICKS_WINE_MINOR=3 WINETRICKS_WINE_MICRO=4 w_wine_version -eq 1.3.4 || w_die "fail test case wine-1.3.4 = 1.3.4"
#echo Verify that version 1.3.4 is greater than 1.2
#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
# 'range' can be
@ -2451,37 +2423,17 @@ w_wine_version_in()
do
_W_val1=$(echo "$_W_range" | sed 's/,.*//')
_W_val2=$(echo "$_W_range" | sed 's/.*,//')
# If in this range, return true
case $_W_range in
,*) w_wine_version -le "$_W_val2" && unset _W_range _W_val1 _W_val2 && return 0;;
*,) w_wine_version -ge "$_W_val1" && unset _W_range _W_val1 _W_val2 && return 0;;
*) w_wine_version -ge "$_W_val1" && w_wine_version -le "$_W_val2" && unset _W_range _W_val1 _W_val2 && return 0;;
,*) w_compare_wine_version -le "$_W_val2" && unset _W_range _W_val1 _W_val2 && return 0;;
*,) w_compare_wine_version -ge "$_W_val1" && unset _W_range _W_val1 _W_val2 && return 0;;
*) w_compare_wine_version -bn "$_W_val1" "$_W_val2" && unset _W_range _W_val1 _W_val2 && return 0;;
esac
done
unset _W_range _W_val1 _W_val2
return 1
}
# Built-in self test for w_wine_version_in
#w_wine_version_in_test()
#{
# WINETRICKS_WINE_MINOR=$1 WINETRICKS_WINE_MICRO=$2 w_wine_version_in $3 $4 $5 $6 || w_die "fail test case wine-1.$1.$2 in $3 $4 $5 $6"
#}
#w_wine_version_not_in_test()
#{
# WINETRICKS_WINE_MINOR=$1 WINETRICKS_WINE_MICRO=$2 w_wine_version_in $3 $4 $5 $6 && w_die "fail test case wine-1.$1.$2 in $3 $4 $5 $6"
#}
#echo Verify that version 1.2.0 is in the range 1.2,
#w_wine_version_in_test 2 0 1.2,
#echo Verify that version 1.3.4 is in the range 1.2,
#w_wine_version_in_test 3 4 1.2,
#echo Verify that version 1.3 is not in the range ,1.2
#w_wine_version_not_in_test 3 0 ,1.2
#echo Verify that version 1.6-rc1 is in the range 1.2,
#w_wine_version_in_test 6 0 1.2,
#echo test passed
# Usage: workaround_wine_bug bugnumber [message] [good-wine-version-range ...]
# Returns true and outputs given msg if the workaround needs to be applied.
# For debugging: if you want to skip a bug's workaround, put the bug number in
@ -4923,24 +4875,17 @@ winetricks_init()
W_ISO_MOUNT_ROOT=/mnt/winetricks
W_ISO_MOUNT_LETTER=i
WINETRICKS_WINE_VERSION=$(winetricks_early_wine --version | sed 's/.*wine/wine/')
WINETRICKS_WINE_VERSION=${WINETRICKS_WINE_VERSION:-$(winetricks_early_wine --version | sed 's/.*wine/wine/')}
WINETRICKS_ORIG_WINE_VERSION="${WINETRICKS_WINE_VERSION}"
# 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;;
wine-1.4) WINETRICKS_WINE_VERSION="wine-1.4.0"; export WINETRICKS_WINE_VERSION;;
wine-1.6-*) WINETRICKS_WINE_VERSION="wine-1.6.0"; export WINETRICKS_WINE_VERSION;;
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/')
# Need to account for lots of variations:
# wine-1.9.22
# wine-1.9.22 (Debian 1.9.22-1)
# wine-1.9.22 (Staging)
# wine-2.0 (Debian 2.0-1)
# wine-2.0-rc1
# wine-2.8
_wine_version_stripped="$(echo "$WINETRICKS_WINE_VERSION" | cut -d ' ' -f1 | sed -e 's/wine-//' -e 's/-rc.*//')"
if [ ! "$WINETRICKS_SUPER_QUIET" ] ; then
echo "Using winetricks $(winetricks_print_version) with ${WINETRICKS_ORIG_WINE_VERSION} and WINEARCH=${W_ARCH}"
@ -7217,7 +7162,8 @@ w_metadata dotnet462 dlls \
publisher="Microsoft" \
year="2016" \
media="download" \
conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet35sp1 dotnet40 dotnet46 dotnet461 vjrun20"
conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet35sp1 dotnet40 dotnet46 dotnet461 vjrun20" \
installed_file1="c:/windows/dotnet462.installed.workaround"
load_dotnet462()
{
@ -7255,6 +7201,10 @@ load_dotnet462()
esac
w_override_dlls native mscoree
# Unfortunately, dotnet462 install the same files that dotnet461 does, but with different checksums
# The only unique files are temporary ones. As a workaround, touch a file instead so that we know it's been installed for list-installed
w_try touch "${W_WINDIR_UNIX}/dotnet462.installed.workaround"
}
verify_dotnet462()
@ -7276,8 +7226,9 @@ load_dotnet_verifier()
{
# https://blogs.msdn.microsoft.com/astebner/2008/10/13/net-framework-setup-verification-tool-users-guide/
# 2016/10/26: sha256sum 1daf4b1b27669b65f613e17814da3c8342d3bfa9520a65a880c58d6a2a6e32b5, adds .NET Framework 4.6.{1,2} support
# 2017/06/12: sha256sum , adds .NET Framework 4.7 support
w_download https://msdnshared.blob.core.windows.net/media/2016/10/netfx_setupverifier_new.zip 1daf4b1b27669b65f613e17814da3c8342d3bfa9520a65a880c58d6a2a6e32b5 "${file1}"
w_download https://msdnshared.blob.core.windows.net/media/2017/05/netfx_setupverifier_new.zip 22c596a13f0822871a01346d2f5736a3b230e1f6cb8ea429aba844d52adc568a
w_try_cd "$W_CACHE/$W_PACKAGE"
w_try_unzip "$W_SYSTEM32_DLLS" netfx_setupverifier_new.zip netfx_setupverifier.exe
@ -8241,21 +8192,16 @@ w_metadata msscript dlls \
publisher="Microsoft" \
year="2004" \
media="download" \
file1="sct10en.exe" \
file1="../winxpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \
installed_file1="$W_SYSTEM32_DLLS_WIN/msscript.ocx"
load_msscript()
{
# https://msdn.microsoft.com/scripting/scriptcontrol/x86/sct10en.exe
# https://www.microsoft.com/en-us/download/details.aspx?id=1949
# Originally at: https://download.microsoft.com/download/d/2/a/d2a7430c-6d5b-48e9-96c4-3c751be7bffe/sct10en.exe
# Mirror list: http://www.filewatcher.com/_/?q=sct10en.exe (make sure you get the 196.98KB version)
w_download ftp://beorn.sftcomp.ru/support/gpb/V7/WS/sct10en.exe 9b6730c3070f252f5051e0cf6b99523b66730599d795a607efd40b7fb0e11efb
w_try_cabextract --directory="${W_TMP}" "${W_CACHE}/${W_PACKAGE}/${file1}"
w_try cp -f "$W_TMP"/msscript.ocx "$W_SYSTEM32_DLLS"
w_try_regsvr msscript.ocx
helper_winxpsp3 i386/msscript.oc_
w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/msscript.oc_
w_override_dlls native,builtin i386/msscript.ocx
}
#----------------------------------------------------------------
w_metadata msls31 dlls \
@ -8333,7 +8279,10 @@ load_msxml3()
# Service Pack 7
# Originally at https://download.microsoft.com/download/8/8/8/888f34b7-4f54-4f06-8dac-fa29b19f33dd/msxml3.msi
# Mirror list: http://www.filewatcher.com/m/msxml3.msi.1070592-0.html
w_download ftp://support.danbit.dk/D/DVD-RW-USB2B/Driver/Installation/Data/Redist/msxml3.msi f9c678f8217e9d4f9647e8a1f6d89a7c26a57b9e9e00d39f7487493dd7b4e36c
# Known bad sites (2017/06/11):
# ftp://support.danbit.dk/D/DVD-RW-USB2B/Driver/Installation/Data/Redist/msxml3.msi
# ftp://94.79.56.169/common/Client/MSXML%204.0%20Service%20Pack%202/msxml3.msi
w_download "ftp://176.9.43.153/MS%20XML%20Parser/msxml3.msi" f9c678f8217e9d4f9647e8a1f6d89a7c26a57b9e9e00d39f7487493dd7b4e36c
# It won't install on top of Wine's msxml3, which has a pretty high version number, so delete Wine's fake DLL
rm "$W_SYSTEM32_DLLS"/msxml3.dll
@ -8643,6 +8592,30 @@ load_qdvd()
#----------------------------------------------------------------
w_metadata qedit dlls \
title="qedit.dll" \
publisher="Microsoft" \
year="2011" \
media="download" \
file1="../win7sp1/windows6.1-KB976932-X86.exe" \
installed_file1="$W_SYSTEM32_DLLS_WIN/qedit.dll"
load_qedit()
{
helper_win7sp1 x86_microsoft-windows-qedit_31bf3856ad364e35_6.1.7601.17514_none_5ca34698a5a970d2/qedit.dll
w_try cp "$W_TMP/x86_microsoft-windows-qedit_31bf3856ad364e35_6.1.7601.17514_none_5ca34698a5a970d2/qedit.dll" "$W_SYSTEM32_DLLS/qedit.dll"
if [ "$W_ARCH" = "win64" ]
then
helper_win7sp1_x64 amd64_microsoft-windows-qedit_31bf3856ad364e35_6.1.7601.17514_none_b8c1e21c5e06e208/qedit.dll
w_try cp "$W_TMP/amd64_microsoft-windows-qedit_31bf3856ad364e35_6.1.7601.17514_none_b8c1e21c5e06e208/qedit.dll" "$W_SYSTEM64_DLLS/qedit.dll"
fi
w_override_dlls native,builtin qedit
}
#----------------------------------------------------------------
w_metadata quartz dlls \
title="quartz.dll (from Directx 9 user redistributable)" \
publisher="Microsoft" \
@ -9285,13 +9258,13 @@ load_vcrun2005()
w_download https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x86.EXE 4ee4da0fe62d5fa1b5e80c6e6d88a4a2f8b3b140c35da51053d0d7b72a381d29
# For native to be used, msvc* dlls must either be set to native only, OR
# set to native, builtin and remove wine's builtin manifest. Removing the manifest
# Makes it harder for user to revert later, so use native only method.
# set to native, builtin and remove wine's builtin manifest. Setting to native only breaks several apps,
# e.g., Dirac Codec and Ragnarok Online.
# For more info, see:
# https://bugs.winehq.org/show_bug.cgi?id=28225
# https://bugs.winehq.org/show_bug.cgi?id=33604
# https://bugs.winehq.org/show_bug.cgi?id=42859
w_override_dlls native atl80 msvcm80 msvcp80 msvcr80 vcomp
w_override_dlls native,builtin atl80 msvcm80 msvcp80 msvcr80 vcomp
w_try_cd "$W_CACHE/$W_PACKAGE"
w_try "$WINE" "$file1" $W_UNATTENDED_SLASH_Q
@ -9340,13 +9313,17 @@ load_vcrun2008()
w_download https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe 6b3e4c51c6c0e5f68c8a72b497445af3dbf976394cbb62aa23569065c28deeb6
# For native to be used, msvc* dlls must either be set to native only, OR
# set to native, builtin and remove wine's builtin manifest. Removing the manifest
# Makes it harder for user to revert later, so use native only method.
# set to native, builtin and remove wine's builtin manifest. Setting to native only breaks several apps,
# e.g., Dirac Codec and Ragnarok Online.
# For more info, see:
# https://bugs.winehq.org/show_bug.cgi?id=28225
# https://bugs.winehq.org/show_bug.cgi?id=33604
# https://bugs.winehq.org/show_bug.cgi?id=42859
w_override_dlls native atl90 msvcm90 msvcp90 msvcr90 vcomp90
# https://bugs.winehq.org/show_bug.cgi?id=28225
# https://bugs.winehq.org/show_bug.cgi?id=33604
# https://bugs.winehq.org/show_bug.cgi?id=42859
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
@ -10940,7 +10917,7 @@ load_ev3()
w_override_dlls native urlmon
fi
if w_workaround_wine_bug 34897 "Installing update KB2936068 to work around bug 34897" 1.9.10,
if w_workaround_wine_bug 34897 "Installing update KB2936068 to work around bug 34897" 1.9.10,1.9.12
then
w_call ie8_kb2936068
fi

View File

@ -1,5 +1,5 @@
.\" -*- nroff -*-
.TH WINETRICKS 1 "May 2017" "Winetricks 20170517" "Wine Package Manager"
.TH WINETRICKS 1 "June 2017" "Winetricks 20170614" "Wine Package Manager"
.SH NAME
winetricks \- manage virtual Windows environments using Wine
.SH SYNOPSIS