diff --git a/winetricks-zh b/winetricks-zh index b732c8b..83df8b2 100755 --- a/winetricks-zh +++ b/winetricks-zh @@ -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=20210206-next +WINETRICKS_VERSION=20220411-next # This is a UTF-8 file # You should see an o with two dots over it here [ö] @@ -29,7 +29,7 @@ WINETRICKS_VERSION=20210206-next # - ar, cabextract, unrar, unzip, and 7z are needed by some verbs. # - aria2c, wget, curl, or fetch is needed for downloading. # - fuseiso, archivemount (Linux), or hdiutil (macOS) is used to mount .iso images. -# - perl is used to munge steam config files. +# - perl is used for displaying download progress for wget when using zenity # - pkexec, sudo, or kdesu (gksu/gksudo/kdesudo are deprecated upstream but also still supported) # are used to mount .iso images if the user cached them with -k option. # - sha256sum, sha256, or shasum (OSX 10.5 does not support these, 10.6+ is required) @@ -53,7 +53,7 @@ WINETRICKS_VERSION=20210206-next # # Copyright: # Copyright (C) 2007-2014 Dan Kegel -# Copyright (C) 2008-2019 Austin English +# Copyright (C) 2008-2022 Austin English # Copyright (C) 2010-2011 Phil Blankenship # Copyright (C) 2010-2015 Shannon VanWagner # Copyright (C) 2010 Belhorma Bendebiche @@ -213,6 +213,7 @@ w_askpermission() case ${LANG} in uk*) w_die "Операція скасована." ;; pl*) w_die "Anulowano operację, opuszczanie." ;; + pt*) w_die "Operação cancelada, saindo." ;; *) w_die "Operation cancelled, quitting." ;; esac exec false @@ -321,6 +322,31 @@ _w_get_broken_messages() # Unify the broken messages (to make it easier for future translators): case ${LANG} in + pt*) + # default broken messages + broken_good_version_known_default="O pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped}. Atualize para >=${good_version}. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_good_and_bad_version_known_default="O pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped}. Quebrado desde ${bad_version}. Atualize para >=${good_version}. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_only_bad_version_known_default="O pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped}. Quebrado desde ${bad_version}. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_no_version_known_default="Este pacote (${W_PACKAGE}) está quebrado. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + + # mingw broken messages + broken_good_version_known_mingw="Este pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped} quando o wine é feito com o mingw. Atualize para >=${good_version} ou refaça o wine sem mingw. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_good_and_bad_version_known_mingw="O pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped}. Quebrado desde ${bad_version} quando o wine é feito com o mingw. Atualize para >=${good_version} ou refaça o wine sem mingw. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_only_bad_version_known_mingw="O pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped}. Quebrado desde ${bad_version} quando o wine é feito com o mingw. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_no_version_known_mingw="Este pacote (${W_PACKAGE}) está quebrado quando o wine é feito com o mingw. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + + # no mingw broken messages + broken_good_version_known_no_mingw="Este pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped} quando o wine é feito sem mingw. Atualize para >=${good_version}. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_good_and_bad_version_known_no_mingw="O pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped}. Quebrado desde ${bad_version} quando o wine é feito sem mingw. Atualize para >=${good_version}. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_only_bad_version_known_no_mingw="O pacote (${W_PACKAGE}) está quebrado no wine-${_wine_version_stripped}. Quebrado desde ${bad_version} quando o wine é feito sem mingw. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_no_version_known_no_mingw="Este pacote (${W_PACKAGE}) está quebrado quando o wine é feito sem mingw. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + + # win64 broken messages + broken_good_version_known_win64="Este pacote (${W_PACKAGE}) está quebrado em 64-bit wine-${_wine_version_stripped}. Use um prefixo feito com WINEARCH=win32 ou atualize o wine para >=${good_version} para trabalhar com isto. Or use --force to try anyway. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_good_and_bad_version_known_win64="Este pacote (${W_PACKAGE}) está quebrado em 64-bit wine-${_wine_version_stripped}. Quebrado desde ${bad_version}. Use um prefixo feito com WINEARCH=win32 ou atualize o wine para >=${good_version} para trabalhar com isto. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_only_bad_version_known_win64="Este pacote (${W_PACKAGE}) está quebrado em 64-bit wine-${_wine_version_stripped}. Quebrado desde ${bad_version}. Use um prefixo feito com WINEARCH=win32 para trabalhar com isto. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + broken_no_version_known_win64="Este pacote (${W_PACKAGE}) está quebrado quando o wine é feito sem mingw. Veja ${bug_link} para mais informações. Use --force para tentar forçar de toda forma." + ;; *) # default broken messages broken_good_version_known_default="This package (${W_PACKAGE}) is broken in wine-${_wine_version_stripped}. Upgrade to >=${good_version}. See ${bug_link} for more info. Use --force to try anyway." @@ -519,6 +545,7 @@ w_package_unsupported_win64() if [ "${W_ARCH}" = "win64" ] ; then case ${LANG} in pl*) w_warn "Ten pakiet (${W_PACKAGE}) nie działa z 64-bitową instalacją. Musisz użyć prefiksu utworzonego z WINEARCH=win32." ;; + pt*) w_warn "Este pacote (${W_PACKAGE}) não funciona em instalação de 64-bit. Você precisa usar um prefixo feito com WINEARCH=win32." ;; ru*) w_warn "Данный пакет не работает в 64-битном окружении. Используйте префикс, созданный с помощью WINEARCH=win32." ;; zh_CN*) w_warn "(${W_PACKAGE}) 无法在64位下工作,只能将容器变量设置为 WINEARCH=win32 安装。" ;; zh_TW*|zh_HK*) w_warn "(${W_PACKAGE}) 無法在64元下工作,只能將容器變數設定為 WINEARCH=win32 安装。" ;; @@ -533,6 +560,7 @@ w_package_warn_win64() { if [ "${W_ARCH}" = "win64" ] ; then case ${LANG} in + pt*) w_warn "Este pacote (${W_PACKAGE}) talvez não funcione completamente em 64-bit. Em prefixo 32-bit talvez funcione melhor." ;; pl*) w_warn "Ten pakiet (${W_PACKAGE}) może nie działać poprawnie z 64-bitową instalacją. Prefiks 32-bitowy może działać lepiej." ;; ru*) w_warn "Данный пакет может работать не полностью в 64-битном окружении. 32-битные префиксы могут работать лучше." ;; zh_CN*) w_warn "(${W_PACKAGE}) 可能在64位环境下工作有问题,安装在32位环境可能会更好。" ;; @@ -580,6 +608,7 @@ w_try() en_abort="Note: command $* returned status ${status}. Aborting." pl_abort="Informacja: poelcenie $* zwróciło status ${status}. Przerywam." + pt_abort="Nota: comando $* retornou o status ${status}. Cancelando." ru_abort="Важно: команда $* вернула статус ${status}. Прерывание." if [ -n "${_w_ms_installer}" ]; then @@ -599,6 +628,7 @@ w_try() *) case ${LANG} in pl*) w_die "${pl_abort}" ;; + pt*) w_die "${pt_abort}" ;; ru*) w_die "${ru_abort}" ;; *) w_die "${en_abort}" ;; esac @@ -676,6 +706,19 @@ w_try_cd() w_try cd "$@" } +# Copy $1 into $2. If $2 is found to be a symbolic link, it will be removed first. +# This solve a problem of dlls being symbolic links on some versions or variants of wine. +# We want to replace the symbolic link and not copy into its target. +w_try_cp_dll() +{ + _W_srcfile="$1" + _W_destfile="$2" + [ -d "${_W_destfile}" ] && _W_destfile="${_W_destfile}/$(basename "${_W_srcfile}")" + + [ -h "${_W_destfile}" ] && w_try rm -f "${_W_destfile}" + w_try cp -f "${_W_srcfile}" "${_W_destfile}" +} + # Copy font files matching a glob pattern from source directory to destination directory. # Also remove any file in the destination directory that has the same name as # any of the files that we're trying to copy, but with different case letters. @@ -717,7 +760,8 @@ cat > "${WINETRICKS_WORKDIR}/cp_font_files.sh" <<_EOF_ _W_file_name="\$(basename "\$_W_src_file" | tr "[:upper:]" "[:lower:]")" # Remove any existing font files that might have the same name, but with different case characters - find "${_W_dest_dir}" -maxdepth 1 -type f -iname "\$_W_file_name" -exec rm '{}' ';' + # LANG=C to avoid locale issues (https://github.com/Winetricks/winetricks/issues/1892) + LANG=C find "${_W_dest_dir}" -maxdepth 1 -type f -iname "\$_W_file_name" -exec rm '{}' ';' # FIXME: w_try() isn't available, need some better error handling: cp -f "\$_W_src_file" "${_W_dest_dir}/\$_W_file_name" @@ -725,7 +769,8 @@ _EOF_ # Use -exec "sh .." to avoid issues with noexec # Gross quoting is to avoid SC2156 - find "${_W_src_dir}" -maxdepth 1 -type f -iname "${_W_pattern}" -exec sh -c 'sh '"${WINETRICKS_WORKDIR}/cp_font_files.sh"' "$1"' _ {} \; + # LANG=C to avoid locale issues (https://github.com/Winetricks/winetricks/issues/1892) + LANG=C find "${_W_src_dir}" -maxdepth 1 -type f -iname "${_W_pattern}" -exec sh -c 'sh '"${WINETRICKS_WORKDIR}/cp_font_files.sh"' "$1"' _ {} \; # Wait for Wine to add the new font to the registry under HKCU\Software\Wine\Fonts\Cache w_wineserver -w @@ -867,6 +912,9 @@ w_read_key() pl*) _W_keymsg="Proszę podać klucz dla programu '${W_PACKAGE}'" _W_nokeymsg="Nie podano klucza" ;; + pt*) _W_keymsg="Por favor, insira a chave do aplicativo '${W_PACKAGE}'" + _W_nokeymsg="Nenhuma chave fornecida" + ;; ru*) _W_keymsg="Пожалуйста, введите ключ для приложения '${W_PACKAGE}'" _W_nokeymsg="Ключ не введён" ;; @@ -903,9 +951,13 @@ w_read_key() w_verify_cabextract_available() { - # If verb_a requires verb_b, then verba will fail when the dependency for verb_b is installed + # If verb_a requires verb_b, then verb_a will fail when the dependency for verb_b is installed # This should be called by verb_a, to give a proper warning + if test ! -x "$(command -v cabextract 2>/dev/null)"; then + w_die "Cannot find cabextract. Please install it (e.g. 'sudo apt-get install cabextract' or 'sudo yum install cabextract')." + fi + w_try_cabextract -q -v >/dev/null 2>&1 } @@ -1029,11 +1081,7 @@ w_verify_sha256sum() if [ "${WINETRICKS_FORCE}" = 1 ]; then w_warn "sha256sum mismatch! However --force was used, so trying anyway. Caveat emptor." else - case ${LANG} in - pl*) w_die "Niezgodność sumy sha256sum! Zmień nazwę ${_W_vs_file} i spróbuj ponownie." ;; - ru*) w_die "Контрольная сумма sha256sum не совпадает! Переименуйте файл ${_W_vs_file} и попробуйте еще раз." ;; - *) w_die "sha256sum mismatch! Rename ${_W_vs_file} and try again. Alternatively, use --force to ignore this check." ;; - esac + w_askpermission "SHA256 mismatch!\n\nURL: ${_W_url}\nDownloaded: ${_W_gotsha256sum}\nExpected: ${_W_vs_wantsum}\n\nThis is often the result of an updated package such as vcrun2019.\nIf you are willing to accept the risk, you can bypass this check.\nAlternatively, you may use the --force option to ignore this check entirely.\n\nContinue anyway?" fi fi unset _W_vs_wantsum _W_vs_file _W_gotsha256sum @@ -1344,6 +1392,7 @@ w_download_to() if test "${WINETRICKS_FORCE}" != 1; then case ${LANG} in pl*) w_warn "Niezgodność sum kontrolnych dla ${_W_cache}/${_W_file}, pobieram ponownie" ;; + pt*) w_warn "Checksum para ${_W_cache}/${_W_file} não confere, tentando novo download" ;; ru*) w_warn "Контрольная сумма файла ${_W_cache}/${_W_file} не совпадает, попытка повторной загрузки" ;; *) w_warn "Checksum for ${_W_cache}/${_W_file} did not match, retrying download" ;; esac @@ -1601,6 +1650,7 @@ w_download_manual_to() da*) _W_dlmsg="Hent venligst filen ${_W_file} fra ${_W_url} og placér den i ${W_CACHE}/${_W_packagename}, kør derefter dette skript.";; de*) _W_dlmsg="Bitte laden Sie ${_W_file} von ${_W_url} runter, stellen Sie's in ${W_CACHE}/${_W_packagename}, dann wiederholen Sie dieses Kommando.";; pl*) _W_dlmsg="Proszę pobrać plik ${_W_file} z ${_W_url}, następnie umieścić go w ${W_CACHE}/${_W_packagename}, a na końcu uruchomić ponownie ten skrypt.";; + pt*) _W_dlmsg="Baixe o ${_W_file} de ${_W_url}, salve em ${W_CACHE}/${_W_packagename}, então tente executar novamente este script.";; ru*) _W_dlmsg="Пожалуйста, скачайте файл ${_W_file} по адресу ${_W_url}, и поместите его в ${W_CACHE}/${_W_packagename}, а затем запустите winetricks заново.";; uk*) _W_dlmsg="Будь ласка, звантажте ${_W_file} з ${_W_url}, розташуйте в ${W_CACHE}/${_W_packagename}, потім запустіть скрипт знову.";; zh_CN*) _W_dlmsg="请从 ${_W_url} 下载 ${_W_file},并置放于 ${W_CACHE}/${_W_packagename}, 然后重新运行 winetricks.";; @@ -1628,102 +1678,6 @@ w_download_manual() w_download_manual_to "${W_PACKAGE}" "$@" } -# Turn off news, overlays, and friend interaction in Steam -# Run from inside C:\Program Files\Steam -w_steam_safemode() -{ - cat > "${W_TMP}/steamconfig.pl" <<"_EOF_" -#!/usr/bin/env perl -# Parse Steam's localconfig.vcf, add settings to it, and write it out again -# The file is a recursive dictionary -# -# FILE :== CONTAINER -# -# VALUE :== "name" "value" NEWLINE -# -# CONTAINER :== "name" NEWLINE "{" NEWLINE ( VALUE | CONTAINER ) * "}" NEWLINE -# -# We load it into a recursive hash. - -use strict; -use warnings; - -sub read_into_container{ - my( $pcontainer ) = @_; - - $_ = || w_die "Can't read first line of container"; - /{/ || w_die "First line of container was not {"; - while () { - chomp; - if (/"([^"]*)"\s*"([^"]*)"$/) { - ${$pcontainer}{$1} = $2; - } elsif (/"([^"]*)"$/) { - my( %newcon, $name ); - $name = $1; - read_into_container(\%newcon); - ${$pcontainer}{$name} = \%newcon; - } elsif (/}/) { - return; - } else { - w_die "huh?"; - } - } -} - -sub dump_container{ - my( $pcontainer, $indent ) = @_; - foreach (sort(keys(%{$pcontainer}))) { - my( $val ) = ${$pcontainer}{$_}; - if (ref $val eq 'HASH') { - print "${indent}\"$_\"\n"; - print "${indent}{\n"; - dump_container($val, "$indent\t"); - print "${indent}}\n"; - } else { - print "${indent}\"${_}\"\t\t\"$val\"\n"; - } - } -} - -# Disable anything unsafe or annoying -sub disable_notifications{ - my( $pcontainer ) = @_; - ${$pcontainer}{"friends"}{"PersonaStateDesired"} = "1"; - ${$pcontainer}{"friends"}{"Notifications_ShowIngame"} = "0"; - ${$pcontainer}{"friends"}{"Sounds_PlayIngame"} = "0"; - ${$pcontainer}{"friends"}{"Notifications_ShowOnline"} = "0"; - ${$pcontainer}{"friends"}{"Sounds_PlayOnline"} = "0"; - ${$pcontainer}{"friends"}{"Notifications_ShowMessage"} = "0"; - ${$pcontainer}{"friends"}{"Sounds_PlayMessage"} = "0"; - ${$pcontainer}{"friends"}{"AutoSignIntoFriends"} = "0"; - ${$pcontainer}{"News"}{"NotifyAvailableGames"} = "0"; - ${$pcontainer}{"system"}{"EnableGameOverlay"} = "0"; -} - -# Read the file -my(%top); -open FILE, $ARGV[0] || w_die "cannot open ".$ARGV[0]; -my($line); -$line = || w_die "Could not read first line from ".$ARGV[0]; -$line =~ /"UserLocalConfigStore"/ || w_die "this is not a localconfig.vdf file"; -read_into_container(\%top); - -# Modify it -disable_notifications(\%top); - -# Write modified file -print "\"UserLocalConfigStore\"\n"; -print "{\n"; -dump_container(\%top, "\t"); -print "}\n"; -_EOF_ - -for file in userdata/*/config/localconfig.vdf ; do - cp "${file}" "${file}.old" - perl "${W_TMP}"/steamconfig.pl "${file}.old" > "${file}" -done -} - w_question() { case ${WINETRICKS_GUI} in @@ -1739,160 +1693,6 @@ w_question() esac } -# Reads steam username and password from environment, cache, or user -# If had to ask user, cache answer. -w_steam_getid() -{ - #TODO: Translate - _W_steamidmsg="Please enter your Steam login ID (not email)" - _W_steampasswordmsg="Please enter your Steam password" - - if test ! "${W_STEAM_ID}"; then - if test -f "${W_CACHE}"/steam_userid.txt; then - W_STEAM_ID=$(cat "${W_CACHE}"/steam_userid.txt) - else - W_STEAM_ID=$(w_question "${_W_steamidmsg}") - echo "${W_STEAM_ID}" > "${W_CACHE}"/steam_userid.txt - chmod 600 "${W_CACHE}"/steam_userid.txt - fi - fi - if test ! "${W_STEAM_PASSWORD}"; then - if test -f "${W_CACHE}"/steam_password.txt; then - W_STEAM_PASSWORD=$(cat "${W_CACHE}"/steam_password.txt) - else - W_STEAM_PASSWORD=$(w_question "${_W_steampasswordmsg}") - echo "${W_STEAM_PASSWORD}" > "${W_CACHE}"/steam_password.txt - chmod 600 "${W_CACHE}"/steam_password.txt - fi - fi -} - -# Usage: -# w_steam_install_game steamidnum windowtitle -w_steam_install_game() -{ - _W_steamid=$1 - _W_steamtitle="$2" - - w_steam_getid - - # Install the steam runtime - WINETRICKS_OPT_SHAREDPREFIX=1 w_call steam - - # Steam puts up a bunch of windows. Here's the sequence: - # "Steam - Updating" - wait for it to close. May appear twice in a row. - # "Steam - Login" - wait for it to close (credentials already given on cmdline) - # "Steam" (small window) - connecting, wait for it to close - # "Steam" (large window) - the main window - # "Steam - Updates News" - close it forcefully - # "Install - $title" - send enter, click a couple checkboxes, send enter again - # "Updating $title" - small download progress dialog - # "Steam - Ready" game install done. (Only comes up if main window not up.) - - w_try_cd "${W_PROGRAMS_X86_UNIX}/Steam" - w_ahk_do " - SetTitleMatchMode 2 - SetWinDelay 500 - ; Run steam once until it finishes its initial update. - ; For me, this exits at 26%. - run steam.exe -applaunch ${_W_steamid} -login ${W_STEAM_ID} ${W_STEAM_PASSWORD} - Loop - { - ifWinExist, Steam - Updating - { - winwaitclose, Steam - process close, Steam.exe - sleep 1000 - ; Run a second time; let it finish updating, then kill it. - run steam.exe - winwait Steam - Updating - winwaitclose - process close, Steam.exe - ; Run a third time, have it log in, wait until it has finished connecting - run steam.exe -applaunch ${_W_steamid} -login ${W_STEAM_ID} ${W_STEAM_PASSWORD} - } - ifWinExist, Steam Login - { - break - } - sleep 500 - } - ; wait for login window to close - winwaitclose - - winwait Steam ; wait for small <> window - winwaitclose - " - -if [ "${STEAM_DVD}" = "TRUE" ]; then - w_ahk_do " - ; Run a fourth time, have it install the app. - run steam.exe -install ${W_ISO_MOUNT_LETTER}:\\ - " -else - w_ahk_do " - ; Run a fourth time, have it install the app. - run steam.exe -applaunch ${_W_steamid} - " -fi - - w_ahk_do " - winwait Install - ${_W_steamtitle} - if ( w_opt_unattended > 0 ) { - send {enter} ; next (for 1st of 3 pages of install dialog) - sleep 1000 - click 32, 91 ; uncheck create menu item? - click 32, 119 ; check create desktop icon? - send {enter} ; next (for 2nd of 3 pages of install dialog) - ; dismiss any news dialogs, and click 'next' on third page of install dialog - loop - { - sleep 1000 - ifwinexist Steam - Updates News - { - winclose - continue - } - ifwinexist Install - ${_W_steamtitle} - { - winactivate - send {enter} ; next (for 3rd of 3 pages of install dialog) - } - ifwinnotexist Install - ${_W_steamtitle} - { - sleep 1000 - ifwinnotexist Install - ${_W_steamtitle} - break - } - } - } - " - -if [ "${STEAM_DVD}" = "TRUE" ]; then - # Wait for install to finish - while true; do - grep "SetHasAllLocalContent(true) called for ${_W_steamid}" "${W_PROGRAMS_X86_UNIX}/Steam/logs/download_log.txt" && break - sleep 5 - done -fi - - w_ahk_do " - ; For DVD's: theoretically, it should be installed now, but most games want to download updates. Do that now. - ; For regular downloads: relaunch to coax steam into showing its nice small download progress dialog - process close, Steam.exe - run steam.exe -login ${W_STEAM_ID} ${W_STEAM_PASSWORD} -applaunch ${_W_steamid} - winwait Ready - - process close, Steam.exe - " - - # Not all users need this disabled, but let's play it safe for now - if w_workaround_wine_bug 22053 "Disabling in-game notifications to prevent game crashes on some machines."; then - w_steam_safemode - fi - - unset _W_steamid _W_steamtitle -} - #---------------------------------------------------------------- @@ -2758,8 +2558,8 @@ _EOF_ w_unset_winver() { - w_warn "w_unset_winver() is deprecated, use \'w_set_winver default\' instead" - w_set_winver default + w_warn "w_unset_winver() is deprecated, use \'w_set_winver default\' instead" + w_set_winver default } # Present app $1 with the Windows personality $2 @@ -2887,6 +2687,7 @@ w_workaround_wine_bug() da*) w_warn "Arbejder uden om wine-fejl ${1} ${_W_msg}" ;; de*) w_warn "Wine-Fehler ${1} wird umgegangen ${_W_msg}" ;; pl*) w_warn "Obchodzenie błędu w wine ${1} ${_W_msg}" ;; + pt*) w_warn "Trabalhando em torno do bug do wine ${1} ${_W_msg}" ;; ru*) w_warn "Обход ошибки ${1} ${_W_msg}" ;; uk*) w_warn "Обхід помилки ${1} ${_W_msg}" ;; zh_CN*) w_warn "绕过 wine bug ${1} ${_W_msg}" ;; @@ -3277,10 +3078,10 @@ winetricks_dl_url_to_stdout() # Executing ... stuff, but still does error checking if [ "${WINETRICKS_DOWNLOADER}" = "wget" ] ; then ${torify} wget -q -O - --timeout "${WINETRICKS_DOWNLOADER_TIMEOUT}" \ - --tries "${WINETRICKS_DOWNLOADER_RETRIES}" "$1" + --tries "${WINETRICKS_DOWNLOADER_RETRIES}" "$1" elif [ "${WINETRICKS_DOWNLOADER}" = "curl" ] ; then ${torify} curl -s --connect-timeout "${WINETRICKS_DOWNLOADER_TIMEOUT}" \ - --retry "${WINETRICKS_DOWNLOADER_RETRIES}" "$1" + --retry "${WINETRICKS_DOWNLOADER_RETRIES}" "$1" elif [ "${WINETRICKS_DOWNLOADER}" = "aria2c" ] ; then # aria2c doesn't have support downloading to stdout: # https://github.com/aria2/aria2/issues/190 @@ -3385,6 +3186,7 @@ winetricks_latest_version_check() if ! echo "${latest_version}" | grep -q -E "[0-9]{8}" || [ -z "${latest_version}" ] ; then case ${LANG} in pl*) w_warn "GitHub nie działa? Wersja '${latest_version}' nie wydaje się być prawdiłową wersją" ;; + pt*) w_warn "Github offline? versão '${latest_version}' não parece uma versão válida" ;; ru*) w_warn "Отсутствует подключение к Github? версия '${latest_version}' может быть неактуальной" ;; zh_CN*) w_warn "GitHub 无法访问?${latest_version} 似乎不是个有效的版本号。" ;; zh_TW*|zh_HK*) w_warn "GitHub 宕機了?${latest_version} 似乎不是個有效的版本號。" ;; @@ -3407,6 +3209,10 @@ winetricks_latest_version_check() w_warn "Korzystasz z winetricks-${WINETRICKS_VERSION}, a najnowszą wersją winetricks-${latest_version}!" w_warn "Zalecana jest aktualizacja z użyciem menedżera pakietów Twojej dystrybucji, --self-update lub ręczna aktualizacja." ;; + pt*) + w_warn "Você está utilizando o winetricks-${WINETRICKS_VERSION}, a versão mais recente é winetricks-${latest_version}!" + w_warn "Você pode atualizar com o sistema de atualizações da sua distribuição, --self-update, ou manualmente." + ;; ru*) w_warn "Запущен winetricks-${WINETRICKS_VERSION}, последняя версия winetricks-${latest_version}!" w_warn "Вы можете ее обновить с помощью менеджера пакетов, --self-update или вручную." @@ -3465,25 +3271,41 @@ winetricks_early_wine_arch() winetricks_detect_gui() { - if test -x "$(command -v zenity 2>/dev/null)"; then + if [ -n "$1" ]; then + if [ "$1" = "kdialog" ] && test -x "$(command -v kdialog 2>/dev/null)"; then + WINETRICKS_GUI=kdialog + WINETRICKS_GUI_VERSION="$(kdialog --version)" + elif [ "$1" = "zenity" ] || [ "$1" = "--gui" ] && test -x "$(command -v zenity 2>/dev/null)"; then + WINETRICKS_GUI=zenity + WINETRICKS_GUI_VERSION="$(zenity --version)" + WINETRICKS_MENU_HEIGHT=500 + WINETRICKS_MENU_WIDTH=1010 + else + echo "Invalid argument for --gui" + echo "Valid options are 'zenity' and 'kdialog'" + exit 1 + fi + elif [ "${XDG_CURRENT_DESKTOP}" = "KDE" ] && test -x "$(command -v kdialog 2>/dev/null)"; then + WINETRICKS_GUI=kdialog + WINETRICKS_GUI_VERSION="$(kdialog --version)" + elif test -x "$(command -v zenity 2>/dev/null)"; then WINETRICKS_GUI=zenity WINETRICKS_GUI_VERSION="$(zenity --version)" WINETRICKS_MENU_HEIGHT=500 WINETRICKS_MENU_WIDTH=1010 elif test -x "$(command -v kdialog 2>/dev/null)"; then - echo "Zenity not found! Using kdialog as poor substitute." WINETRICKS_GUI=kdialog WINETRICKS_GUI_VERSION="$(kdialog --version)" else - echo "No arguments given, so tried to start GUI, but zenity not found." - echo "Please install zenity if you want a graphical interface, or " - echo "run with --help for more options." + echo "No arguments given, so tried to start GUI, but neither zenity" + echo "nor kdialog were found. Please install one of them if you want" + echo "a graphical interface, or run with --help for more options." exit 1 fi # Print zenity/dialog version info for debugging: if [ -z "${WINETRICKS_SUPER_QUIET}" ] ; then - echo "winetricks GUI enabled, using ${WINETRICKS_GUI} ${WINETRICKS_GUI_VERSION}" + echo "winetricks GUI enabled, using ${WINETRICKS_GUI} ${WINETRICKS_GUI_VERSION##kdialog }" fi } @@ -3569,82 +3391,93 @@ winetricks_prefixmenu() { case ${LANG} in ru*) _W_msg_title="Winetricks - выберите путь wine (wineprefix)" - _W_msg_body='Что вы хотите сделать?' - _W_msg_apps='Установить программу' - _W_msg_games='Установить игру' - _W_msg_benchmarks='Установить приложение для оценки производительности' - _W_msg_default="Выберите путь для wine по умолчанию" - _W_msg_mkprefix="Создать новый путь wine" - _W_msg_unattended0="Отключить автоматическую установку" - _W_msg_unattended1="Включить автоматическую установку" - _W_msg_help="Просмотр справки (в веб-браузере)" - ;; + _W_msg_body='Что вы хотите сделать?' + _W_msg_apps='Установить программу' + _W_msg_games='Установить игру' + _W_msg_benchmarks='Установить приложение для оценки производительности' + _W_msg_default="Выберите путь для wine по умолчанию" + _W_msg_mkprefix="Создать новый путь wine" + _W_msg_unattended0="Отключить автоматическую установку" + _W_msg_unattended1="Включить автоматическую установку" + _W_msg_help="Просмотр справки (в веб-браузере)" + ;; uk*) _W_msg_title="Winetricks - виберіть wineprefix" - _W_msg_body='Що Ви хочете зробити?' - _W_msg_apps='Встановити додаток' - _W_msg_games='Встановити гру' - _W_msg_benchmarks='Встановити benchmark' - _W_msg_default="Вибрати wineprefix за замовчуванням" - _W_msg_mkprefix="створити новий wineprefix" - _W_msg_unattended0="Вимкнути автоматичне встановлення" - _W_msg_unattended1="Увімкнути автоматичне встановлення" - _W_msg_help="Переглянути довідку" - ;; + _W_msg_body='Що Ви хочете зробити?' + _W_msg_apps='Встановити додаток' + _W_msg_games='Встановити гру' + _W_msg_benchmarks='Встановити benchmark' + _W_msg_default="Вибрати wineprefix за замовчуванням" + _W_msg_mkprefix="створити новий wineprefix" + _W_msg_unattended0="Вимкнути автоматичне встановлення" + _W_msg_unattended1="Увімкнути автоматичне встановлення" + _W_msg_help="Переглянути довідку" + ;; zh_CN*) _W_msg_title="Winetricks - 择一 Wine 容器" - _W_msg_body='君欲何为?' - _W_msg_apps='安装一个 Windows 应用' - _W_msg_games='安装一个游戏' - _W_msg_benchmarks='安装一个基准测试软件' - _W_msg_default="选择默认的 Wine 容器" - _W_msg_mkprefix="创建新的 Wine 容器" - _W_msg_unattended0="禁用静默安装" - _W_msg_unattended1="启用静默安装" - _W_msg_help="查看帮助" - ;; + _W_msg_body='君欲何为?' + _W_msg_apps='安装一个 Windows 应用' + _W_msg_games='安装一个游戏' + _W_msg_benchmarks='安装一个基准测试软件' + _W_msg_default="选择默认的 Wine 容器" + _W_msg_mkprefix="创建新的 Wine 容器" + _W_msg_unattended0="禁用静默安装" + _W_msg_unattended1="启用静默安装" + _W_msg_help="查看帮助" + ;; zh_TW*|zh_HK*) _W_msg_title="Winetricks - 取一 Wine 容器" - _W_msg_body='君欲何為?' - _W_msg_apps='安裝一個 Windows 應用' - _W_msg_games='安裝一個遊戲' - _W_msg_benchmarks='安裝一個基准測試軟體' - _W_msg_default="選取預設的 Wine 容器" - _W_msg_mkprefix="建立新的 Wine 容器" - _W_msg_unattended0="禁用靜默安裝" - _W_msg_unattended1="啟用靜默安裝" - _W_msg_help="檢視輔助說明" - ;; + _W_msg_body='君欲何為?' + _W_msg_apps='安裝一個 Windows 應用' + _W_msg_games='安裝一個遊戲' + _W_msg_benchmarks='安裝一個基准測試軟體' + _W_msg_default="選取預設的 Wine 容器" + _W_msg_mkprefix="建立新的 Wine 容器" + _W_msg_unattended0="禁用靜默安裝" + _W_msg_unattended1="啟用靜默安裝" + _W_msg_help="檢視輔助說明" + ;; de*) _W_msg_title="Winetricks - wineprefix auswählen" - _W_msg_body='Was möchten Sie tun?' - _W_msg_apps='Ein Programm installieren' - _W_msg_games='Ein Spiel installieren' - _W_msg_benchmarks='Einen Benchmark-Test installieren' - _W_msg_default="Standard wineprefix auswählen" - _W_msg_mkprefix="Neuen wineprefix erstellen" - _W_msg_unattended0="Automatische Installation deaktivieren" - _W_msg_unattended1="Automatische Installation aktivieren" - _W_msg_help="Hilfe anzeigen" - ;; + _W_msg_body='Was möchten Sie tun?' + _W_msg_apps='Ein Programm installieren' + _W_msg_games='Ein Spiel installieren' + _W_msg_benchmarks='Einen Benchmark-Test installieren' + _W_msg_default="Standard wineprefix auswählen" + _W_msg_mkprefix="Neuen wineprefix erstellen" + _W_msg_unattended0="Automatische Installation deaktivieren" + _W_msg_unattended1="Automatische Installation aktivieren" + _W_msg_help="Hilfe anzeigen" + ;; pl*) _W_msg_title="Winetricks - wybierz prefiks Wine" - _W_msg_body='Co chcesz zrobić?' - _W_msg_apps='Zainstalować aplikację' - _W_msg_games='Zainstalować grę' - _W_msg_benchmarks='Zainstalować program sprawdzający wydajność komputera' - _W_msg_default="Wybrać domyślny prefiks Wine" - _W_msg_mkprefix="Stwórz nowy prefiks Wine" - _W_msg_unattended0="Wyłącz cichą instalację" - _W_msg_unattended1="Włącz cichą instalację" - _W_msg_help="Wyświetl pomoc" - ;; - *) _W_msg_title="Winetricks - choose a wineprefix" - _W_msg_body='What do you want to do?' - _W_msg_apps='Install an application' - _W_msg_games='Install a game' - _W_msg_benchmarks='Install a benchmark' - _W_msg_default="Select the default wineprefix" - _W_msg_mkprefix="Create new wineprefix" - _W_msg_unattended0="Disable silent install" - _W_msg_unattended1="Enable silent install" - _W_msg_help="View help" - ;; + _W_msg_body='Co chcesz zrobić?' + _W_msg_apps='Zainstalować aplikację' + _W_msg_games='Zainstalować grę' + _W_msg_benchmarks='Zainstalować program sprawdzający wydajność komputera' + _W_msg_default="Wybrać domyślny prefiks Wine" + _W_msg_mkprefix="Stwórz nowy prefiks Wine" + _W_msg_unattended0="Wyłącz cichą instalację" + _W_msg_unattended1="Włącz cichą instalację" + _W_msg_help="Wyświetl pomoc" + ;; + pt*) _W_msg_title="Winetricks - Escolha um wineprefix" + _W_msg_body='O que você quer fazer?' + _W_msg_apps='Instalar um programa' + _W_msg_games='Instalar um jogo' + _W_msg_benchmarks='Instalar um teste de desempenho/benchmark' + _W_msg_default="Selecionar o prefixo padrão wineprefix" + _W_msg_mkprefix="Criar novo prefixo wineprefix" + _W_msg_unattended0="Desativar instalação silenciosa" + _W_msg_unattended1="Ativar instalação silenciosa" + _W_msg_help="Ver ajuda" + ;; + *) _W_msg_title="Winetricks - choose a wineprefix" + _W_msg_body='What do you want to do?' + _W_msg_apps='Install an application' + _W_msg_games='Install a game' + _W_msg_benchmarks='Install a benchmark' + _W_msg_default="Select the default wineprefix" + _W_msg_mkprefix="Create new wineprefix" + _W_msg_unattended0="Disable silent install" + _W_msg_unattended1="Enable silent install" + _W_msg_help="View help" + ;; esac case "${W_OPT_UNATTENDED}" in 1) _W_cmd_unattended=attended; _W_msg_unattended="${_W_msg_unattended0}" ;; @@ -3687,6 +3520,7 @@ winetricks_prefixmenu() zh_TW*|zh_HK*) printf %s " FALSE prefix='${p}' '選擇管理 ${_W_msg_name}' " ;; de*) printf %s " FALSE prefix='${p}' '${_W_msg_name} auswählen' " ;; pl*) printf %s " FALSE prefix='${p}' 'Wybierz ${_W_msg_name}' " ;; + pt*) printf %s " FALSE prefix='${p}' 'Selecione ${_W_msg_name}' " ;; *) printf %s " FALSE prefix='${p}' 'Select ${_W_msg_name}' " ;; esac done >> "${WINETRICKS_WORKDIR}"/zenity.sh @@ -3737,13 +3571,17 @@ winetricks_mkprefixmenu() case ${LANG} in # TODO: translate to other languages de) _W_msg_title="Winetricks - Neues Wineprefix erstellen" - _W_msg_name="Name" - _W_msg_arch="Architektur" - ;; - *) _W_msg_title="Winetricks - create new wineprefix" - _W_msg_name="Name" - _W_msg_arch="Architecture" - ;; + _W_msg_name="Name" + _W_msg_arch="Architektur" + ;; + pt*) _W_msg_title="Winetricks - criar novo wineprefix" + _W_msg_name="Nome" + _W_msg_arch="Arquitetura" + ;; + *) _W_msg_title="Winetricks - create new wineprefix" + _W_msg_name="Name" + _W_msg_arch="Architecture" + ;; esac case ${WINETRICKS_GUI} in @@ -3770,117 +3608,131 @@ winetricks_mainmenu() { case ${LANG} in da*) _W_msg_title="Vælg en pakke-kategori - Nuværende præfiks er \"${WINEPREFIX}\"" - _W_msg_body='Hvad ønsker du at gøre?' - _W_msg_dlls="Install a Windows DLL" - _W_msg_fonts='Install a font' - _W_msg_settings='Change Wine settings' - _W_msg_winecfg='Run winecfg' - _W_msg_regedit='Run regedit' - _W_msg_taskmgr='Run taskmgr' - _W_msg_explorer='Run explorer' - _W_msg_uninstaller='Run uninstaller' - _W_msg_shell='Run a commandline shell (for debugging)' - _W_msg_folder='Browse files' - _W_msg_annihilate="Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX" - ;; + _W_msg_body='Hvad ønsker du at gøre?' + _W_msg_dlls="Install a Windows DLL" + _W_msg_fonts='Install a font' + _W_msg_settings='Change Wine settings' + _W_msg_winecfg='Run winecfg' + _W_msg_regedit='Run regedit' + _W_msg_taskmgr='Run taskmgr' + _W_msg_explorer='Run explorer' + _W_msg_uninstaller='Run uninstaller' + _W_msg_shell='Run a commandline shell (for debugging)' + _W_msg_folder='Browse files' + _W_msg_annihilate="Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX" + ;; de*) _W_msg_title="Pakettyp auswählen - Aktueller Präfix ist \"${WINEPREFIX}\"" - _W_msg_body='Was möchten Sie tun?' - _W_msg_dlls="Windows-DLL installieren" - _W_msg_fonts='Schriftart installieren' - _W_msg_settings='Wine Einstellungen ändern' - _W_msg_winecfg='winecfg starten' - _W_msg_regedit='regedit starten' - _W_msg_taskmgr='taskmgr starten' - _W_msg_explorer='explorer starten' - _W_msg_uninstaller='uninstaller starten' - _W_msg_shell='Eine Kommandozeile zum debuggen starten' - _W_msg_folder='Ordner durchsuchen' - _W_msg_annihilate="ALLE DATEIEN UND PROGRAMME IN DIESEM WINEPREFIX Löschen" - ;; + _W_msg_body='Was möchten Sie tun?' + _W_msg_dlls="Windows-DLL installieren" + _W_msg_fonts='Schriftart installieren' + _W_msg_settings='Wine Einstellungen ändern' + _W_msg_winecfg='winecfg starten' + _W_msg_regedit='regedit starten' + _W_msg_taskmgr='taskmgr starten' + _W_msg_explorer='explorer starten' + _W_msg_uninstaller='uninstaller starten' + _W_msg_shell='Eine Kommandozeile zum debuggen starten' + _W_msg_folder='Ordner durchsuchen' + _W_msg_annihilate="ALLE DATEIEN UND PROGRAMME IN DIESEM WINEPREFIX Löschen" + ;; pl*) _W_msg_title="Winetricks - obecny prefiks to \"${WINEPREFIX}\"" - _W_msg_body='Co chcesz zrobić w tym prefiksie?' - _W_msg_dlls="Zainstalować windowsową bibliotekę DLL lub komponent" - _W_msg_fonts='Zainstalować czcionkę' - _W_msg_settings='Zmienić ustawienia' - _W_msg_winecfg='Uruchomić winecfg' - _W_msg_regedit='Uruchomić edytor rejestru' - _W_msg_taskmgr='Uruchomić menedżer zadań' - _W_msg_explorer='Uruchomić explorer' - _W_msg_uninstaller='Uruchomić program odinstalowujący' - _W_msg_shell='Uruchomić powłokę wiersza poleceń (dla debugowania)' - _W_msg_folder='Przeglądać pliki' - _W_msg_annihilate="Usuńąć WSZYSTKIE DANE I APLIKACJE WEWNĄTRZ TEGO PREFIKSU WINE" - ;; + _W_msg_body='Co chcesz zrobić w tym prefiksie?' + _W_msg_dlls="Zainstalować windowsową bibliotekę DLL lub komponent" + _W_msg_fonts='Zainstalować czcionkę' + _W_msg_settings='Zmienić ustawienia' + _W_msg_winecfg='Uruchomić winecfg' + _W_msg_regedit='Uruchomić edytor rejestru' + _W_msg_taskmgr='Uruchomić menedżer zadań' + _W_msg_explorer='Uruchomić explorer' + _W_msg_uninstaller='Uruchomić program odinstalowujący' + _W_msg_shell='Uruchomić powłokę wiersza poleceń (dla debugowania)' + _W_msg_folder='Przeglądać pliki' + _W_msg_annihilate="Usuńąć WSZYSTKIE DANE I APLIKACJE WEWNĄTRZ TEGO PREFIKSU WINE" + ;; + pt*) _W_msg_title="Winetricks - o prefixo atual é \"${WINEPREFIX}\"" + _W_msg_body='O que você gostaria de fazer com este prefixo wineprefix?' + _W_msg_dlls="Instalar DLL ou componente do Windows" + _W_msg_fonts='Instalar fontes' + _W_msg_settings='Alterar configurações' + _W_msg_winecfg='Executar winecfg' + _W_msg_regedit='Executar regedit' + _W_msg_taskmgr='Executar taskmgr' + _W_msg_explorer='Executar explorer' + _W_msg_uninstaller='Executar desinstalador' + _W_msg_shell='Executar linha de comandos shell (para depuração)' + _W_msg_folder='Gerenciar arquivos' + _W_msg_annihilate="Apagar TODOS OS DADOS E APLICATIVOS DENTRO DESTE WINEPREFIX" + ;; ru*) _W_msg_title="Winetricks - текущий путь для wine (wineprefix) \"${WINEPREFIX}\"" - _W_msg_body='Что вы хотите сделать с этим wineprefix?' - _W_msg_dlls="Установить библиотеку DLL или компонент Windows" - _W_msg_fonts='Установить шрифт' - _W_msg_settings='Поменять настройки' - _W_msg_winecfg='Запустить winecfg (редактор настроек wine)' - _W_msg_regedit='Запустить regedit (редактор реестра)' - _W_msg_taskmgr='Запустить taskmgr (менеджер задач)' - _W_msg_explorer='Запустить explorer' - _W_msg_uninstaller='Запустить uninstaller (деинсталлятор)' - _W_msg_shell='Запустить графический терминал (для отладки)' - _W_msg_folder='Проводник файлов' - _W_msg_annihilate="Удалить ВСЕ ДАННЫЕ И ПРИЛОЖЕНИЯ В ЭТОМ WINEPREFIX" - ;; + _W_msg_body='Что вы хотите сделать с этим wineprefix?' + _W_msg_dlls="Установить библиотеку DLL или компонент Windows" + _W_msg_fonts='Установить шрифт' + _W_msg_settings='Поменять настройки' + _W_msg_winecfg='Запустить winecfg (редактор настроек wine)' + _W_msg_regedit='Запустить regedit (редактор реестра)' + _W_msg_taskmgr='Запустить taskmgr (менеджер задач)' + _W_msg_explorer='Запустить explorer' + _W_msg_uninstaller='Запустить uninstaller (деинсталлятор)' + _W_msg_shell='Запустить графический терминал (для отладки)' + _W_msg_folder='Проводник файлов' + _W_msg_annihilate="Удалить ВСЕ ДАННЫЕ И ПРИЛОЖЕНИЯ В ЭТОМ WINEPREFIX" + ;; uk*) _W_msg_title="Winetricks - поточний prefix \"${WINEPREFIX}\"" - _W_msg_body='Що Ви хочете зробити для цього wineprefix?' - _W_msg_dlls="Встановити Windows DLL чи компонент(и)" - _W_msg_fonts='Встановити шрифт' - _W_msg_settings='Змінити налаштування' - _W_msg_winecfg='Запустити winecfg' - _W_msg_regedit='Запустити regedit' - _W_msg_taskmgr='Запустити taskmgr' - _W_msg_explorer='Запустити explorer' - _W_msg_uninstaller='Встановлення/видалення програм' - _W_msg_shell='Запуск командної оболонки (для налагодження)' - _W_msg_folder='Перегляд файлів' - _W_msg_annihilate="Видалити УСІ ДАНІ ТА ПРОГРАМИ З ЦЬОГО WINEPREFIX" - ;; + _W_msg_body='Що Ви хочете зробити для цього wineprefix?' + _W_msg_dlls="Встановити Windows DLL чи компонент(и)" + _W_msg_fonts='Встановити шрифт' + _W_msg_settings='Змінити налаштування' + _W_msg_winecfg='Запустити winecfg' + _W_msg_regedit='Запустити regedit' + _W_msg_taskmgr='Запустити taskmgr' + _W_msg_explorer='Запустити explorer' + _W_msg_uninstaller='Встановлення/видалення програм' + _W_msg_shell='Запуск командної оболонки (для налагодження)' + _W_msg_folder='Перегляд файлів' + _W_msg_annihilate="Видалити УСІ ДАНІ ТА ПРОГРАМИ З ЦЬОГО WINEPREFIX" + ;; zh_CN*) _W_msg_title="Winetricks - 当前容器路径是 \"${WINEPREFIX}\"" - _W_msg_body='管理当前容器' - _W_msg_dlls="安装 Windows DLL 或组件" - _W_msg_fonts='安装字体' - _W_msg_settings='修改设置' - _W_msg_winecfg='运行 Wine 配置程序' - _W_msg_regedit='运行注册表' - _W_msg_taskmgr='运行任务管理器' - _W_msg_explorer='运行资源管理器' - _W_msg_uninstaller='运行卸载程序' - _W_msg_shell='运行命令提示窗口 (作为调试)' - _W_msg_folder='浏览容器中的文件' - _W_msg_annihilate="删除容器中所有数据和应用程序" - ;; + _W_msg_body='管理当前容器' + _W_msg_dlls="安装 Windows DLL 或组件" + _W_msg_fonts='安装字体' + _W_msg_settings='修改设置' + _W_msg_winecfg='运行 Wine 配置程序' + _W_msg_regedit='运行注册表' + _W_msg_taskmgr='运行任务管理器' + _W_msg_explorer='运行资源管理器' + _W_msg_uninstaller='运行卸载程序' + _W_msg_shell='运行命令提示窗口 (作为调试)' + _W_msg_folder='浏览容器中的文件' + _W_msg_annihilate="删除容器中所有数据和应用程序" + ;; zh_TW*|zh_HK*) _W_msg_title="Winetricks - 目前容器路徑是 \"${WINEPREFIX}\"" - _W_msg_body='管理目前容器' - _W_msg_dlls="安裝 Windows DLL 或套件" - _W_msg_fonts='安裝字型' - _W_msg_settings='修改設定' - _W_msg_winecfg='執行 Wine 設定程式' - _W_msg_regedit='執行登錄編輯程式' - _W_msg_taskmgr='執行工作管理員' - _W_msg_explorer='執行檔案總管' - _W_msg_uninstaller='執行解除安裝程式' - _W_msg_shell='執行命令提示視窗 (作為偵錯)' - _W_msg_folder='瀏覽容器中的檔案' - _W_msg_annihilate="刪除容器中所有資料和應用程式" - ;; - *) _W_msg_title="Winetricks - current prefix is \"${WINEPREFIX}\"" - _W_msg_body='What would you like to do to this wineprefix?' - _W_msg_dlls="Install a Windows DLL or component" - _W_msg_fonts='Install a font' - _W_msg_settings='Change settings' - _W_msg_winecfg='Run winecfg' - _W_msg_regedit='Run regedit' - _W_msg_taskmgr='Run taskmgr' - _W_msg_explorer='Run explorer' - _W_msg_uninstaller='Run uninstaller' - _W_msg_shell='Run a commandline shell (for debugging)' - _W_msg_folder='Browse files' - _W_msg_annihilate="Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX" - ;; + _W_msg_body='管理目前容器' + _W_msg_dlls="安裝 Windows DLL 或套件" + _W_msg_fonts='安裝字型' + _W_msg_settings='修改設定' + _W_msg_winecfg='執行 Wine 設定程式' + _W_msg_regedit='執行登錄編輯程式' + _W_msg_taskmgr='執行工作管理員' + _W_msg_explorer='執行檔案總管' + _W_msg_uninstaller='執行解除安裝程式' + _W_msg_shell='執行命令提示視窗 (作為偵錯)' + _W_msg_folder='瀏覽容器中的檔案' + _W_msg_annihilate="刪除容器中所有資料和應用程式" + ;; + *) _W_msg_title="Winetricks - current prefix is \"${WINEPREFIX}\"" + _W_msg_body='What would you like to do to this wineprefix?' + _W_msg_dlls="Install a Windows DLL or component" + _W_msg_fonts='Install a font' + _W_msg_settings='Change settings' + _W_msg_winecfg='Run winecfg' + _W_msg_regedit='Run regedit' + _W_msg_taskmgr='Run taskmgr' + _W_msg_explorer='Run explorer' + _W_msg_uninstaller='Run uninstaller' + _W_msg_shell='Run a commandline shell (for debugging)' + _W_msg_folder='Browse files' + _W_msg_annihilate="Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX" + ;; esac case ${WINETRICKS_GUI} in @@ -3908,7 +3760,7 @@ winetricks_mainmenu() FALSE shell '${_W_msg_shell}' \ FALSE folder '${_W_msg_folder}' \ FALSE annihilate '${_W_msg_annihilate}' \ - " + " ) > "${WINETRICKS_WORKDIR}"/zenity.sh sh "${WINETRICKS_WORKDIR}"/zenity.sh | tr '|' ' ' @@ -3943,29 +3795,32 @@ winetricks_settings_menu() # FIXME: these translations should really be centralized/reused: case ${LANG} in da*) _W_msg_title="Vælg en pakke - Nuværende præfiks er \"${WINEPREFIX}\"" - _W_msg_body='Which settings would you like to change?' - ;; + _W_msg_body='Which settings would you like to change?' + ;; de*) _W_msg_title="Winetricks - Aktueller Präfix ist \"${WINEPREFIX}\"" - _W_msg_body='Welche Einstellungen möchten Sie ändern?' - ;; + _W_msg_body='Welche Einstellungen möchten Sie ändern?' + ;; pl*) _W_msg_title="Winetricks - obecny prefiks to \"${WINEPREFIX}\"" - _W_msg_body='Jakie ustawienia chcesz zmienić?' - ;; + _W_msg_body='Jakie ustawienia chcesz zmienić?' + ;; + pt*) _W_msg_title="Winetricks - o prefixo atual é \"${WINEPREFIX}\"" + _W_msg_body='Quais configurações você gostaria de alterar?' + ;; ru*) _W_msg_title="Winetricks - текущий путь wine (wineprefix) \"${WINEPREFIX}\"" - _W_msg_body='Какие настройки вы хотите изменить?' - ;; + _W_msg_body='Какие настройки вы хотите изменить?' + ;; uk*) _W_msg_title="Winetricks - поточний prefix \"${WINEPREFIX}\"" - _W_msg_body='Які налаштування Ви хочете змінити?' - ;; + _W_msg_body='Які налаштування Ви хочете змінити?' + ;; zh_CN*) _W_msg_title="Winetricks - 当前容器路径是 \"${WINEPREFIX}\"" - _W_msg_body='您想要更改哪项设置?' - ;; + _W_msg_body='您想要更改哪项设置?' + ;; zh_TW*|zh_HK*) _W_msg_title="Winetricks - 目前容器路徑是 \"${WINEPREFIX}\"" - _W_msg_body='您想要變更哪項設定?' - ;; - *) _W_msg_title="Winetricks - current prefix is \"${WINEPREFIX}\"" - _W_msg_body='Which settings would you like to change?' - ;; + _W_msg_body='您想要變更哪項設定?' + ;; + *) _W_msg_title="Winetricks - current prefix is \"${WINEPREFIX}\"" + _W_msg_body='Which settings would you like to change?' + ;; esac case ${WINETRICKS_GUI} in @@ -4007,6 +3862,18 @@ winetricks_settings_menu() --width ${WINETRICKS_MENU_WIDTH} \ " ;; + pt*) printf %s "zenity \ + --title '${_W_msg_title}' \ + --text '${_W_msg_body}' \ + --list \ + --checklist \ + --column '' \ + --column Configuração \ + --column Título \ + --height ${WINETRICKS_MENU_HEIGHT} \ + --width ${WINETRICKS_MENU_WIDTH} \ + " + ;; ru*) printf %s "zenity \ --title '${_W_msg_title}' \ --text '${_W_msg_body}' \ @@ -4114,37 +3981,41 @@ winetricks_showmenu() { case ${LANG} in da*) _W_msg_title='Vælg en pakke' - _W_msg_body='Vilken pakke vil du installere?' - _W_cached="cached" - ;; + _W_msg_body='Vilken pakke vil du installere?' + _W_cached="cached" + ;; de*) _W_msg_title="Winetricks - Aktueller Prefix ist \"${WINEPREFIX}\"" - _W_msg_body='Welche Paket(e) möchten Sie installieren?' - _W_cached="gecached" - ;; + _W_msg_body='Welche Paket(e) möchten Sie installieren?' + _W_cached="gecached" + ;; pl*) _W_msg_title="Winetricks - obecny prefiks to \"${WINEPREFIX}\"" - _W_msg_body='Które paczki chesz zainstalować?' - _W_cached="zarchiwizowane" - ;; + _W_msg_body='Które paczki chesz zainstalować?' + _W_cached="zarchiwizowane" + ;; + pt*) _W_msg_title="Winetricks - o prefixo atual é \"${WINEPREFIX}\"" + _W_msg_body='Quais pacotes você gostaria de instalar?' + _W_cached="em cache" + ;; ru*) _W_msg_title="Winetricks - текущий путь wine (wineprefix) \"${WINEPREFIX}\"" - _W_msg_body='Какое приложение(я) вы хотите установить?' - _W_cached="в кэше" - ;; + _W_msg_body='Какое приложение(я) вы хотите установить?' + _W_cached="в кэше" + ;; uk*) _W_msg_title="Winetricks - поточний prefix \"${WINEPREFIX}\"" - _W_msg_body='Які пакунки Ви хочете встановити?' - _W_cached="кешовано" - ;; + _W_msg_body='Які пакунки Ви хочете встановити?' + _W_cached="кешовано" + ;; zh_CN*) _W_msg_title="Winetricks - 当前容器路径是 \"${WINEPREFIX}\"" - _W_msg_body='您想要安装什么应用程序?' - _W_cached="已缓存" - ;; + _W_msg_body='您想要安装什么应用程序?' + _W_cached="已缓存" + ;; zh_TW*|zh_HK*) _W_msg_title="Winetricks - 目前容器路徑是 \"${WINEPREFIX}\"" - _W_msg_body='您想要安裝什麼應用程式?' - _W_cached="已緩存" - ;; - *) _W_msg_title="Winetricks - current prefix is \"${WINEPREFIX}\"" - _W_msg_body='Which package(s) would you like to install?' - _W_cached="cached" - ;; + _W_msg_body='您想要安裝什麼應用程式?' + _W_cached="已緩存" + ;; + *) _W_msg_title="Winetricks - current prefix is \"${WINEPREFIX}\"" + _W_msg_body='Which package(s) would you like to install?' + _W_cached="cached" + ;; esac @@ -4166,7 +4037,7 @@ winetricks_showmenu() --height ${WINETRICKS_MENU_HEIGHT} \ --width ${WINETRICKS_MENU_WIDTH} \ " - ;; + ;; de*) printf %s "zenity \ --title '${_W_msg_title}' \ --text '${_W_msg_body}' \ @@ -4182,7 +4053,7 @@ winetricks_showmenu() --height ${WINETRICKS_MENU_HEIGHT} \ --width ${WINETRICKS_MENU_WIDTH} \ " - ;; + ;; pl*) printf %s "zenity \ --title '${_W_msg_title}' \ --text '${_W_msg_body}' \ @@ -4198,7 +4069,23 @@ winetricks_showmenu() --height ${WINETRICKS_MENU_HEIGHT} \ --width ${WINETRICKS_MENU_WIDTH} \ " - ;; + ;; + pt*) printf %s "zenity \ + --title '${_W_msg_title}' \ + --text '${_W_msg_body}' \ + --list \ + --checklist \ + --column '' \ + --column Pacote \ + --column Título \ + --column Publisher \ + --column Ano \ + --column Mídia \ + --column Status \ + --height ${WINETRICKS_MENU_HEIGHT} \ + --width ${WINETRICKS_MENU_WIDTH} \ + " + ;; ru*) printf %s "zenity \ --title '${_W_msg_title}' \ --text '${_W_msg_body}' \ @@ -4214,7 +4101,7 @@ winetricks_showmenu() --height ${WINETRICKS_MENU_HEIGHT} \ --width ${WINETRICKS_MENU_WIDTH} \ " - ;; + ;; uk*) printf %s "zenity \ --title '${_W_msg_title}' \ --text '${_W_msg_body}' \ @@ -4230,7 +4117,7 @@ winetricks_showmenu() --height ${WINETRICKS_MENU_HEIGHT} \ --width ${WINETRICKS_MENU_WIDTH} \ " - ;; + ;; zh_CN*) printf %s "zenity \ --title '${_W_msg_title}' \ --text '${_W_msg_body}' \ @@ -4246,7 +4133,7 @@ winetricks_showmenu() --height ${WINETRICKS_MENU_HEIGHT} \ --width ${WINETRICKS_MENU_WIDTH} \ " - ;; + ;; zh_TW*|zh_HK*) printf %s "zenity \ --title '${_W_msg_title}' \ --text '${_W_msg_body}' \ @@ -4262,7 +4149,7 @@ winetricks_showmenu() --height ${WINETRICKS_MENU_HEIGHT} \ --width ${WINETRICKS_MENU_WIDTH} \ " - ;; + ;; *) printf %s "zenity \ --title '${_W_msg_title}' \ --text '${_W_msg_body}' \ @@ -4278,7 +4165,7 @@ winetricks_showmenu() --height ${WINETRICKS_MENU_HEIGHT} \ --width ${WINETRICKS_MENU_WIDTH} \ " - ;; + ;; esac > "${WINETRICKS_WORKDIR}"/zenity.sh true > "${WINETRICKS_WORKDIR}"/installed.txt @@ -4410,20 +4297,24 @@ winetricks_is_installed() _W_prefix="${WINEPREFIX}" ;; esac + if test -d "${_W_prefix}/dosdevices"; then - # 'win7 vcrun2005' creates different file than 'winxp vcrun2005' - # so let it specify multiple, separated by | - _W_IFS="${IFS}" - IFS='|' - for _W_file_ in ${_W_file}; do - _W_file_unix="$(WINEPREFIX="${_W_prefix}" w_pathconv -u "${_W_file_}")" - if test -f "${_W_file_unix}" && ! grep -q "Wine placeholder DLL" "${_W_file_unix}"; then - IFS="${_W_IFS}" - unset _W_file _W_file_ _W_file_unix _W_prefix _W_IFS - return "${TRUE}" # installed - fi - done - IFS="${_W_IFS}" + # 'win7 vcrun2005' creates different file than 'winxp vcrun2005' + # so let it specify multiple, separated by | + _W_IFS="${IFS}" + IFS='|' + + for _W_file_ in ${_W_file}; do + _W_file_unix="$(WINEPREFIX="${_W_prefix}" w_pathconv -u "${_W_file_}")" + + if test -f "${_W_file_unix}" && ! grep -q "Wine placeholder DLL" "${_W_file_unix}"; then + IFS="${_W_IFS}" + unset _W_file _W_file_ _W_file_unix _W_prefix _W_IFS + return "${TRUE}" # installed + fi + done + + IFS="${_W_IFS}" fi ;; esac @@ -4498,6 +4389,7 @@ winetricks_list_all() da*) _W_cached="cached" ; _W_download="kan hentes" ;; de*) _W_cached="gecached" ; _W_download="herunterladbar";; pl*) _W_cached="zarchiwizowane" ; _W_download="do pobrania" ;; + pt*) _W_cached="em cache" ; _W_download="para download" ;; ru*) _W_cached="в кэше" ; _W_download="доступно для скачивания" ;; uk*) _W_cached="кешовано" ; _W_download="завантажуване" ;; zh_CN*) _W_cached="已缓存" ; _W_download="可下载" ;; @@ -4669,7 +4561,7 @@ winetricks_read_volume_name() winetricks_volname() { x=$(volname "$1" 2> /dev/null| sed 's/ *$//') - if test "x${x}" = "x"; then + if test -z "${x}"; then # UDF? See https://bugs.launchpad.net/bugs/678419 x=$(winetricks_read_volume_name "$1") fi @@ -4729,6 +4621,7 @@ winetricks_cache_iso() da*) w_warn "Forkert disk [${_W_volname}] indsat. Indsæt venligst disken [${_W_expected_volname}]" ;; de*) w_warn "Falsche Disk [${_W_volname}] eingelegt. Bitte legen Sie Disk [${_W_expected_volname}] ein!" ;; pl*) w_warn "Umieszczono zły dysk [${_W_volname}]. Proszę włożyć dysk [${_W_expected_volname}]" ;; + pt*) w_warn "Disco errado [${_W_volname}] inserido. Por favor insira o disco [${_W_expected_volname}]" ;; ru*) w_warn "Неверный диск [${_W_volname}]. Пожалуйста, вставьте диск [${_W_expected_volname}]" ;; uk*) w_warn "Неправильний диск [${_W_volname}]. Будь ласка, вставте диск [${_W_expected_volname}]" ;; zh_CN*) w_warn " [${_W_volname}] 光盘插入错误,请插入光盘 [${_W_expected_volname}]" ;; @@ -4746,16 +4639,17 @@ winetricks_cache_iso() # Use conv=noerror,sync to replace unreadable blocks with zeroes case ${WINETRICKS_OPT_DD} in dd) - ${WINETRICKS_OPT_DD} if=${WINETRICKS_DEV} of="${W_CACHE}"/temp.iso bs=2048 conv=noerror,sync & - WINETRICKS_DD_PID=$! - ;; + ${WINETRICKS_OPT_DD} if=${WINETRICKS_DEV} of="${W_CACHE}"/temp.iso bs=2048 conv=noerror,sync & + WINETRICKS_DD_PID=$! + ;; ddrescue) - if [ ! -x "$(command -v ddrescue)" ]; then - w_die "Please install ddrescue first." - fi - ${WINETRICKS_OPT_DD} -v -b 2048 ${WINETRICKS_DEV} "${W_CACHE}"/temp.iso & - WINETRICKS_DD_PID=$! - ;; + if [ ! -x "$(command -v ddrescue)" ]; then + w_die "Please install ddrescue first." + fi + + ${WINETRICKS_OPT_DD} -v -b 2048 ${WINETRICKS_DEV} "${W_CACHE}"/temp.iso & + WINETRICKS_DD_PID=$! + ;; esac echo "${WINETRICKS_DD_PID}" > "${WINETRICKS_WORKDIR}"/dd-pid @@ -5004,6 +4898,7 @@ winetricks_mount_real_volume() da*)_W_mountmsg="Indsæt venligst disken '${_W_expected_volname}' (krævet af pakken '${W_PACKAGE}')" ;; de*)_W_mountmsg="Bitte Disk '${_W_expected_volname}' einlegen (für Paket '${W_PACKAGE}')" ;; pl*) _W_mountmsg="Proszę włożyć dysk '${_W_expected_volname}' (potrzebny paczce '${W_PACKAGE}')" ;; + pt*) _W_mountmsg="Por favor insira o volume '${_W_expected_volname}' (necessário para o pacote '${W_PACKAGE}')" ;; ru*) _W_mountmsg="Пожалуйста, вставьте том '${_W_expected_volname}' (требуется для пакета '${W_PACKAGE}')" ;; uk*) _W_mountmsg="Будь ласка, вставте том '${_W_expected_volname}' (потрібний для пакунка '${W_PACKAGE}')" ;; zh_CN*) _W_mountmsg="请插入卷 '${_W_expected_volname}' (为包 '${W_PACKAGE} 所需')" ;; @@ -5179,6 +5074,7 @@ winetricks_set_wineprefix() # 64-bit prefixes still have plenty of issues: case ${LANG} in ru*) w_warn "Вы используете 64-битный WINEPREFIX. Важно: многие ветки устанавливают только 32-битные версии пакетов. Если у вас возникли проблемы, пожалуйста, проверьте еще раз на чистом 32-битном WINEPREFIX до отправки отчета об ошибке." ;; + pt*) w_warn "Você está usando um WINEPREFIX de 64-bit. Observe que muitos casos instalam apenas versões de pacotes de 32-bit. Se você encontrar problemas, teste novamente em um WINEPREFIX limpo de 32-bit antes de relatar um bug." ;; *) w_warn "You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug." ;; esac else @@ -5279,6 +5175,7 @@ winetricks_annihilate_wineprefix() case ${LANG} in uk*) w_askpermission "Бажаєте видалити '${WINEPREFIX}'?" ;; pl*) w_askpermission "Czy na pewno chcesz usunąć prefiks ${WINEPREFIX} i wszystkie jego elementy?" ;; + pt*) w_askpermission "Apagar ${WINEPREFIX}, Estes apps, ícones e ítens do menu?" ;; *) w_askpermission "Delete ${WINEPREFIX}, its apps, icons, and menu items?" ;; esac @@ -5292,7 +5189,7 @@ winetricks_annihilate_wineprefix() # deep to avoid extreme slowdown if user has lots of files ( if ! test "${XDG_DESKTOP_DIR}" && test -f "${XDG_CONFIG_HOME}/user-dirs.dirs"; then - # shellcheck disable=SC1090 + # shellcheck disable=SC1090,SC1091 . "${XDG_CONFIG_HOME}/user-dirs.dirs" fi find "${XDG_DESKTOP_DIR}" -maxdepth 1 -type f -name '*.desktop' -exec grep -q -l "${WINEPREFIX}" '{}' ';' -exec rm '{}' ';' @@ -5622,6 +5519,7 @@ Options: --country=CC Set country code to CC and don't detect your IP address -f, --force Don't check whether packages were already installed --gui Show gui diagnostics even when driven by commandline + --gui=OPT Set OPT to kdialog or zenity to override GUI engine --isolate Install each app or game in its own bottle (WINEPREFIX) --self-update Update this application to the last version --update-rollback Rollback the last self update @@ -5663,7 +5561,7 @@ winetricks_handle_option() case "$1" in --country=*) W_COUNTRY="${1##--country=}" ;; -f|--force) WINETRICKS_FORCE=1;; - --gui) winetricks_detect_gui;; + --gui*) winetricks_detect_gui "${1##--gui=}";; -h|--help) winetricks_usage ; exit 0 ;; --isolate) WINETRICKS_OPT_SHAREDPREFIX=0 ;; -k|--keep_isos) WINETRICKS_OPT_KEEPISOS=1 ;; @@ -5728,6 +5626,7 @@ winetricks_install_app() da*) fail_msg="Installationen af pakken $1 fejlede" ;; de*) fail_msg="Installieren von Paket $1 gescheitert" ;; pl*) fail_msg="Niepowodzenie przy instalacji paczki $1" ;; + pt*) fail_msg="Falha ao instalar o pacote $1" ;; ru*) fail_msg="Ошибка установки пакета $1" ;; uk*) fail_msg="Помилка встановлення пакунка $1" ;; zh_CN*) fail_msg="$1 安装失败" ;; @@ -5796,7 +5695,7 @@ helper_d3dx9_xx() w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x86*" "${W_CACHE}"/directx9/${DIRECTX_NAME} for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" done if test "${W_ARCH}" = "win64"; then @@ -5915,7 +5814,7 @@ w_metadata amstream dlls \ load_amstream() { helper_win7sp1 x86_microsoft-windows-directshow-other_31bf3856ad364e35_6.1.7601.17514_none_0f58f1e53efca91e/amstream.dll - w_try cp "${W_TMP}/x86_microsoft-windows-directshow-other_31bf3856ad364e35_6.1.7601.17514_none_0f58f1e53efca91e/amstream.dll" "${W_SYSTEM32_DLLS}/amstream.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-directshow-other_31bf3856ad364e35_6.1.7601.17514_none_0f58f1e53efca91e/amstream.dll" "${W_SYSTEM32_DLLS}/amstream.dll" w_override_dlls native,builtin amstream @@ -5923,7 +5822,7 @@ load_amstream() if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-directshow-other_31bf3856ad364e35_6.1.7601.17514_none_6b778d68f75a1a54/amstream.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-directshow-other_31bf3856ad364e35_6.1.7601.17514_none_6b778d68f75a1a54/amstream.dll" "${W_SYSTEM64_DLLS}/amstream.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-directshow-other_31bf3856ad364e35_6.1.7601.17514_none_6b778d68f75a1a54/amstream.dll" "${W_SYSTEM64_DLLS}/amstream.dll" w_try_regsvr64 amstream.dll fi } @@ -6017,7 +5916,7 @@ load_cabinet() w_download https://web.archive.org/web/20060718123742/http://ftp.gunadarma.ac.id/pub/driver/itegno/USB%20Software/MDAC/MDAC_TYP.EXE 36d2a3099e6286ae3fab181a502a95fbd825fa5ddb30bf09b345abc7f1f620b4 w_try_cabextract --directory="${W_TMP}" "${W_CACHE}/${W_PACKAGE}/${file1}" - w_try cp "${W_TMP}/cabinet.dll" "${W_SYSTEM32_DLLS}/cabinet.dll" + w_try_cp_dll "${W_TMP}/cabinet.dll" "${W_SYSTEM32_DLLS}/cabinet.dll" w_override_dlls native,builtin cabinet } @@ -6082,7 +5981,7 @@ load_comctl32() w_try "${WINE}" "${W_CACHE}/${W_PACKAGE}/${file1}" "/T:${W_TMP_WIN}" /c ${W_OPT_UNATTENDED:+/q} w_try_unzip "${W_TMP}" "${W_TMP}"/comctl32.exe w_try "${WINE}" "${W_TMP}"/x86/50ComUpd.Exe "/T:${W_TMP_WIN}" /c ${W_OPT_UNATTENDED:+/q} - w_try cp "${W_TMP}"/comcnt.dll "${W_SYSTEM32_DLLS}"/comctl32.dll + w_try_cp_dll "${W_TMP}"/comcnt.dll "${W_SYSTEM32_DLLS}"/comctl32.dll w_override_dlls native,builtin comctl32 @@ -6168,7 +6067,7 @@ load_binkw32() w_download https://web.archive.org/web/20160221223726if_/http://www.down-dll.com/dll/b/__32-binkw32.dll3.0.0.0.zip 1d5efda8e4af796319b94034ba67b453cbbfddd81eb7d94fd059b40e237fa75d w_try_unzip "${W_TMP}" "${W_CACHE}"/binkw32/__32-binkw32.dll3.0.0.0.zip - w_try cp "${W_TMP}"/binkw32.dll "${W_SYSTEM32_DLLS}"/binkw32.dll + w_try_cp_dll "${W_TMP}"/binkw32.dll "${W_SYSTEM32_DLLS}"/binkw32.dll w_override_dlls native binkw32 } @@ -6191,10 +6090,12 @@ load_d3dcompiler_42() w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x86*" "${W_CACHE}"/directx9/${DIRECTX_NAME} for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" done + if test "${W_ARCH}" = "win64"; then w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x64*" "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*x64.cab; do w_try_cabextract -d "${W_SYSTEM64_DLLS}" -L -F "${dllname}.dll" "${x}" done @@ -6224,11 +6125,14 @@ load_d3dcompiler_43() helper_directx_Jun2010 w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x86*" "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" done + if test "${W_ARCH}" = "win64"; then w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x64*" "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*x64.cab; do w_try_cabextract -d "${W_SYSTEM64_DLLS}" -L -F "${dllname}.dll" "${x}" done @@ -6280,12 +6184,12 @@ load_d3dcompiler_47() w_download https://download-installer.cdn.mozilla.net/pub/firefox/releases/62.0.3/win32/ach/Firefox%20Setup%2062.0.3.exe "d6edb4ff0a713f417ebd19baedfe07527c6e45e84a6c73ed8c66a33377cc0aca" "FirefoxSetup62.0.3-win32.exe" w_try_7z "${W_TMP}/win32" "${W_CACHE}/d3dcompiler_47/FirefoxSetup62.0.3-win32.exe" "core/d3dcompiler_47.dll" - w_try cp "${W_TMP}/win32/core/d3dcompiler_47.dll" "${W_SYSTEM32_DLLS}/d3dcompiler_47.dll" + w_try_cp_dll "${W_TMP}/win32/core/d3dcompiler_47.dll" "${W_SYSTEM32_DLLS}/d3dcompiler_47.dll" if [ "${W_ARCH}" = "win64" ]; then w_download https://download-installer.cdn.mozilla.net/pub/firefox/releases/62.0.3/win64/ach/Firefox%20Setup%2062.0.3.exe "721977f36c008af2b637aedd3f1b529f3cfed6feb10f68ebe17469acb1934986" "FirefoxSetup62.0.3-win64.exe" w_try_7z "${W_TMP}/win64" "${W_CACHE}/d3dcompiler_47/FirefoxSetup62.0.3-win64.exe" "core/d3dcompiler_47.dll" - w_try cp "${W_TMP}/win64/core/d3dcompiler_47.dll" "${W_SYSTEM64_DLLS}/d3dcompiler_47.dll" + w_try_cp_dll "${W_TMP}/win64/core/d3dcompiler_47.dll" "${W_SYSTEM64_DLLS}/d3dcompiler_47.dll" fi w_override_dlls native d3dcompiler_47 @@ -6327,11 +6231,14 @@ load_d3dx9() # Kinder, less invasive directx - only extract and override d3dx9_??.dll w_try_cabextract -d "${W_TMP}" -L -F '*d3dx9*x86*' "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'd3dx9*.dll' "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'd3dx9*.dll' "${x}" done + if test "${W_ARCH}" = "win64"; then w_try_cabextract -d "${W_TMP}" -L -F '*d3dx9*x64*' "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*x64.cab; do w_try_cabextract -d "${W_SYSTEM64_DLLS}" -L -F 'd3dx9*.dll' "${x}" done @@ -6661,10 +6568,12 @@ load_d3dx11_42() w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x86*" "${W_CACHE}"/directx9/${DIRECTX_NAME} for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" done + if test "${W_ARCH}" = "win64"; then w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x64*" "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*x64.cab; do w_try_cabextract -d "${W_SYSTEM64_DLLS}" -L -F "${dllname}.dll" "${x}" done @@ -6691,10 +6600,12 @@ load_d3dx11_43() w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x86*" "${W_CACHE}"/directx9/${DIRECTX_NAME} for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" done + if test "${W_ARCH}" = "win64"; then w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x64*" "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*x64.cab; do w_try_cabextract -d "${W_SYSTEM64_DLLS}" -L -F "${dllname}.dll" "${x}" done @@ -6720,10 +6631,12 @@ load_d3dx10() # Kinder, less invasive directx10 - only extract and override d3dx10_??.dll w_try_cabextract -d "${W_TMP}" -L -F '*d3dx10*x86*' "${W_CACHE}"/directx9/${DIRECTX_NAME} for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'd3dx10*.dll' "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'd3dx10*.dll' "${x}" done + if test "${W_ARCH}" = "win64"; then w_try_cabextract -d "${W_TMP}" -L -F '*d3dx10*x64*' "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*x64.cab; do w_try_cabextract -d "${W_SYSTEM64_DLLS}" -L -F 'd3dx10*.dll' "${x}" done @@ -6752,10 +6665,12 @@ load_d3dx10_43() w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x86*" "${W_CACHE}"/directx9/${DIRECTX_NAME} for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F "${dllname}.dll" "${x}" done + if test "${W_ARCH}" = "win64"; then w_try_cabextract -d "${W_TMP}" -L -F "*${dllname}*x64*" "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*x64.cab; do w_try_cabextract -d "${W_SYSTEM64_DLLS}" -L -F "${dllname}.dll" "${x}" done @@ -6798,7 +6713,7 @@ load_dbghelp() { helper_winxpsp3 i386/dbghelp.dll - w_try cp -f "${W_TMP}"/i386/dbghelp.dll "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}"/i386/dbghelp.dll "${W_SYSTEM32_DLLS}" w_override_dlls native dbghelp } @@ -6983,9 +6898,9 @@ load_dpvoice() w_try_cabextract -d "${W_TMP}" -L -F 'dxnt.cab' "${W_CACHE}"/directx9/${DIRECTX_NAME} for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'dpvoice.dll' "${x}" - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'dpvvox.dll' "${x}" - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'dpvacm.dll' "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'dpvoice.dll' "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'dpvvox.dll' "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'dpvacm.dll' "${x}" done w_override_dlls native dpvoice dpvvox dpvacm w_try_regsvr dpvoice.dll @@ -7163,7 +7078,7 @@ helper_dxvk_d9vk() #---------------------------------------------------------------- -w_metadata dxvk054 dlls \ +w_metadata dxvk0054 dlls \ title="Vulkan-based D3D11 implementation for Linux / Wine (0.54)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7172,14 +7087,14 @@ w_metadata dxvk054 dlls \ installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file2="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk054() +load_dxvk0054() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.54/dxvk-0.54.tar.gz" 1c2f186baaa01d2de7b832f6f05021bdd29eccb65fc197c8b15adfd4e08f9640 helper_dxvk_d9vk "${file1}" "3.10" "1.1.72" "dxgi,d3d11" } -w_metadata dxvk060 dlls \ +w_metadata dxvk0060 dlls \ title="Vulkan-based D3D11 implementation for Linux / Wine (0.60)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7188,14 +7103,14 @@ w_metadata dxvk060 dlls \ installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file2="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk060() +load_dxvk0060() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.60/dxvk-0.60.tar.gz" 27d6f700241d3ec3b6c002c3d739bb0e3f210ec916ecb5a62d9204e9e50f2c4a helper_dxvk_d9vk "${file1}" "3.10" "1.1.72" "dxgi,d3d11" } -w_metadata dxvk061 dlls \ +w_metadata dxvk0061 dlls \ title="Vulkan-based D3D11 implementation for Linux / Wine (0.61)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7204,14 +7119,14 @@ w_metadata dxvk061 dlls \ installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file2="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk061() +load_dxvk0061() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.61/dxvk-0.61.tar.gz" d04388f026dc0d8b276b08f7db74fb3556cbbc8f762401eb5ef52629ee39ded1 helper_dxvk_d9vk "${file1}" "3.10" "1.1.72" "dxgi,d3d11" } -w_metadata dxvk062 dlls \ +w_metadata dxvk0062 dlls \ title="Vulkan-based D3D11 implementation for Linux / Wine (0.62)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7220,14 +7135,14 @@ w_metadata dxvk062 dlls \ installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file2="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk062() +load_dxvk0062() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.62/dxvk-0.62.tar.gz" b9dbb57908e24b094b68f665ad729b6ee277eecc8ba04a6e6e4f8a4d2dfd94e3 helper_dxvk_d9vk "${file1}" "3.10" "1.1.72" "dxgi,d3d11" } -w_metadata dxvk063 dlls \ +w_metadata dxvk0063 dlls \ title="Vulkan-based D3D11 implementation for Linux / Wine (0.63)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7236,14 +7151,14 @@ w_metadata dxvk063 dlls \ installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file2="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk063() +load_dxvk0063() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.63/dxvk-0.63.tar.gz" 696df816bd9640770dee14f932bc641a16261fccf76be7c28d812a64ca6040fa helper_dxvk_d9vk "${file1}" "3.18" "1.1.80" "dxgi,d3d11" } -w_metadata dxvk064 dlls \ +w_metadata dxvk0064 dlls \ title="Vulkan-based D3D11 implementation for Linux / Wine (0.64)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7252,14 +7167,14 @@ w_metadata dxvk064 dlls \ installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file2="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk064() +load_dxvk0064() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.64/dxvk-0.64.tar.gz" 2e03e40ff0a9d36f96a06137f3fa9110ebaea230d0bf6c22cf6399e16e97fb9c helper_dxvk_d9vk "${file1}" "3.18" "1.1.80" "dxgi,d3d11" } -w_metadata dxvk065 dlls \ +w_metadata dxvk0065 dlls \ title="Vulkan-based D3D11 implementation for Linux / Wine (0.65)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7268,14 +7183,14 @@ w_metadata dxvk065 dlls \ installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file2="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk065() +load_dxvk0065() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.65/dxvk-0.65.tar.gz" 7b4eb42e693f925d0aff90bae261b20c50428602382ee94a3e3860b2ad1ebad0 helper_dxvk_d9vk "${file1}" "3.18" "1.1.80" "dxgi,d3d11" } -w_metadata dxvk070 dlls \ +w_metadata dxvk0070 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.70)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7287,14 +7202,14 @@ w_metadata dxvk070 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk070() +load_dxvk0070() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.70/dxvk-0.70.tar.gz" 310546d530be494a35cae49b707fef4b073269d811aac25bdf72899ed1df4e9f helper_dxvk_d9vk "${file1}" "3.18" "1.1.80" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk071 dlls \ +w_metadata dxvk0071 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.71)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7306,14 +7221,14 @@ w_metadata dxvk071 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk071() +load_dxvk0071() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.71/dxvk-0.71.tar.gz" fbe66337d1450f366961a7699253cd7a96c12a88c2fcda64b79be1cbb13d37d5 helper_dxvk_d9vk "${file1}" "3.18" "1.1.80" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk072 dlls \ +w_metadata dxvk0072 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.72)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7325,14 +7240,14 @@ w_metadata dxvk072 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk072() +load_dxvk0072() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.72/dxvk-0.72.tar.gz" bc84f48f99cf5add3c8919a43d7a9c0bf208c994dc58326a636b56b8db650c52 helper_dxvk_d9vk "${file1}" "3.18" "1.1.84" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk080 dlls \ +w_metadata dxvk0080 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.80)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7344,7 +7259,7 @@ w_metadata dxvk080 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk080() +load_dxvk0080() { # https://github.com/doitsujin/dxvk # 2017/09/23: f9e736cdbf1e83e45ca748652a94a3a189fc5accde1eac549b2ba5af8f7acacb @@ -7354,7 +7269,7 @@ load_dxvk080() helper_dxvk_d9vk "${file1}" "3.18" "1.1.84" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk081 dlls \ +w_metadata dxvk0081 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.81)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7366,14 +7281,14 @@ w_metadata dxvk081 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk081() +load_dxvk0081() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.81/dxvk-0.81.tar.gz" 9bf6eda9ae4ee74b509e07dfe9cc003dfa4bba192b519dacdd542a57f6a43869 helper_dxvk_d9vk "${file1}" "3.18" "1.1.84" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk090 dlls \ +w_metadata dxvk0090 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.90)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7385,14 +7300,14 @@ w_metadata dxvk090 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk090() +load_dxvk0090() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.90/dxvk-0.90.tar.gz" 15bce7b282065054ff9233b33738bf1d2c74b16829361cbd6843bc2f5dfe4509 helper_dxvk_d9vk "${file1}" "3.19" "1.1.87" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk091 dlls \ +w_metadata dxvk0091 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.91)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7404,14 +7319,14 @@ w_metadata dxvk091 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk091() +load_dxvk0091() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.91/dxvk-0.91.tar.gz" 5296106ac3a8c631d7f26fa46dbff4be1332cda14fa493fd89ccf97e050c4855 helper_dxvk_d9vk "${file1}" "3.19" "1.1.87" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk092 dlls \ +w_metadata dxvk0092 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.92)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7423,14 +7338,14 @@ w_metadata dxvk092 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk092() +load_dxvk0092() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.92/dxvk-0.92.tar.gz" e22c0ae4693aac88562c7a9a97b3316e086b9048c9f8f9e128923ac1611a5c49 helper_dxvk_d9vk "${file1}" "3.19" "1.1.87" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk093 dlls \ +w_metadata dxvk0093 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.93)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7442,14 +7357,14 @@ w_metadata dxvk093 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk093() +load_dxvk0093() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.93/dxvk-0.93.tar.gz" 4d964e4e10e67ba7705312496e472ae9859520a78d8742d6d377886318c95e53 helper_dxvk_d9vk "${file1}" "4.0" "1.1.93" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk094 dlls \ +w_metadata dxvk0094 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.94)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7461,14 +7376,14 @@ w_metadata dxvk094 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk094() +load_dxvk0094() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.94/dxvk-0.94.tar.gz" 1f06bfac5b435b62b972806fb3bbd86f7ccae2399b4451e85ae414e03d3712a3 helper_dxvk_d9vk "${file1}" "4.0" "1.1.93" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk095 dlls \ +w_metadata dxvk0095 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.95)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7480,14 +7395,14 @@ w_metadata dxvk095 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk095() +load_dxvk0095() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.95/dxvk-0.95.tar.gz" 1eea48149f6e94c3c74ecddd92df4f9daa67ab28d0fca548bde5cd40f0e486bf helper_dxvk_d9vk "${file1}" "4.0" "1.1.93" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk096 dlls \ +w_metadata dxvk0096 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (0.96)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7499,14 +7414,14 @@ w_metadata dxvk096 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk096() +load_dxvk0096() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v0.96/dxvk-0.96.tar.gz" 9d054c1e7a4f59825c651b14d3cfbf0d8c724763f485b3d59c89f1d7194b2206 helper_dxvk_d9vk "${file1}" "4.0" "1.1.93" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk100 dlls \ +w_metadata dxvk1000 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.0)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7518,14 +7433,14 @@ w_metadata dxvk100 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk100() +load_dxvk1000() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.0/dxvk-1.0.tar.gz" 8c8d26544609532201c10e6f5309bf5e913b5ca5b985932928ef9ab238de6dc2 helper_dxvk_d9vk "${file1}" "4.5" "1.1.101" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk101 dlls \ +w_metadata dxvk1001 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.0.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7537,14 +7452,14 @@ w_metadata dxvk101 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk101() +load_dxvk1001() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.0.1/dxvk-1.0.1.tar.gz" 739847cdd14b302dac600c66bc6617d7814945df6d4d7b6c91fecfa910e3b1b1 helper_dxvk_d9vk "${file1}" "4.5" "1.1.101" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk102 dlls \ +w_metadata dxvk1002 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.0.2)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7556,14 +7471,14 @@ w_metadata dxvk102 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk102() +load_dxvk1002() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.0.2/dxvk-1.0.2.tar.gz" f9504b188488d1102cba7e82c28681708f39e151af1c1ef7ebeac82d729c01ac helper_dxvk_d9vk "${file1}" "4.5" "1.1.101" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk103 dlls \ +w_metadata dxvk1003 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.0.3)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7575,14 +7490,14 @@ w_metadata dxvk103 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk103() +load_dxvk1003() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.0.3/dxvk-1.0.3.tar.gz" 984d28ab3a112be207d6339da19113d1117e56731ed413d0e202e6fd1391a6ae helper_dxvk_d9vk "${file1}" "4.5" "1.1.101" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk111 dlls \ +w_metadata dxvk1011 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.1.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7594,14 +7509,14 @@ w_metadata dxvk111 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk111() +load_dxvk1011() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.1.1/dxvk-1.1.1.tar.gz" 346c523953f72ac5885071c4384039faf01f6f43a88d5b0c12d94bfaa9598c1d helper_dxvk_d9vk "${file1}" "4.5" "1.1.104" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk120 dlls \ +w_metadata dxvk1020 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.2)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7613,14 +7528,14 @@ w_metadata dxvk120 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk120() +load_dxvk1020() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.2/dxvk-1.2.tar.gz" 414751a810143ced34d1f4f0eb2a40e79b4c9726318994b244b70d1b3a6f8b32 helper_dxvk_d9vk "${file1}" "4.5" "1.1.104" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk121 dlls \ +w_metadata dxvk1021 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.2.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7632,14 +7547,14 @@ w_metadata dxvk121 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk121() +load_dxvk1021() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.2.1/dxvk-1.2.1.tar.gz" 192beca0a34d13f101e9c2545d9533cf84830a23b566bed185c022ed754c3daa helper_dxvk_d9vk "${file1}" "4.5" "1.1.104" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk122 dlls \ +w_metadata dxvk1022 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.2.2)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7651,14 +7566,14 @@ w_metadata dxvk122 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk122() +load_dxvk1022() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.2.2/dxvk-1.2.2.tar.gz" dfe620a387222dc117a6722171e0bca400755a3e1c6459350c710dfda40b6701 helper_dxvk_d9vk "${file1}" "4.5" "1.1.104" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk123 dlls \ +w_metadata dxvk1023 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.2.3)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7670,14 +7585,14 @@ w_metadata dxvk123 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk123() +load_dxvk1023() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.2.3/dxvk-1.2.3.tar.gz" 29ce345b3d962dbd8ec8bfda190635a21f62124e3e46f06e89aa2f3b1e230321 helper_dxvk_d9vk "${file1}" "4.5" "1.1.104" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk130 dlls \ +w_metadata dxvk1030 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7689,14 +7604,14 @@ w_metadata dxvk130 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk130() +load_dxvk1030() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.3/dxvk-1.3.tar.gz" d15fac6503ea614986237052d554d7cbd2dbf5f3486feb6217e64bae83cfc2cf helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk131 dlls \ +w_metadata dxvk1031 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7708,14 +7623,14 @@ w_metadata dxvk131 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk131() +load_dxvk1031() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.3.1/dxvk-1.3.1.tar.gz" 2f6636dbd591ea9de20b30a33c9c8c0985a4939f6503f90ca5c7edafd01524a3 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk132 dlls \ +w_metadata dxvk1032 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3.2)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7727,14 +7642,14 @@ w_metadata dxvk132 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk132() +load_dxvk1032() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.3.2/dxvk-1.3.2.tar.gz" aa70890a17b48be27648d15cb837b5167c99f75ee32ae0c94a85ec1f1fdc4675 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk133 dlls \ +w_metadata dxvk1033 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3.3)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7746,14 +7661,14 @@ w_metadata dxvk133 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk133() +load_dxvk1033() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.3.3/dxvk-1.3.3.tar.gz" 828171ad1dbb6b51f367fa46cf33f8db4a0b1b990cd2e95654d6a65500d230b7 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk134 dlls \ +w_metadata dxvk1034 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3.4)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7765,14 +7680,14 @@ w_metadata dxvk134 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk134() +load_dxvk1034() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.3.4/dxvk-1.3.4.tar.gz" 4683e2ad4221b16572b0d939da5a05ab9a16b2b62c2f4e0c8bf3b2cdb27918ff helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk140 dlls \ +w_metadata dxvk1040 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7784,14 +7699,14 @@ w_metadata dxvk140 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk140() +load_dxvk1040() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.4/dxvk-1.4.tar.gz" bf22785de1ce728bbdcfb4615035924112b4718049ca2cade5861b03735181de helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk141 dlls \ +w_metadata dxvk1041 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7803,14 +7718,14 @@ w_metadata dxvk141 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk141() +load_dxvk1041() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.4.1/dxvk-1.4.1.tar.gz" 574ec4dc5201e45d70472228f0c6695426f0392503ec7a47d6092600aac53a07 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk142 dlls \ +w_metadata dxvk1042 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.2)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7822,14 +7737,14 @@ w_metadata dxvk142 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk142() +load_dxvk1042() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.4.2/dxvk-1.4.2.tar.gz" 5adfd71ee0299798af4402f09f113f88929af429b6889af334cff5b84b84dbe6 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk143 dlls \ +w_metadata dxvk1043 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.3)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7841,14 +7756,14 @@ w_metadata dxvk143 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk143() +load_dxvk1043() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.4.3/dxvk-1.4.3.tar.gz" e4b9e7fc8faf2dd1ddf5206e14939a822034a85778d54a6950767d68909726f7 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk144 dlls \ +w_metadata dxvk1044 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.4)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7860,14 +7775,14 @@ w_metadata dxvk144 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk144() +load_dxvk1044() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.4.4/dxvk-1.4.4.tar.gz" a845285c8dfc63c7d00c14520b58fc6048796fef69fea49617edb46662a0ba31 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk145 dlls \ +w_metadata dxvk1045 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.5)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7879,14 +7794,14 @@ w_metadata dxvk145 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk145() +load_dxvk1045() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.4.5/dxvk-1.4.5.tar.gz" 566c93dce84c3c2f39938428ddcca27a5bb2f5068eb4f868ff2126389b965cd1 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk146 dlls \ +w_metadata dxvk1046 dlls \ title="Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.6)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7898,7 +7813,7 @@ w_metadata dxvk146 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk146() +load_dxvk1046() { # https://github.com/doitsujin/dxvk # Original sha256sum: 1aa069f5ea7d3d6e374bda332d12f9207f1a21e9811c4d4d82487416420ee73e @@ -7907,7 +7822,7 @@ load_dxvk146() helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d10core,d3d10,d3d11" } -w_metadata dxvk150 dlls \ +w_metadata dxvk1050 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7920,14 +7835,14 @@ w_metadata dxvk150 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk150() +load_dxvk1050() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.5/dxvk-1.5.tar.gz" 90cfae0bb43fed1e46442d20e2ab3bf448ebdff1e9f4f59841dc922aa3a36d3b helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d9,d3d10core,d3d10,d3d11" } -w_metadata dxvk151 dlls \ +w_metadata dxvk1051 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7940,14 +7855,14 @@ w_metadata dxvk151 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk151() +load_dxvk1051() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.5.1/dxvk-1.5.1.tar.gz" 474ce9995edd47a3bd347a8f3263f35cf8df2676f5b16668bf38efa298d75c01 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d9,d3d10core,d3d10,d3d11" } -w_metadata dxvk152 dlls \ +w_metadata dxvk1052 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.2)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7960,14 +7875,14 @@ w_metadata dxvk152 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk152() +load_dxvk1052() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.5.2/dxvk-1.5.2.tar.gz" 684ba886b5ed922c2417753d8178f923c695258c69cc8f778bb59b99bbf62477 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d9,d3d10core,d3d10,d3d11" } -w_metadata dxvk153 dlls \ +w_metadata dxvk1053 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.3)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -7980,14 +7895,14 @@ w_metadata dxvk153 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk153() +load_dxvk1053() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.5.3/dxvk-1.5.3.tar.gz" b845c9c492e32648dee44d058c189eff8534e5490a80a3b2a921248bc72e33bd helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d9,d3d10core,d3d10,d3d11" } -w_metadata dxvk154 dlls \ +w_metadata dxvk1054 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.4)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8000,14 +7915,14 @@ w_metadata dxvk154 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk154() +load_dxvk1054() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.5.4/dxvk-1.5.4.tar.gz" 8e4fd15525def9bcaa9cc1b4496f76a2664ba4806b02a5ac0eddd703d7bbdea7 helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d9,d3d10core,d3d10,d3d11" } -w_metadata dxvk155 dlls \ +w_metadata dxvk1055 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.5)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8020,14 +7935,14 @@ w_metadata dxvk155 dlls \ installed_file4="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file5="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk155() +load_dxvk1055() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.5.5/dxvk-1.5.5.tar.gz" f4c57274ac85d71b192e2a0ac095f285e26cc054c87c6c34c081f919147539eb helper_dxvk_d9vk "${file1}" "4.20" "1.1.113" "dxgi,d3d9,d3d10core,d3d10,d3d11" } -w_metadata dxvk160 dlls \ +w_metadata dxvk1060 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.6)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8038,14 +7953,14 @@ w_metadata dxvk160 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk160() +load_dxvk1060() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.6/dxvk-1.6.tar.gz" a493e0802e02629244672c44ad92c40fa0813b38908677ae14ee07feefcf7227 helper_dxvk_d9vk "${file1}" "5.3" "1.1.113" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk161 dlls \ +w_metadata dxvk1061 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.6.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8056,14 +7971,14 @@ w_metadata dxvk161 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk161() +load_dxvk1061() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.6.1/dxvk-1.6.1.tar.gz" cdef8735313ed9ccb7af23b37bcceaad54553e29505c269246d5e347f1359136 helper_dxvk_d9vk "${file1}" "5.3" "1.1.113" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk170 dlls \ +w_metadata dxvk1070 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.7)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8074,14 +7989,14 @@ w_metadata dxvk170 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk170() +load_dxvk1070() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.7/dxvk-1.7.tar.gz" 67d78239906c24bd50a5ecbc2fd792c1721e274a7a60dd22f74b21b08ca4c7a1 helper_dxvk_d9vk "${file1}" "5.8" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk171 dlls \ +w_metadata dxvk1071 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.7.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8092,14 +8007,14 @@ w_metadata dxvk171 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk171() +load_dxvk1071() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.7.1/dxvk-1.7.1.tar.gz" 6ce66c4e01196ed022604e90383593aea02c9016bde92c6840aa58805d5fc588 helper_dxvk_d9vk "${file1}" "5.8" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk172 dlls \ +w_metadata dxvk1072 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.7.2)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8110,14 +8025,14 @@ w_metadata dxvk172 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk172() +load_dxvk1072() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.7.2/dxvk-1.7.2.tar.gz" 1662f6bda93faf4f6c8b57d656779b08925889dd6b794114be874d6deb97e15b helper_dxvk_d9vk "${file1}" "5.8" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk173 dlls \ +w_metadata dxvk1073 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.7.3)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8128,14 +8043,14 @@ w_metadata dxvk173 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk173() +load_dxvk1073() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.7.3/dxvk-1.7.3.tar.gz" e4c2444256b7ad63455fa6329638e3f42900ec7462dc9c26da56187a2040aba0 helper_dxvk_d9vk "${file1}" "5.8" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk180 dlls \ +w_metadata dxvk1080 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.8)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8146,14 +8061,14 @@ w_metadata dxvk180 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk180() +load_dxvk1080() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.8/dxvk-1.8.tar.gz" e84f7ac494ac7f5013976744470899226d145e29617c407ff52870055bda476e helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk181 dlls \ +w_metadata dxvk1081 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.8.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8164,14 +8079,14 @@ w_metadata dxvk181 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk181() +load_dxvk1081() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.8.1/dxvk-1.8.1.tar.gz" 756a09c46f8279ade84456e3af038f64613a51e00a2d4cfffa4c91c10ede60e8 helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk190 dlls \ +w_metadata dxvk1090 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8182,14 +8097,14 @@ w_metadata dxvk190 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk190() +load_dxvk1090() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.9/dxvk-1.9.tar.gz" 433868f8783887192a04b788203d6b4effe3168be762dd60df1c1b564421a6ed helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk191 dlls \ +w_metadata dxvk1091 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9.1)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8200,14 +8115,14 @@ w_metadata dxvk191 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk191() +load_dxvk1091() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.9.1/dxvk-1.9.1.tar.gz" ef7591d6effcca8a8352cea4fa50fe73aa1f10fd89cb475f2f14236e4340a007 helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } -w_metadata dxvk192 dlls \ +w_metadata dxvk1092 dlls \ title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9.2)" \ publisher="Philip Rebohle" \ year="2017" \ @@ -8218,13 +8133,85 @@ w_metadata dxvk192 dlls \ installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" -load_dxvk192() +load_dxvk1092() { # https://github.com/doitsujin/dxvk w_download "https://github.com/doitsujin/dxvk/releases/download/v1.9.2/dxvk-1.9.2.tar.gz" 24bcee655767f4731b8d3883dd93ba4edc7f1e87421e15fab19499d57236b8e9 helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" } +w_metadata dxvk1093 dlls \ + title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9.3)" \ + publisher="Philip Rebohle" \ + year="2017" \ + media="download" \ + file1="dxvk-1.9.3.tar.gz" \ + installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d9.dll" \ + installed_file2="${W_SYSTEM32_DLLS_WIN}/d3d10core.dll" \ + installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ + installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" + +load_dxvk1093() +{ + # https://github.com/doitsujin/dxvk + w_download "https://github.com/doitsujin/dxvk/releases/download/v1.9.3/dxvk-1.9.3.tar.gz" cfcf4fac1f6bfc5a09183e77362a0af7fead4e54961bb548aef3e6cddadbe9bf + helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" +} + +w_metadata dxvk1094 dlls \ + title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9.4)" \ + publisher="Philip Rebohle" \ + year="2017" \ + media="download" \ + file1="dxvk-1.9.4.tar.gz" \ + installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d9.dll" \ + installed_file2="${W_SYSTEM32_DLLS_WIN}/d3d10core.dll" \ + installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ + installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" + +load_dxvk1094() +{ + # https://github.com/doitsujin/dxvk + w_download "https://github.com/doitsujin/dxvk/releases/download/v1.9.4/dxvk-1.9.4.tar.gz" 854f564c3b58a4cdf7b16eb9a4b6bc6ddc0f83d68c4f979a529fc23f7a770502 + helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" +} + +w_metadata dxvk1100 dlls \ + title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.10)" \ + publisher="Philip Rebohle" \ + year="2017" \ + media="download" \ + file1="dxvk-1.10.tar.gz" \ + installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d9.dll" \ + installed_file2="${W_SYSTEM32_DLLS_WIN}/d3d10core.dll" \ + installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ + installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" + +load_dxvk1100() +{ + # https://github.com/doitsujin/dxvk + w_download "https://github.com/doitsujin/dxvk/releases/download/v1.10/dxvk-1.10.tar.gz" a15bc7c1df66158a205c498883b0b216390d58f4a128657990af357431b9ce77 + helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" +} + +w_metadata dxvk1101 dlls \ + title="Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.10.1)" \ + publisher="Philip Rebohle" \ + year="2017" \ + media="download" \ + file1="dxvk-1.10.1.tar.gz" \ + installed_file1="${W_SYSTEM32_DLLS_WIN}/d3d9.dll" \ + installed_file2="${W_SYSTEM32_DLLS_WIN}/d3d10core.dll" \ + installed_file3="${W_SYSTEM32_DLLS_WIN}/d3d11.dll" \ + installed_file4="${W_SYSTEM32_DLLS_WIN}/dxgi.dll" + +load_dxvk1101() +{ + # https://github.com/doitsujin/dxvk + w_download "https://github.com/doitsujin/dxvk/releases/download/v1.10.1/dxvk-1.10.1.tar.gz" dc349482cb0a73d4e29c82f8e9ff6031e09e176e84a97ffe91eac64422b307aa + helper_dxvk_d9vk "${file1}" "5.14" "1.2.140" "dxgi,d3d9,d3d10core,d3d11" +} + #---------------------------------------------------------------- w_metadata dxvk dlls \ @@ -8321,7 +8308,7 @@ load_vkd3d() _W_vkd3d_proton_version="${_W_vkd3d_proton_version#v}" w_linkcheck_ignore=1 w_download "https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v${_W_vkd3d_proton_version}/vkd3d-proton-${_W_vkd3d_proton_version}.tar.zst" helper_vkd3d_proton "vkd3d-proton-${_W_vkd3d_proton_version}.tar.zst" - unset _W_vkd3d-proton_version + unset _W_vkd3d_proton_version } #---------------------------------------------------------------- @@ -9149,11 +9136,11 @@ w_metadata dotnet35sp1 dlls \ load_dotnet35sp1() { - w_package_broken_win64 https://bugs.winehq.org/show_bug.cgi?id=49690 5.12 + w_package_broken_win64 https://bugs.winehq.org/show_bug.cgi?id=49690 5.12 6.0 w_verify_cabextract_available - # https://www.microsoft.com/en-us/download/details.aspx?id=25150 + # Official version. See https://dotnet.microsoft.com/en-us/download/dotnet-framework/net35-sp1 w_download https://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe 0582515bde321e072f8673e829e175ed2e7a53e803127c50253af76528e66bc1 w_call remove_mono @@ -9202,6 +9189,7 @@ w_metadata dotnet40 dlls \ load_dotnet40() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_package_warn_win64 @@ -9210,7 +9198,7 @@ load_dotnet40() *) w_warn "dotnet40 does not yet fully work or install on wine. Caveat emptor." ;; esac - # https://www.microsoft.com/en-us/download/details.aspx?id=17718 + # Official version. See https://dotnet.microsoft.com/download/dotnet-framework/net40 w_download https://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe 65e064258f2e418816b304f646ff9e87af101e4c9552ab064bb74d281c38659f w_call remove_mono @@ -9231,6 +9219,15 @@ load_dotnet40() # Avoid a popup on WINEPREFIX updates, see https://bugs.winehq.org/show_bug.cgi?id=41727#c5 "${WINE}" reg add "HKLM\\Software\\Microsoft\\.NETFramework" /v OnlyUseLatestCLR /t REG_DWORD /d 0001 /f + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac + w_set_winver 'default' } @@ -9252,6 +9249,7 @@ w_metadata dotnet40_kb2468871 dlls \ load_dotnet40_kb2468871() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_call dotnet40 @@ -9267,6 +9265,15 @@ load_dotnet40_kb2468871() w_try_cd "${W_TMP}" w_try "${WINE}" msiexec /p NDP40-KB2468871.msp + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac + w_set_winver 'default' } @@ -9290,12 +9297,13 @@ load_dotnet45() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49897" 5.18 6.6 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_package_warn_win64 w_verify_cabextract_available - # https://www.microsoft.com/en-us/download/details.aspx?id=17718 + # Official version. See https://dotnet.microsoft.com/download/dotnet-framework/net45 w_download https://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe a04d40e217b97326d46117d961ec4eda455e087b90637cb33dd6cc4a2c228d83 w_call remove_mono @@ -9318,6 +9326,15 @@ load_dotnet45() w_warn "Setting Windows version to 2003, otherwise applications using .NET 4.5 will subtly fail" w_set_winver win2k3 + + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac } verify_dotnet45() @@ -9340,12 +9357,13 @@ load_dotnet452() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49897" 5.18 6.6 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_package_warn_win64 w_verify_cabextract_available - # https://www.microsoft.com/en-us/download/details.aspx?id=17718 + # Official version. See https://dotnet.microsoft.com/download/dotnet-framework/net452 w_download https://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe 6c2c589132e830a185c5f40f82042bee3022e721a216680bd9b3995ba86f3781 w_call remove_mono @@ -9365,6 +9383,15 @@ load_dotnet452() w_warn "Setting Windows version to 2003, otherwise applications using .NET 4.5 will subtly fail" w_set_winver win2k3 + + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac } verify_dotnet452() @@ -9386,11 +9413,12 @@ w_metadata dotnet46 dlls \ load_dotnet46() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_package_warn_win64 - # https://support.microsoft.com/kb/3045560 - w_download https://download.microsoft.com/download/C/3/A/C3A5200B-D33C-47E9-9D70-2F7C65DAAD94/NDP46-KB3045557-x86-x64-AllOS-ENU.exe b21d33135e67e3486b154b11f7961d8e1cfd7a603267fb60febb4a6feab5cf87 + # Official version. See https://dotnet.microsoft.com/download/dotnet-framework/net46 + w_download https://download.microsoft.com/download/6/F/9/6F9673B1-87D1-46C4-BF04-95F24C3EB9DA/enu_netfx/NDP46-KB3045557-x86-x64-AllOS-ENU_exe/NDP46-KB3045557-x86-x64-AllOS-ENU.exe b21d33135e67e3486b154b11f7961d8e1cfd7a603267fb60febb4a6feab5cf87 w_call remove_mono @@ -9402,6 +9430,15 @@ load_dotnet46() WINEDLLOVERRIDES=fusion=b w_try_ms_installer "${WINE}" "${file1}" ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} w_override_dlls native mscoree + + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac } verify_dotnet46() @@ -9423,10 +9460,11 @@ w_metadata dotnet461 dlls \ load_dotnet461() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_package_warn_win64 - # https://www.microsoft.com/en-us/download/details.aspx?id=49982 + # Official version. See https://dotnet.microsoft.com/download/dotnet-framework/net461 w_download https://download.microsoft.com/download/E/4/1/E4173890-A24A-4936-9FC9-AF930FE3FA40/NDP461-KB3102436-x86-x64-AllOS-ENU.exe beaa901e07347d056efe04e8961d5546c7518fab9246892178505a7ba631c301 w_call remove_mono @@ -9442,6 +9480,15 @@ load_dotnet461() # Do not rely on temporary files. As a workaround, touch a file instead so that we know it's been installed for list-installed w_try touch "${W_WINDIR_UNIX}/dotnet461.installed.workaround" + + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac } verify_dotnet461() @@ -9462,11 +9509,12 @@ w_metadata dotnet462 dlls \ load_dotnet462() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_package_warn_win64 - # Official version. See https://www.microsoft.com/en-us/download/details.aspx?id=53344 - w_download https://web.archive.org/web/20210320155343if_/https://download.microsoft.com/download/F/9/4/F942F07D-F26F-4F30-B4E3-EBD54FABA377/NDP462-KB3151800-x86-x64-AllOS-ENU.exe 28886593e3b32f018241a4c0b745e564526dbb3295cb2635944e3a393f4278d4 + # Official version. See https://dotnet.microsoft.com/download/dotnet-framework/net462 + w_download https://download.visualstudio.microsoft.com/download/pr/8e396c75-4d0d-41d3-aea8-848babc2736a/80b431456d8866ebe053eb8b81a168b3/NDP462-KB3151800-x86-x64-AllOS-ENU.exe b4cbb4bc9a3983ec3be9f80447e0d619d15256a9ce66ff414ae6e3856705e237 file_package="NDP462-KB3151800-x86-x64-AllOS-ENU.exe" w_call remove_mono @@ -9483,6 +9531,15 @@ load_dotnet462() # 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" + + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac } verify_dotnet462() @@ -9504,11 +9561,12 @@ w_metadata dotnet471 dlls \ load_dotnet471() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_package_warn_win64 - # https://www.microsoft.com/en-US/download/details.aspx?id=56116 - w_download https://download.microsoft.com/download/9/E/6/9E63300C-0941-4B45-A0EC-0008F96DD480/NDP471-KB4033342-x86-x64-AllOS-ENU.exe 63dc850df091f3f137b5d4392f47917f847f8926dc8af1da9bfba6422e495805 + # Official version. See https://dotnet.microsoft.com/download/dotnet-framework/net471 + w_download https://download.visualstudio.microsoft.com/download/pr/4312fa21-59b0-4451-9482-a1376f7f3ba4/9947fce13c11105b48cba170494e787f/NDP471-KB4033342-x86-x64-AllOS-ENU.exe df6e700d37ff416e2e1d8463dededdf76522ceaf5bb4cc3f197a7f2b9eccc4ad w_call remove_mono @@ -9523,6 +9581,15 @@ load_dotnet471() # Do not rely on temporary files. As a workaround, touch a file instead so that we know it's been installed for list-installed w_try touch "${W_WINDIR_UNIX}/dotnet471.installed.workaround" + + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac } verify_dotnet471() @@ -9543,6 +9610,7 @@ w_metadata dotnet472 dlls \ load_dotnet472() { w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=49532" 5.12 5.18 + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52722" 7.5 7.6 w_package_warn_win64 @@ -9562,6 +9630,15 @@ load_dotnet472() # Do not rely on temporary files. As a workaround, touch a file instead so that we know it's been installed for list-installed w_try touch "${W_WINDIR_UNIX}/dotnet472.installed.workaround" + + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac } verify_dotnet472() @@ -9603,6 +9680,15 @@ load_dotnet48() # Do not rely on temporary files. As a workaround, touch a file instead so that we know it's been installed for list-installed w_try touch "${W_WINDIR_UNIX}/dotnet48.installed.workaround" + + # See https://bugs.winehq.org/show_bug.cgi?id=47277#c9 + case "${LANG}" in + C|en_US.UTF-8*) ;; + zh_CN*) w_warn "You may encounter infinite loops when trying to use applications that use WPF. Use LC_ALL=C when running your application as a workaround." + # Based on the bug, there may be other locales that are affected. But in the absence of a full list + # I don't think it's worth warning *every* non-en_US.UTF-8 user: + # *) w_warn " + esac } verify_dotnet48() @@ -9702,7 +9788,7 @@ load_dotnet_verifier() # 2017/06/12: sha256sum 310a0341fbe68f5b8601f2d8deef5d05ca6bce50df03912df391bc843794ef60, adds .NET Framework 4.7 support # 2018/06/03: sha256sum 13fd683fd604f9de09a9e649df303100b81e6797f868024d55e5c2f3c14aa9a6, adds .NET Framework 4.7.{1,2} support - w_download https://msdnshared.blob.core.windows.net/media/2018/05/netfx_setupverifier_new.zip 13fd683fd604f9de09a9e649df303100b81e6797f868024d55e5c2f3c14aa9a6 + w_download https://web.archive.org/web/20180802234935/https://msdnshared.blob.core.windows.net/media/2018/05/netfx_setupverifier_new.zip 13fd683fd604f9de09a9e649df303100b81e6797f868024d55e5c2f3c14aa9a6 w_try_cd "${W_CACHE}/${W_PACKAGE}" w_try_unzip "${W_SYSTEM32_DLLS}" netfx_setupverifier_new.zip netfx_setupverifier.exe @@ -9744,13 +9830,13 @@ w_metadata dxdiagn dlls \ load_dxdiagn() { helper_win7sp1 x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.1.7601.17514_none_25cb021dbc0611db/dxdiagn.dll - w_try cp "${W_TMP}/x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.1.7601.17514_none_25cb021dbc0611db/dxdiagn.dll" "${W_SYSTEM32_DLLS}/dxdiagn.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.1.7601.17514_none_25cb021dbc0611db/dxdiagn.dll" "${W_SYSTEM32_DLLS}/dxdiagn.dll" w_override_dlls native,builtin dxdiagn w_try_regsvr dxdiagn.dll if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.1.7601.17514_none_81e99da174638311/dxdiagn.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.1.7601.17514_none_81e99da174638311/dxdiagn.dll" "${W_SYSTEM64_DLLS}/dxdiagn.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.1.7601.17514_none_81e99da174638311/dxdiagn.dll" "${W_SYSTEM64_DLLS}/dxdiagn.dll" w_try_regsvr64 dxdiagn.dll fi } @@ -9811,11 +9897,11 @@ w_metadata esent dlls \ load_esent() { helper_win7sp1 x86_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_f3ebb0cc8a4dd814/esent.dll - w_try cp "${W_TMP}/x86_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_f3ebb0cc8a4dd814/esent.dll" "${W_SYSTEM32_DLLS}/esent.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_f3ebb0cc8a4dd814/esent.dll" "${W_SYSTEM32_DLLS}/esent.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_500a4c5042ab494a/esent.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_500a4c5042ab494a/esent.dll" "${W_SYSTEM64_DLLS}/esent.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_500a4c5042ab494a/esent.dll" "${W_SYSTEM64_DLLS}/esent.dll" fi w_override_dlls native,builtin esent @@ -9839,7 +9925,7 @@ helper_faudio() # Unless they add something more complex, this should suffice: for dll in "${faudio_version}/x32/"*.dll; do shortdll="$(basename "${dll}" .dll)" - w_try cp "${dll}" "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${dll}" "${W_SYSTEM32_DLLS}" w_override_dlls native "${shortdll}" done fi @@ -9848,7 +9934,7 @@ helper_faudio() for dll in "${faudio_version}/x64/"*.dll; do # Note: 'libgcc_s_sjlj-1.dll' is not included in the 64-bit build shortdll="$(basename "${dll}" .dll)" - w_try cp "${dll}" "${W_SYSTEM64_DLLS}" + w_try_cp_dll "${dll}" "${W_SYSTEM64_DLLS}" w_override_dlls native "${shortdll}" done fi @@ -10000,7 +10086,7 @@ w_metadata filever dlls \ load_filever() { helper_winxpsp2_support_tools filever.exe - w_try cp "${W_TMP}/filever.exe" "${W_SYSTEM32_DLLS}/filever.exe" + w_try_cp_dll "${W_TMP}/filever.exe" "${W_SYSTEM32_DLLS}/filever.exe" } #---------------------------------------------------------------- @@ -10181,11 +10267,11 @@ load_gdiplus() { # gdiplus has changed in win7. See https://bugs.winehq.org/show_bug.cgi?id=32163#c3 helper_win7sp1 x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80/gdiplus.dll - w_try cp "${W_TMP}/x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80/gdiplus.dll" "${W_SYSTEM32_DLLS}/gdiplus.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80/gdiplus.dll" "${W_SYSTEM32_DLLS}/gdiplus.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_2b24536c71ed437a/gdiplus.dll - w_try cp "${W_TMP}/amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_2b24536c71ed437a/gdiplus.dll" "${W_SYSTEM64_DLLS}/gdiplus.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_2b24536c71ed437a/gdiplus.dll" "${W_SYSTEM64_DLLS}/gdiplus.dll" fi # For some reason, native, builtin isn't good enough...? @@ -10208,7 +10294,7 @@ load_gdiplus_winxp() w_download https://web.archive.org/web/20140615000000/http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe 699e76e9f100db3d50da8762c484a369df4698d4b84f7821d4df0e37ce68bcbe w_try_cd "${W_CACHE}/${W_PACKAGE}" w_try "${WINE}" "${W_CACHE}/${W_PACKAGE}/${file1}" /x:. /q - w_try cp "${W_CACHE}/${W_PACKAGE}/asms/10/msft/windows/gdiplus/gdiplus.dll" "${W_SYSTEM32_DLLS}/gdiplus.dll" + w_try_cp_dll "${W_CACHE}/${W_PACKAGE}/asms/10/msft/windows/gdiplus/gdiplus.dll" "${W_SYSTEM32_DLLS}/gdiplus.dll" # For some reason, native, builtin isn't good enough...? w_override_dlls native gdiplus @@ -10290,7 +10376,7 @@ load_glut() # FreeBSD unzip rm -rf's inside the target directory before extracting: w_try_unzip "${W_TMP}" "${W_CACHE}"/glut/glut-3.7.6-bin.zip w_try mv "${W_TMP}/glut-3.7.6-bin" "${W_DRIVE_C}" - w_try cp "${W_DRIVE_C}"/glut-3.7.6-bin/glut32.dll "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_DRIVE_C}"/glut-3.7.6-bin/glut32.dll "${W_SYSTEM32_DLLS}" w_warn "If you want to compile glut programs, add c:/glut-3.7.6-bin to LIB and INCLUDE" } @@ -10544,11 +10630,11 @@ w_metadata iertutil dlls \ load_iertutil() { helper_win7sp1 x86_microsoft-windows-ie-runtimeutilities_31bf3856ad364e35_8.0.7601.17514_none_64655b7c61c841cb/iertutil.dll - w_try cp "${W_TMP}/x86_microsoft-windows-ie-runtimeutilities_31bf3856ad364e35_8.0.7601.17514_none_64655b7c61c841cb/iertutil.dll" "${W_SYSTEM32_DLLS}/iertutil.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-ie-runtimeutilities_31bf3856ad364e35_8.0.7601.17514_none_64655b7c61c841cb/iertutil.dll" "${W_SYSTEM32_DLLS}/iertutil.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-ie-runtimeutilities_31bf3856ad364e35_8.0.7601.17514_none_c083f7001a25b301/iertutil.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-ie-runtimeutilities_31bf3856ad364e35_8.0.7601.17514_none_c083f7001a25b301/iertutil.dll" "${W_SYSTEM64_DLLS}/iertutil.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-ie-runtimeutilities_31bf3856ad364e35_8.0.7601.17514_none_c083f7001a25b301/iertutil.dll" "${W_SYSTEM64_DLLS}/iertutil.dll" fi w_override_dlls native,builtin iertutil @@ -10885,11 +10971,11 @@ w_metadata mf dlls \ load_mf() { helper_win7sp1 x86_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_9e6699276b03c38e/mf.dll - w_try cp "${W_TMP}/x86_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_9e6699276b03c38e/mf.dll" "${W_SYSTEM32_DLLS}/mf.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_9e6699276b03c38e/mf.dll" "${W_SYSTEM32_DLLS}/mf.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_fa8534ab236134c4/mf.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_fa8534ab236134c4/mf.dll" "${W_SYSTEM64_DLLS}/mf.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_fa8534ab236134c4/mf.dll" "${W_SYSTEM64_DLLS}/mf.dll" fi w_override_dlls native,builtin mf @@ -10908,10 +10994,10 @@ w_metadata mfc40 dlls \ load_mfc40() { helper_win7sp1 x86_microsoft-windows-mfc40_31bf3856ad364e35_6.1.7601.17514_none_5c06580240091047/mfc40.dll - w_try cp "${W_TMP}/x86_microsoft-windows-mfc40_31bf3856ad364e35_6.1.7601.17514_none_5c06580240091047/mfc40.dll" "${W_SYSTEM32_DLLS}/mfc40.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-mfc40_31bf3856ad364e35_6.1.7601.17514_none_5c06580240091047/mfc40.dll" "${W_SYSTEM32_DLLS}/mfc40.dll" helper_win7sp1 x86_microsoft-windows-mfc40u_31bf3856ad364e35_6.1.7601.17514_none_f51a7bf0b3d25294/mfc40u.dll - w_try cp "${W_TMP}/x86_microsoft-windows-mfc40u_31bf3856ad364e35_6.1.7601.17514_none_f51a7bf0b3d25294/mfc40u.dll" "${W_SYSTEM32_DLLS}/mfc40u.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-mfc40u_31bf3856ad364e35_6.1.7601.17514_none_f51a7bf0b3d25294/mfc40u.dll" "${W_SYSTEM32_DLLS}/mfc40u.dll" w_call msvcrt40 } @@ -10932,8 +11018,8 @@ load_mfc70() w_try_cabextract --directory="${W_TMP}" "${W_CACHE}/${W_PACKAGE}/${file1}" -F '*mfc*' - w_try cp "${W_TMP}"/FL_mfc70_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 "${W_SYSTEM32_DLLS}"/mfc70.dll - w_try cp "${W_TMP}"/FL_mfc70u_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 "${W_SYSTEM32_DLLS}"/mfc70u.dll + w_try_cp_dll "${W_TMP}"/FL_mfc70_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 "${W_SYSTEM32_DLLS}"/mfc70.dll + w_try_cp_dll "${W_TMP}"/FL_mfc70u_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 "${W_SYSTEM32_DLLS}"/mfc70u.dll } #---------------------------------------------------------------- @@ -11021,11 +11107,11 @@ w_metadata msdelta dlls \ load_msdelta() { helper_win7sp1 x86_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_0b66cb34258c936f/msdelta.dll - w_try cp "${W_TMP}/x86_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_0b66cb34258c936f/msdelta.dll" "${W_SYSTEM32_DLLS}/msdelta.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_0b66cb34258c936f/msdelta.dll" "${W_SYSTEM32_DLLS}/msdelta.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_678566b7ddea04a5/msdelta.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_678566b7ddea04a5/msdelta.dll" "${W_SYSTEM64_DLLS}/msdelta.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_678566b7ddea04a5/msdelta.dll" "${W_SYSTEM64_DLLS}/msdelta.dll" fi w_override_dlls native,builtin msdelta @@ -11148,7 +11234,7 @@ load_msls31() w_download https://web.archive.org/web/20160710055851if_/http://download.microsoft.com/download/WindowsInstaller/Install/2.0/NT45/EN-US/InstMsiW.exe 4c3516c0b5c2b76b88209b22e3bf1cb82d8e2de7116125e97e128952372eed6b w_try_cabextract --directory="${W_TMP}" "${W_CACHE}"/msls31/InstMsiW.exe - w_try cp -f "${W_TMP}"/msls31.dll "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}"/msls31.dll "${W_SYSTEM32_DLLS}" } #---------------------------------------------------------------- @@ -11181,11 +11267,11 @@ w_metadata msftedit dlls \ load_msftedit() { helper_win7sp1 x86_microsoft-windows-msftedit_31bf3856ad364e35_6.1.7601.17514_none_d7d862f19573a5ff/msftedit.dll - w_try cp "${W_TMP}/x86_microsoft-windows-msftedit_31bf3856ad364e35_6.1.7601.17514_none_d7d862f19573a5ff/msftedit.dll" "${W_SYSTEM32_DLLS}/msftedit.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-msftedit_31bf3856ad364e35_6.1.7601.17514_none_d7d862f19573a5ff/msftedit.dll" "${W_SYSTEM32_DLLS}/msftedit.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-msftedit_31bf3856ad364e35_6.1.7601.17514_none_33f6fe754dd11735/msftedit.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-msftedit_31bf3856ad364e35_6.1.7601.17514_none_33f6fe754dd11735/msftedit.dll" "${W_SYSTEM64_DLLS}/msftedit.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-msftedit_31bf3856ad364e35_6.1.7601.17514_none_33f6fe754dd11735/msftedit.dll" "${W_SYSTEM64_DLLS}/msftedit.dll" fi w_override_dlls native,builtin msftedit @@ -11287,12 +11373,12 @@ load_msxml6() w_try_cabextract --directory="${W_TMP}" "${W_CACHE}"/msxml6/msxml6-KB973686-enu-amd64.exe w_try_cabextract --directory="${W_TMP}" "${W_TMP}"/msxml6.msi - w_try cp -f "${W_TMP}"/msxml6.dll.86F857F6_A743_463D_B2FE_98CB5F727E09 "${W_SYSTEM32_DLLS}"/msxml6.dll - w_try cp -f "${W_TMP}"/msxml6r.dll.86F857F6_A743_463D_B2FE_98CB5F727E09 "${W_SYSTEM32_DLLS}"/msxml6r.dll + w_try_cp_dll "${W_TMP}"/msxml6.dll.86F857F6_A743_463D_B2FE_98CB5F727E09 "${W_SYSTEM32_DLLS}"/msxml6.dll + w_try_cp_dll "${W_TMP}"/msxml6r.dll.86F857F6_A743_463D_B2FE_98CB5F727E09 "${W_SYSTEM32_DLLS}"/msxml6r.dll if [ "${W_ARCH}" = "win64" ]; then - w_try cp -f "${W_TMP}"/msxml6.dll.1ECC0691_D2EB_4A33_9CBF_5487E5CB17DB "${W_SYSTEM64_DLLS}"/msxml6.dll - w_try cp -f "${W_TMP}"/msxml6r.dll.1ECC0691_D2EB_4A33_9CBF_5487E5CB17DB "${W_SYSTEM64_DLLS}"/msxml6r.dll + w_try_cp_dll "${W_TMP}"/msxml6.dll.1ECC0691_D2EB_4A33_9CBF_5487E5CB17DB "${W_SYSTEM64_DLLS}"/msxml6.dll + w_try_cp_dll "${W_TMP}"/msxml6r.dll.1ECC0691_D2EB_4A33_9CBF_5487E5CB17DB "${W_SYSTEM64_DLLS}"/msxml6r.dll fi w_override_dlls native,builtin msxml6 @@ -11314,7 +11400,7 @@ load_nuget() w_call dotnet40 # Changes too rapidly to check shasum w_download https://nuget.org/nuget.exe - w_try cp "${W_CACHE}/${W_PACKAGE}"/nuget.exe "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_CACHE}/${W_PACKAGE}"/nuget.exe "${W_SYSTEM32_DLLS}" w_warn "To run NuGet, use the command line \"${WINE} nuget\"." } @@ -11368,11 +11454,11 @@ w_metadata oleaut32 dlls \ load_oleaut32() { helper_win7sp1 x86_microsoft-windows-ole-automation_31bf3856ad364e35_6.1.7601.17514_none_bf07947959bc4c33/oleaut32.dll - w_try cp "${W_TMP}/x86_microsoft-windows-ole-automation_31bf3856ad364e35_6.1.7601.17514_none_bf07947959bc4c33/oleaut32.dll" "${W_SYSTEM32_DLLS}/oleaut32.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-ole-automation_31bf3856ad364e35_6.1.7601.17514_none_bf07947959bc4c33/oleaut32.dll" "${W_SYSTEM32_DLLS}/oleaut32.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-ole-automation_31bf3856ad364e35_6.1.7601.17514_none_1b262ffd1219bd69/oleaut32.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-ole-automation_31bf3856ad364e35_6.1.7601.17514_none_1b262ffd1219bd69/oleaut32.dll" "${W_SYSTEM64_DLLS}/oleaut32.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-ole-automation_31bf3856ad364e35_6.1.7601.17514_none_1b262ffd1219bd69/oleaut32.dll" "${W_SYSTEM64_DLLS}/oleaut32.dll" fi w_override_dlls native,builtin oleaut32 @@ -11392,11 +11478,11 @@ w_metadata pdh dlls \ load_pdh() { helper_win7sp1 x86_microsoft-windows-p..rastructureconsumer_31bf3856ad364e35_6.1.7601.17514_none_b5e3f88a8eb425e8/pdh.dll - w_try cp "${W_TMP}/x86_microsoft-windows-p..rastructureconsumer_31bf3856ad364e35_6.1.7601.17514_none_b5e3f88a8eb425e8/pdh.dll" "${W_SYSTEM32_DLLS}/pdh.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-p..rastructureconsumer_31bf3856ad364e35_6.1.7601.17514_none_b5e3f88a8eb425e8/pdh.dll" "${W_SYSTEM32_DLLS}/pdh.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-p..rastructureconsumer_31bf3856ad364e35_6.1.7601.17514_none_1202940e4711971e/pdh.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-p..rastructureconsumer_31bf3856ad364e35_6.1.7601.17514_none_1202940e4711971e/pdh.dll" "${W_SYSTEM64_DLLS}/pdh.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-p..rastructureconsumer_31bf3856ad364e35_6.1.7601.17514_none_1202940e4711971e/pdh.dll" "${W_SYSTEM64_DLLS}/pdh.dll" fi w_override_dlls native,builtin pdh @@ -11422,7 +11508,7 @@ load_pdh_nt4() w_download http://download.microsoft.com/download/winntsrv40/update/5.0.2195.2668/nt4/en-us/nt4pdhdll.exe a0a45ea8f4b82daaebcff7ad5bd1b7f5546e527e04790ca8c4c9b71b18c73e32 w_try_unzip "${W_TMP}/${W_PACKAGE}" "${W_CACHE}/${W_PACKAGE}"/nt4pdhdll.exe - w_try cp "${W_TMP}/${W_PACKAGE}/pdh.dll" "${W_SYSTEM32_DLLS}/pdh.dll" + w_try_cp_dll "${W_TMP}/${W_PACKAGE}/pdh.dll" "${W_SYSTEM32_DLLS}/pdh.dll" w_override_dlls native,builtin pdh } @@ -11454,16 +11540,23 @@ load_peverify() w_metadata physx dlls \ title="PhysX" \ publisher="Nvidia" \ - year="2019" \ + year="2021" \ media="download" \ - file1="PhysX-9.19.0218-SystemSoftware.exe" \ - installed_file1="${W_PROGRAMS_X86_WIN}/NVIDIA Corporation/PhysX/Engine/86C5F4F22ECD/APEX_Particles_x64.dll" + file1="PhysX_9.21.0713_SystemSoftware.exe" \ load_physx() { - w_download https://uk.download.nvidia.com/Windows/9.19.0218/PhysX-9.19.0218-SystemSoftware.exe 4f36389fcbfbdef4781fb85e7a68373542903235f65d93f7143693738324917c - w_try_cd "${W_CACHE}/${W_PACKAGE}" - w_try "${WINE}" PhysX-9.19.0218-SystemSoftware.exe ${W_OPT_UNATTENDED:+/s} + w_get_sha256sum "${W_PROGRAMS_X86_UNIX}/NVIDIA Corporation/PhysX/Engine/86C5F4F22ECD/APEX_Particles_x64.dll" + if [ "${_W_gotsha256sum}"x = "b3991e0165a9802b60e2f7d14c1be5f879071999ae74a38263cec9bf043a9eaa"x ] ; then + w_warn "${W_PACKAGE} is already installed - not updating" + unset _W_gotsha256sum + return + else + unset _W_gotsha256sum + w_download https://us.download.nvidia.com/Windows/9.21.0713/PhysX_9.21.0713_SystemSoftware.exe 26d62c5c347c15cb27c3be92bf10706113511b48b28aecc09f61ee58b3b62778 + w_try_cd "${W_CACHE}/${W_PACKAGE}" + w_try "${WINE}" PhysX_9.21.0713_SystemSoftware.exe ${W_OPT_UNATTENDED:+/s} + fi } #---------------------------------------------------------------- @@ -11500,14 +11593,14 @@ load_prntvpt() { helper_win7sp1 x86_microsoft-windows-p..g-printticket-win32_31bf3856ad364e35_6.1.7601.17514_none_1562129afd710f2c/prntvpt.dll - w_try cp "${W_TMP}/x86_microsoft-windows-p..g-printticket-win32_31bf3856ad364e35_6.1.7601.17514_none_1562129afd710f2c/prntvpt.dll" "${W_SYSTEM32_DLLS}/prntvpt.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-p..g-printticket-win32_31bf3856ad364e35_6.1.7601.17514_none_1562129afd710f2c/prntvpt.dll" "${W_SYSTEM32_DLLS}/prntvpt.dll" w_override_dlls native,builtin prntvpt w_try_regsvr prntvpt.dll if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-p..g-printticket-win32_31bf3856ad364e35_6.1.7601.17514_none_7180ae1eb5ce8062/prntvpt.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-p..g-printticket-win32_31bf3856ad364e35_6.1.7601.17514_none_7180ae1eb5ce8062/prntvpt.dll" "${W_SYSTEM64_DLLS}/prntvpt.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-p..g-printticket-win32_31bf3856ad364e35_6.1.7601.17514_none_7180ae1eb5ce8062/prntvpt.dll" "${W_SYSTEM64_DLLS}/prntvpt.dll" w_try_regsvr64 prntvpt.dll fi } @@ -11535,13 +11628,13 @@ load_python26() run pywin32-214.win32-py2.6.exe WinWait, Setup, Wizard will install pywin32 if ( w_opt_unattended > 0 ) { - ControlClick Button2 ; next - WinWait, Setup, Python 2.6 is required - ControlClick Button3 ; next - WinWait, Setup, Click Next to begin - ControlClick Button3 ; next - WinWait, Setup, finished - ControlClick Button4 ; Finish + ControlClick Button2 ; next + WinWait, Setup, Python 2.6 is required + ControlClick Button3 ; next + WinWait, Setup, Click Next to begin + ControlClick Button3 ; next + WinWait, Setup, finished + ControlClick Button4 ; Finish } WinWaitClose " @@ -11570,13 +11663,13 @@ load_python27() run pywin32-224.win32-py2.7.exe WinWait, Setup, Wizard will install pywin32 if ( w_opt_unattended > 0 ) { - ControlClick Button2 ; next - WinWait, Setup, Python 2.7 is required - ControlClick Button3 ; next - WinWait, Setup, Click Next to begin - ControlClick Button3 ; next - WinWait, Setup, finished - ControlClick Button4 ; Finish + ControlClick Button2 ; next + WinWait, Setup, Python 2.7 is required + ControlClick Button3 ; next + WinWait, Setup, Click Next to begin + ControlClick Button3 ; next + WinWait, Setup, finished + ControlClick Button4 ; Finish } WinWaitClose " @@ -11595,14 +11688,14 @@ w_metadata qasf dlls \ load_qasf() { helper_win7sp1 x86_microsoft-windows-directshow-asf_31bf3856ad364e35_6.1.7601.17514_none_1cc4e9c15ccc8ae8/qasf.dll - w_try cp "${W_TMP}/x86_microsoft-windows-directshow-asf_31bf3856ad364e35_6.1.7601.17514_none_1cc4e9c15ccc8ae8/qasf.dll" "${W_SYSTEM32_DLLS}/qasf.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-directshow-asf_31bf3856ad364e35_6.1.7601.17514_none_1cc4e9c15ccc8ae8/qasf.dll" "${W_SYSTEM32_DLLS}/qasf.dll" w_override_dlls native,builtin qasf w_try_regsvr qasf.dll if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-directshow-asf_31bf3856ad364e35_6.1.7601.17514_none_78e385451529fc1e/qasf.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-directshow-asf_31bf3856ad364e35_6.1.7601.17514_none_78e385451529fc1e/qasf.dll" "${W_SYSTEM64_DLLS}/qasf.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-directshow-asf_31bf3856ad364e35_6.1.7601.17514_none_78e385451529fc1e/qasf.dll" "${W_SYSTEM64_DLLS}/qasf.dll" w_try_regsvr64 qasf.dll fi } @@ -11620,13 +11713,13 @@ w_metadata qcap dlls \ load_qcap() { helper_win7sp1 x86_microsoft-windows-directshow-capture_31bf3856ad364e35_6.1.7601.17514_none_bae08d1e7dcccf2a/qcap.dll - w_try cp "${W_TMP}/x86_microsoft-windows-directshow-capture_31bf3856ad364e35_6.1.7601.17514_none_bae08d1e7dcccf2a/qcap.dll" "${W_SYSTEM32_DLLS}/qcap.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-directshow-capture_31bf3856ad364e35_6.1.7601.17514_none_bae08d1e7dcccf2a/qcap.dll" "${W_SYSTEM32_DLLS}/qcap.dll" w_override_dlls native,builtin qcap w_try_regsvr qcap.dll if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-directshow-capture_31bf3856ad364e35_6.1.7601.17514_none_16ff28a2362a4060/qcap.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-directshow-capture_31bf3856ad364e35_6.1.7601.17514_none_16ff28a2362a4060/qcap.dll" "${W_SYSTEM64_DLLS}/qcap.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-directshow-capture_31bf3856ad364e35_6.1.7601.17514_none_16ff28a2362a4060/qcap.dll" "${W_SYSTEM64_DLLS}/qcap.dll" w_try_regsvr64 qcap.dll fi } @@ -11644,13 +11737,13 @@ w_metadata qdvd dlls \ load_qdvd() { helper_win7sp1 x86_microsoft-windows-directshow-dvdsupport_31bf3856ad364e35_6.1.7601.17514_none_562994bd321aac67/qdvd.dll - w_try cp "${W_TMP}/x86_microsoft-windows-directshow-dvdsupport_31bf3856ad364e35_6.1.7601.17514_none_562994bd321aac67/qdvd.dll" "${W_SYSTEM32_DLLS}/qdvd.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-directshow-dvdsupport_31bf3856ad364e35_6.1.7601.17514_none_562994bd321aac67/qdvd.dll" "${W_SYSTEM32_DLLS}/qdvd.dll" w_override_dlls native,builtin qdvd w_try_regsvr qdvd.dll if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-directshow-dvdsupport_31bf3856ad364e35_6.1.7601.17514_none_b2483040ea781d9d/qdvd.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-directshow-dvdsupport_31bf3856ad364e35_6.1.7601.17514_none_b2483040ea781d9d/qdvd.dll" "${W_SYSTEM64_DLLS}/qdvd.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-directshow-dvdsupport_31bf3856ad364e35_6.1.7601.17514_none_b2483040ea781d9d/qdvd.dll" "${W_SYSTEM64_DLLS}/qdvd.dll" w_try_regsvr64 qdvd.dll fi } @@ -11668,13 +11761,13 @@ w_metadata qedit dlls \ 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" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-qedit_31bf3856ad364e35_6.1.7601.17514_none_5ca34698a5a970d2/qedit.dll" "${W_SYSTEM32_DLLS}/qedit.dll" w_override_dlls native,builtin qedit w_try_regsvr 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" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-qedit_31bf3856ad364e35_6.1.7601.17514_none_b8c1e21c5e06e208/qedit.dll" "${W_SYSTEM64_DLLS}/qedit.dll" w_try_regsvr64 qedit.dll fi } @@ -11692,13 +11785,13 @@ w_metadata quartz dlls \ load_quartz() { helper_win7sp1 x86_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.17514_none_a877a1cc4c284497/quartz.dll - w_try cp "${W_TMP}/x86_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.17514_none_a877a1cc4c284497/quartz.dll" "${W_SYSTEM32_DLLS}/quartz.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.17514_none_a877a1cc4c284497/quartz.dll" "${W_SYSTEM32_DLLS}/quartz.dll" w_override_dlls native,builtin quartz w_try_regsvr quartz.dll if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.17514_none_04963d500485b5cd/quartz.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.17514_none_04963d500485b5cd/quartz.dll" "${W_SYSTEM64_DLLS}/quartz.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-directshow-core_31bf3856ad364e35_6.1.7601.17514_none_04963d500485b5cd/quartz.dll" "${W_SYSTEM64_DLLS}/quartz.dll" w_try_regsvr64 quartz.dll fi } @@ -11750,6 +11843,7 @@ load_quicktime72() case ${LANG} in ru*) w_warn "В настройках Quicktime включите Дополнительно / Безопасный режим (только gdi), иначе видеофайлы не будут воспроизводиться." ;; + pt*) w_warn "Nas preferências do Quicktime, marque Advanced / Safe Mode (gdi), ou os vídeos não irão reproduzir." ;; *) w_warn "In Quicktime preferences, check Advanced / Safe Mode (gdi), or movies won't play." ;; esac if [ -z "${W_OPT_UNATTENDED}" ]; then @@ -11788,6 +11882,7 @@ load_quicktime76() case ${LANG} in ru*) w_warn "В настройках Quicktime включите Дополнительно / Безопасный режим (только gdi), иначе видеофайлы не будут воспроизводиться." ;; + pt*) w_warn "Nas preferências do Quicktime, marque Advanced / Safe Mode (gdi), ou os vídeos não irão reproduzir." ;; *) w_warn "In Quicktime preferences, check Advanced / Safe Mode (gdi), or movies won't play." ;; esac if [ -z "${W_OPT_UNATTENDED}" ]; then @@ -11853,8 +11948,8 @@ load_riched30() w_download https://web.archive.org/web/20060720160141/https://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe 536e4c8385d7d250fd5702a6868d1ed004692136eefad22252d0dac15f02563a w_try_cabextract --directory="${W_TMP}" "${W_CACHE}"/riched30/InstMsiA.exe - w_try cp -f "${W_TMP}"/riched20.dll "${W_SYSTEM32_DLLS}" - w_try cp -f "${W_TMP}"/msls31.dll "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}"/riched20.dll "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}"/msls31.dll "${W_SYSTEM32_DLLS}" w_override_dlls native,builtin riched20 } @@ -11895,13 +11990,13 @@ load_sapi() done helper_win7sp1 x86_microsoft-windows-speechcommon_31bf3856ad364e35_6.1.7601.17514_none_d809b28230ecfe46/sapi.dll - w_try cp "${W_TMP}/x86_microsoft-windows-speechcommon_31bf3856ad364e35_6.1.7601.17514_none_d809b28230ecfe46/sapi.dll" "${W_SYSTEM32_DLLS}/sapi.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-speechcommon_31bf3856ad364e35_6.1.7601.17514_none_d809b28230ecfe46/sapi.dll" "${W_SYSTEM32_DLLS}/sapi.dll" w_override_dlls native sapi w_try_regsvr sapi.dll if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-speechcommon_31bf3856ad364e35_6.1.7601.17514_none_34284e05e94a6f7c/sapi.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-speechcommon_31bf3856ad364e35_6.1.7601.17514_none_34284e05e94a6f7c/sapi.dll" "${W_SYSTEM64_DLLS}/sapi.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-speechcommon_31bf3856ad364e35_6.1.7601.17514_none_34284e05e94a6f7c/sapi.dll" "${W_SYSTEM64_DLLS}/sapi.dll" w_try_regsvr64 sapi.dll fi } @@ -11938,11 +12033,11 @@ load_secur32() w_warn "Installing native secur32 may lead to stack overflow crashes, see https://bugs.winehq.org/show_bug.cgi?id=45344" helper_win7sp1 x86_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17514_none_a851f4adbb0d5141/secur32.dll - w_try cp "${W_TMP}/x86_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17514_none_a851f4adbb0d5141/secur32.dll" "${W_SYSTEM32_DLLS}/secur32.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17514_none_a851f4adbb0d5141/secur32.dll" "${W_SYSTEM32_DLLS}/secur32.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17514_none_04709031736ac277/secur32.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17514_none_04709031736ac277/secur32.dll" "${W_SYSTEM64_DLLS}/secur32.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17514_none_04709031736ac277/secur32.dll" "${W_SYSTEM64_DLLS}/secur32.dll" fi w_override_dlls native,builtin secur32 @@ -12067,7 +12162,7 @@ w_metadata updspapi dlls \ load_updspapi() { helper_winxpsp3 i386/update/updspapi.dll - w_try cp -f "${W_TMP}"/i386/update/updspapi.dll "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}"/i386/update/updspapi.dll "${W_SYSTEM32_DLLS}" w_override_dlls native,builtin updspapi } @@ -12085,11 +12180,11 @@ w_metadata urlmon dlls \ load_urlmon() { helper_win7sp1 x86_microsoft-windows-i..ersandsecurityzones_31bf3856ad364e35_8.0.7601.17514_none_d1a4c8feac0dfcdb/urlmon.dll - w_try cp "${W_TMP}/x86_microsoft-windows-i..ersandsecurityzones_31bf3856ad364e35_8.0.7601.17514_none_d1a4c8feac0dfcdb/urlmon.dll" "${W_SYSTEM32_DLLS}/urlmon.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-i..ersandsecurityzones_31bf3856ad364e35_8.0.7601.17514_none_d1a4c8feac0dfcdb/urlmon.dll" "${W_SYSTEM32_DLLS}/urlmon.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-i..ersandsecurityzones_31bf3856ad364e35_8.0.7601.17514_none_2dc36482646b6e11/urlmon.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-i..ersandsecurityzones_31bf3856ad364e35_8.0.7601.17514_none_2dc36482646b6e11/urlmon.dll" "${W_SYSTEM64_DLLS}/urlmon.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-i..ersandsecurityzones_31bf3856ad364e35_8.0.7601.17514_none_2dc36482646b6e11/urlmon.dll" "${W_SYSTEM64_DLLS}/urlmon.dll" fi w_override_dlls native,builtin urlmon @@ -12110,11 +12205,11 @@ w_metadata usp10 dlls \ load_usp10() { helper_win7sp1 x86_microsoft-windows-usp_31bf3856ad364e35_6.1.7601.17514_none_af01e2f9b6be7939/usp10.dll - w_try cp "${W_TMP}/x86_microsoft-windows-usp_31bf3856ad364e35_6.1.7601.17514_none_af01e2f9b6be7939/usp10.dll" "${W_SYSTEM32_DLLS}/usp10.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-usp_31bf3856ad364e35_6.1.7601.17514_none_af01e2f9b6be7939/usp10.dll" "${W_SYSTEM32_DLLS}/usp10.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-usp_31bf3856ad364e35_6.1.7601.17514_none_0b207e7d6f1bea6f/usp10.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-usp_31bf3856ad364e35_6.1.7601.17514_none_0b207e7d6f1bea6f/usp10.dll" "${W_SYSTEM64_DLLS}/usp10.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-usp_31bf3856ad364e35_6.1.7601.17514_none_0b207e7d6f1bea6f/usp10.dll" "${W_SYSTEM64_DLLS}/usp10.dll" fi w_override_dlls native,builtin usp10 @@ -12139,7 +12234,7 @@ load_vb2run() # 2018/11/15: now conradshome is down ,but quaddicted.com also has it (and a lot more) w_download https://www.quaddicted.com/files/mirrors/ftp.planetquake.com/aoe/downloads/VBRUN200.EXE 4b0811d8fdcac1fd9411786c9119dc8d98d0540948211bdbc1ac682fbe5c0228 w_try_unzip "${W_TMP}" "${W_CACHE}"/vb2run/VBRUN200.EXE - w_try cp -f "${W_TMP}/VBRUN200.DLL" "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}/VBRUN200.DLL" "${W_SYSTEM32_DLLS}" } #---------------------------------------------------------------- @@ -12157,7 +12252,7 @@ load_vb3run() # See https://support.microsoft.com/kb/196285 w_download https://download.microsoft.com/download/vb30/utility/1/w9xnt4/en-us/vb3run.exe 3ca3ad6332f83b5c2b86e4758afa400150f07ae66ce8b850d8f9d6bcd47ad4cd w_try_unzip "${W_TMP}" "${W_CACHE}"/vb3run/vb3run.exe - w_try cp -f "${W_TMP}/Vbrun300.dll" "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}/Vbrun300.dll" "${W_SYSTEM32_DLLS}" } #---------------------------------------------------------------- @@ -12175,8 +12270,8 @@ load_vb4run() # See https://support.microsoft.com/kb/196286 w_download https://download.microsoft.com/download/vb40ent/sample27/1/w9xnt4/en-us/vb4run.exe 40931308b5a137f9ce3e9da9b43f4ca6688e18b523687cfea8be6cdffa3153fb w_try_unzip "${W_TMP}" "${W_CACHE}"/vb4run/vb4run.exe - w_try cp -f "${W_TMP}/Vb40032.dll" "${W_SYSTEM32_DLLS}" - w_try cp -f "${W_TMP}/Vb40016.dll" "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}/Vb40032.dll" "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}/Vb40016.dll" "${W_SYSTEM32_DLLS}" } #---------------------------------------------------------------- @@ -12421,10 +12516,10 @@ load_mfc80() w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/vcrun2005/vcredist_x86.EXE -F 'vcredist.msi' w_try_cabextract --directory="${W_TMP}/win32" "${W_TMP}/win32/vcredist.msi" - w_try cp "${W_TMP}/win32"/mfc80.dll.8.0.50727.6195.9BAE13A2_E7AF_D6C3_FF1F_C8B3B9A1E18E "${W_SYSTEM32_DLLS}"/mfc80.dll - w_try cp "${W_TMP}/win32"/mfc80u.dll.8.0.50727.6195.9BAE13A2_E7AF_D6C3_FF1F_C8B3B9A1E18E "${W_SYSTEM32_DLLS}"/mfc80u.dll - w_try cp "${W_TMP}/win32"/mfcm80.dll.8.0.50727.6195.9BAE13A2_E7AF_D6C3_FF1F_C8B3B9A1E18E "${W_SYSTEM32_DLLS}"/mfcm80.dll - w_try cp "${W_TMP}/win32"/mfcm80u.dll.8.0.50727.6195.9BAE13A2_E7AF_D6C3_FF1F_C8B3B9A1E18E "${W_SYSTEM32_DLLS}"/mfcm80u.dll + w_try_cp_dll "${W_TMP}/win32"/mfc80.dll.8.0.50727.6195.9BAE13A2_E7AF_D6C3_FF1F_C8B3B9A1E18E "${W_SYSTEM32_DLLS}"/mfc80.dll + w_try_cp_dll "${W_TMP}/win32"/mfc80u.dll.8.0.50727.6195.9BAE13A2_E7AF_D6C3_FF1F_C8B3B9A1E18E "${W_SYSTEM32_DLLS}"/mfc80u.dll + w_try_cp_dll "${W_TMP}/win32"/mfcm80.dll.8.0.50727.6195.9BAE13A2_E7AF_D6C3_FF1F_C8B3B9A1E18E "${W_SYSTEM32_DLLS}"/mfcm80.dll + w_try_cp_dll "${W_TMP}/win32"/mfcm80u.dll.8.0.50727.6195.9BAE13A2_E7AF_D6C3_FF1F_C8B3B9A1E18E "${W_SYSTEM32_DLLS}"/mfcm80u.dll if [ "${W_ARCH}" = "win64" ]; then w_download_to vcrun2005 https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x64.EXE 4487570bd86e2e1aac29db2a1d0a91eb63361fcaac570808eb327cd4e0e2240d @@ -12432,10 +12527,10 @@ load_mfc80() w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/vcrun2005/vcredist_x64.EXE -F 'vcredist.msi' w_try_cabextract --directory="${W_TMP}/win64" "${W_TMP}/win64/vcredist.msi" - w_try cp "${W_TMP}/win64"/mfc80.dll.8.0.50727.6195.8731EA9C_B0D8_8F16_FF1F_C8B3B9A1E18E "${W_SYSTEM64_DLLS}"/mfc80.dll - w_try cp "${W_TMP}/win64"/mfc80u.dll.8.0.50727.6195.8731EA9C_B0D8_8F16_FF1F_C8B3B9A1E18E "${W_SYSTEM64_DLLS}"/mfc80u.dll - w_try cp "${W_TMP}/win64"/mfcm80.dll.8.0.50727.6195.8731EA9C_B0D8_8F16_FF1F_C8B3B9A1E18E "${W_SYSTEM64_DLLS}"/mfcm80.dll - w_try cp "${W_TMP}/win64"/mfcm80u.dll.8.0.50727.6195.8731EA9C_B0D8_8F16_FF1F_C8B3B9A1E18E "${W_SYSTEM64_DLLS}"/mfcm80u.dll + w_try_cp_dll "${W_TMP}/win64"/mfc80.dll.8.0.50727.6195.8731EA9C_B0D8_8F16_FF1F_C8B3B9A1E18E "${W_SYSTEM64_DLLS}"/mfc80.dll + w_try_cp_dll "${W_TMP}/win64"/mfc80u.dll.8.0.50727.6195.8731EA9C_B0D8_8F16_FF1F_C8B3B9A1E18E "${W_SYSTEM64_DLLS}"/mfc80u.dll + w_try_cp_dll "${W_TMP}/win64"/mfcm80.dll.8.0.50727.6195.8731EA9C_B0D8_8F16_FF1F_C8B3B9A1E18E "${W_SYSTEM64_DLLS}"/mfcm80.dll + w_try_cp_dll "${W_TMP}/win64"/mfcm80u.dll.8.0.50727.6195.8731EA9C_B0D8_8F16_FF1F_C8B3B9A1E18E "${W_SYSTEM64_DLLS}"/mfcm80u.dll fi } @@ -12496,10 +12591,10 @@ load_mfc90() w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/vcrun2008/vcredist_x86.exe -F 'vc_red.cab' w_try_cabextract --directory="${W_TMP}/win32" "${W_TMP}/win32/vc_red.cab" - w_try cp "${W_TMP}/win32"/mfc90.dll.30729.6161.Microsoft_VC90_MFC_x86.QFE "${W_SYSTEM32_DLLS}"/mfc90.dll - w_try cp "${W_TMP}/win32"/mfc90u.dll.30729.6161.Microsoft_VC90_MFC_x86.QFE "${W_SYSTEM32_DLLS}"/mfc90u.dll - w_try cp "${W_TMP}/win32"/mfcm90.dll.30729.6161.Microsoft_VC90_MFC_x86.QFE "${W_SYSTEM32_DLLS}"/mfcm90.dll - w_try cp "${W_TMP}/win32"/mfcm90u.dll.30729.6161.Microsoft_VC90_MFC_x86.QFE "${W_SYSTEM32_DLLS}"/mfcm90u.dll + w_try_cp_dll "${W_TMP}/win32"/mfc90.dll.30729.6161.Microsoft_VC90_MFC_x86.QFE "${W_SYSTEM32_DLLS}"/mfc90.dll + w_try_cp_dll "${W_TMP}/win32"/mfc90u.dll.30729.6161.Microsoft_VC90_MFC_x86.QFE "${W_SYSTEM32_DLLS}"/mfc90u.dll + w_try_cp_dll "${W_TMP}/win32"/mfcm90.dll.30729.6161.Microsoft_VC90_MFC_x86.QFE "${W_SYSTEM32_DLLS}"/mfcm90.dll + w_try_cp_dll "${W_TMP}/win32"/mfcm90u.dll.30729.6161.Microsoft_VC90_MFC_x86.QFE "${W_SYSTEM32_DLLS}"/mfcm90u.dll if [ "${W_ARCH}" = "win64" ]; then w_download_to vcrun2008 https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe c5e273a4a16ab4d5471e91c7477719a2f45ddadb76c7f98a38fa5074a6838654 @@ -12507,10 +12602,10 @@ load_mfc90() w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/vcrun2008/vcredist_x64.exe -F 'vc_red.cab' w_try_cabextract --directory="${W_TMP}/win64" "${W_TMP}/win64/vc_red.cab" - w_try cp "${W_TMP}/win64"/mfc90.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "${W_SYSTEM64_DLLS}"/mfc90.dll - w_try cp "${W_TMP}/win64"/mfc90u.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "${W_SYSTEM64_DLLS}"/mfc90u.dll - w_try cp "${W_TMP}/win64"/mfcm90.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "${W_SYSTEM64_DLLS}"/mfcm90.dll - w_try cp "${W_TMP}/win64"/mfcm90u.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "${W_SYSTEM64_DLLS}"/mfcm90u.dll + w_try_cp_dll "${W_TMP}/win64"/mfc90.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "${W_SYSTEM64_DLLS}"/mfc90.dll + w_try_cp_dll "${W_TMP}/win64"/mfc90u.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "${W_SYSTEM64_DLLS}"/mfc90u.dll + w_try_cp_dll "${W_TMP}/win64"/mfcm90.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "${W_SYSTEM64_DLLS}"/mfcm90.dll + w_try_cp_dll "${W_TMP}/win64"/mfcm90u.dll.30729.6161.Microsoft_VC90_MFC_x64.QFE "${W_SYSTEM64_DLLS}"/mfcm90u.dll fi } @@ -12562,10 +12657,10 @@ load_mfc100() w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/vcrun2010/vcredist_x86.exe -F '*.cab' w_try_cabextract --directory="${W_TMP}/win32" "${W_TMP}/win32/vc_red.cab" - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfc100_x86 "${W_SYSTEM32_DLLS}"/mfc100.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfc100u_x86 "${W_SYSTEM32_DLLS}"/mfc100u.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfcm100_x86 "${W_SYSTEM32_DLLS}"/mfcm100.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfcm100u_x86 "${W_SYSTEM32_DLLS}"/mfcm100u.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfc100_x86 "${W_SYSTEM32_DLLS}"/mfc100.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfc100u_x86 "${W_SYSTEM32_DLLS}"/mfc100u.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfcm100_x86 "${W_SYSTEM32_DLLS}"/mfcm100.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfcm100u_x86 "${W_SYSTEM32_DLLS}"/mfcm100u.dll if [ "${W_ARCH}" = "win64" ]; then w_download_to vcrun2010 https://download.microsoft.com/download/A/8/0/A80747C3-41BD-45DF-B505-E9710D2744E0/vcredist_x64.exe 2fddbc3aaaab784c16bc673c3bae5f80929d5b372810dbc28649283566d33255 @@ -12573,10 +12668,10 @@ load_mfc100() w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/vcrun2010/vcredist_x64.exe -F '*.cab' w_try_cabextract --directory="${W_TMP}/win64" "${W_TMP}/win64/vc_red.cab" - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfc100_x64 "${W_SYSTEM64_DLLS}"/mfc100.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfc100u_x64 "${W_SYSTEM64_DLLS}"/mfc100u.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfcm100_x64 "${W_SYSTEM64_DLLS}"/mfcm100.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfcm100u_x64 "${W_SYSTEM64_DLLS}"/mfcm100u.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfc100_x64 "${W_SYSTEM64_DLLS}"/mfc100.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfc100u_x64 "${W_SYSTEM64_DLLS}"/mfc100u.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfcm100_x64 "${W_SYSTEM64_DLLS}"/mfcm100.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfcm100u_x64 "${W_SYSTEM64_DLLS}"/mfcm100u.dll fi } @@ -12624,10 +12719,10 @@ load_mfc110() w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/vcrun2012/vcredist_x86.exe -F 'a3' w_try_cabextract --directory="${W_TMP}/win32" "${W_TMP}/win32/a3" - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfc110_x86 "${W_SYSTEM32_DLLS}"/mfc110.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfc110u_x86 "${W_SYSTEM32_DLLS}"/mfc110u.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfcm110_x86 "${W_SYSTEM32_DLLS}"/mfcm110.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfcm110u_x86 "${W_SYSTEM32_DLLS}"/mfcm110u.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfc110_x86 "${W_SYSTEM32_DLLS}"/mfc110.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfc110u_x86 "${W_SYSTEM32_DLLS}"/mfc110u.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfcm110_x86 "${W_SYSTEM32_DLLS}"/mfcm110.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfcm110u_x86 "${W_SYSTEM32_DLLS}"/mfcm110u.dll if [ "${W_ARCH}" = "win64" ]; then w_download_to vcrun2012 https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe 681be3e5ba9fd3da02c09d7e565adfa078640ed66a0d58583efad2c1e3cc4064 @@ -12635,10 +12730,10 @@ load_mfc110() w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/vcrun2012/vcredist_x64.exe -F 'a3' w_try_cabextract --directory="${W_TMP}/win64" "${W_TMP}/win64/a3" - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfc110_x64 "${W_SYSTEM64_DLLS}"/mfc110.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfc110u_x64 "${W_SYSTEM64_DLLS}"/mfc110u.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfcm110_x64 "${W_SYSTEM64_DLLS}"/mfcm110.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfcm110u_x64 "${W_SYSTEM64_DLLS}"/mfcm110u.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfc110_x64 "${W_SYSTEM64_DLLS}"/mfc110.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfc110u_x64 "${W_SYSTEM64_DLLS}"/mfc110u.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfcm110_x64 "${W_SYSTEM64_DLLS}"/mfcm110.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfcm110u_x64 "${W_SYSTEM64_DLLS}"/mfcm110u.dll fi } @@ -12689,10 +12784,10 @@ load_mfc120() w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/vcrun2013/vcredist_x86.exe -F 'a3' w_try_cabextract --directory="${W_TMP}/win32" "${W_TMP}/win32/a3" - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfc120_x86 "${W_SYSTEM32_DLLS}"/mfc120.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfc120u_x86 "${W_SYSTEM32_DLLS}"/mfc120u.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfcm120_x86 "${W_SYSTEM32_DLLS}"/mfcm120.dll - w_try cp "${W_TMP}/win32"/F_CENTRAL_mfcm120u_x86 "${W_SYSTEM32_DLLS}"/mfcm120u.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfc120_x86 "${W_SYSTEM32_DLLS}"/mfc120.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfc120u_x86 "${W_SYSTEM32_DLLS}"/mfc120u.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfcm120_x86 "${W_SYSTEM32_DLLS}"/mfcm120.dll + w_try_cp_dll "${W_TMP}/win32"/F_CENTRAL_mfcm120u_x86 "${W_SYSTEM32_DLLS}"/mfcm120u.dll if [ "${W_ARCH}" = "win64" ]; then w_download_to vcrun2013 https://download.microsoft.com/download/0/5/6/056dcda9-d667-4e27-8001-8a0c6971d6b1/vcredist_x64.exe 20e2645b7cd5873b1fa3462b99a665ac8d6e14aae83ded9d875fea35ffdd7d7e @@ -12700,17 +12795,17 @@ load_mfc120() w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/vcrun2013/vcredist_x64.exe -F 'a3' w_try_cabextract --directory="${W_TMP}/win64" "${W_TMP}/win64/a3" - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfc120_x64 "${W_SYSTEM64_DLLS}"/mfc120.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfc120u_x64 "${W_SYSTEM64_DLLS}"/mfc120u.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfcm120_x64 "${W_SYSTEM64_DLLS}"/mfcm120.dll - w_try cp "${W_TMP}/win64"/F_CENTRAL_mfcm120u_x64 "${W_SYSTEM64_DLLS}"/mfcm120u.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfc120_x64 "${W_SYSTEM64_DLLS}"/mfc120.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfc120u_x64 "${W_SYSTEM64_DLLS}"/mfc120u.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfcm120_x64 "${W_SYSTEM64_DLLS}"/mfcm120.dll + w_try_cp_dll "${W_TMP}/win64"/F_CENTRAL_mfcm120u_x64 "${W_SYSTEM64_DLLS}"/mfcm120u.dll fi } #---------------------------------------------------------------- w_metadata vcrun2015 dlls \ - title="Visual C++ 2015 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll)" \ + title="Visual C++ 2015 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1.dll,msvcp140_atomic_wait.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll,vcruntime140_1.dll)" \ publisher="Microsoft" \ year="2015" \ media="download" \ @@ -12724,7 +12819,7 @@ load_vcrun2015() # 2015/10/12: fdd1e1f0dcae2d0aa0720895eff33b927d13076e64464bb7c7e5843b7667cd14 w_download https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe fdd1e1f0dcae2d0aa0720895eff33b927d13076e64464bb7c7e5843b7667cd14 - w_override_dlls native,builtin api-ms-win-crt-private-l1-1-0 api-ms-win-crt-conio-l1-1-0 api-ms-win-crt-convert-l1-1-0 api-ms-win-crt-environment-l1-1-0 api-ms-win-crt-filesystem-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-multibyte-l1-1-0 api-ms-win-crt-process-l1-1-0 api-ms-win-crt-runtime-l1-1-0 api-ms-win-crt-stdio-l1-1-0 api-ms-win-crt-string-l1-1-0 api-ms-win-crt-utility-l1-1-0 api-ms-win-crt-time-l1-1-0 atl140 concrt140 msvcp140 msvcr140 ucrtbase vcomp140 vcruntime140 + w_override_dlls native,builtin api-ms-win-crt-private-l1-1-0 api-ms-win-crt-conio-l1-1-0 api-ms-win-crt-convert-l1-1-0 api-ms-win-crt-environment-l1-1-0 api-ms-win-crt-filesystem-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-multibyte-l1-1-0 api-ms-win-crt-process-l1-1-0 api-ms-win-crt-runtime-l1-1-0 api-ms-win-crt-stdio-l1-1-0 api-ms-win-crt-string-l1-1-0 api-ms-win-crt-utility-l1-1-0 api-ms-win-crt-time-l1-1-0 atl140 concrt140 msvcp140 msvcp140_1 msvcp140_atomic_wait ucrtbase vcomp140 vccorlib140 vcruntime140 vcruntime140_1 if w_workaround_wine_bug 50894 "Working around failing wusa.exe lookup via C:\windows\SysNative"; then w_set_winver winxp @@ -12768,10 +12863,10 @@ load_mfc140() w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/vcrun2015/vc_redist.x86.exe -F 'a11' w_try_cabextract --directory="${W_TMP}/win32" "${W_TMP}/win32/a11" - w_try cp "${W_TMP}/win32"/mfc140.dll "${W_SYSTEM32_DLLS}"/mfc140.dll - w_try cp "${W_TMP}/win32"/mfc140u.dll "${W_SYSTEM32_DLLS}"/mfc140u.dll - w_try cp "${W_TMP}/win32"/mfcm140.dll "${W_SYSTEM32_DLLS}"/mfcm140.dll - w_try cp "${W_TMP}/win32"/mfcm140u.dll "${W_SYSTEM32_DLLS}"/mfcm140u.dll + w_try_cp_dll "${W_TMP}/win32"/mfc140.dll "${W_SYSTEM32_DLLS}"/mfc140.dll + w_try_cp_dll "${W_TMP}/win32"/mfc140u.dll "${W_SYSTEM32_DLLS}"/mfc140u.dll + w_try_cp_dll "${W_TMP}/win32"/mfcm140.dll "${W_SYSTEM32_DLLS}"/mfcm140.dll + w_try_cp_dll "${W_TMP}/win32"/mfcm140u.dll "${W_SYSTEM32_DLLS}"/mfcm140u.dll if [ "${W_ARCH}" = "win64" ]; then w_download_to vcrun2015 https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe 5eea714e1f22f1875c1cb7b1738b0c0b1f02aec5ecb95f0fdb1c5171c6cd93a3 @@ -12779,17 +12874,17 @@ load_mfc140() w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/vcrun2015/vc_redist.x64.exe -F 'a11' w_try_cabextract --directory="${W_TMP}/win64" "${W_TMP}/win64/a11" - w_try cp "${W_TMP}/win64"/mfc140.dll "${W_SYSTEM64_DLLS}"/mfc140.dll - w_try cp "${W_TMP}/win64"/mfc140u.dll "${W_SYSTEM64_DLLS}"/mfc140u.dll - w_try cp "${W_TMP}/win64"/mfcm140.dll "${W_SYSTEM64_DLLS}"/mfcm140.dll - w_try cp "${W_TMP}/win64"/mfcm140u.dll "${W_SYSTEM64_DLLS}"/mfcm140u.dll + w_try_cp_dll "${W_TMP}/win64"/mfc140.dll "${W_SYSTEM64_DLLS}"/mfc140.dll + w_try_cp_dll "${W_TMP}/win64"/mfc140u.dll "${W_SYSTEM64_DLLS}"/mfc140u.dll + w_try_cp_dll "${W_TMP}/win64"/mfcm140.dll "${W_SYSTEM64_DLLS}"/mfcm140.dll + w_try_cp_dll "${W_TMP}/win64"/mfcm140u.dll "${W_SYSTEM64_DLLS}"/mfcm140u.dll fi } #---------------------------------------------------------------- w_metadata vcrun2017 dlls \ - title="Visual C++ 2017 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1.dll,msvcp140_2.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll)" \ + title="Visual C++ 2017 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1.dll,msvcp140_2.dll,msvcp140_atomic_wait.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll,vcruntime140_1.dll)" \ publisher="Microsoft" \ year="2017" \ media="download" \ @@ -12805,9 +12900,9 @@ load_vcrun2017() # 2019/08/14: 54ad46ae80984aa48cae6361213692c96b3639e322730d28c7fb93b183c761da w_download https://aka.ms/vs/15/release/vc_redist.x86.exe 54ad46ae80984aa48cae6361213692c96b3639e322730d28c7fb93b183c761da - w_override_dlls native,builtin api-ms-win-crt-private-l1-1-0 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 msvcp140_1 msvcp140_2 msvcr140 ucrtbase vcomp140 vcruntime140 + w_override_dlls native,builtin api-ms-win-crt-private-l1-1-0 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 msvcp140_1 msvcp140_2 msvcp140_atomic_wait ucrtbase vcamp140 vcomp140 vccorlib140 vcruntime140 vcruntime140_1 - if w_workaround_wine_bug 50894 "Working around failing wusa.exe lookup via C:\windows\SysNative"; then + if w_workaround_wine_bug 50894 "Working around failing wusa.exe lookup via C:\windows\SysNative"; then w_set_winver winxp fi @@ -12840,7 +12935,7 @@ load_vcrun2017() #---------------------------------------------------------------- w_metadata vcrun2019 dlls \ - title="Visual C++ 2015-2019 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1,msvcp140_2,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll) (and vcruntime140_1.dll on win64)" \ + title="Visual C++ 2015-2019 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1.dll,msvcp140_2.dll,msvcp140_atomic_wait.dll,msvcp140_codecvt_ids.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll,vcruntime140_1.dll" \ publisher="Microsoft" \ year="2019" \ media="download" \ @@ -12864,12 +12959,13 @@ load_vcrun2019() # 2021/06/06: 91c21c93a88dd82e8ae429534dacbc7a4885198361eae18d82920c714e328cf9 # 2021/08/26: 1acd8d5ea1cdc3eb2eb4c87be3ab28722d0825c15449e5c9ceef95d897de52fa # 2021/10/23: 80c7969f4e05002a0cd820b746e0acb7406d4b85e52ef096707315b390927824 + # 2022/01/18: 4c6c420cf4cbf2c9c9ed476e96580ae92a97b2822c21329a2e49e8439ac5ad30 w_warn "ucrtbase.dll is no longer included in vcrun2019. For details see: https://github.com/Winetricks/winetricks/issues/1770" - w_override_dlls native,builtin api-ms-win-crt-private-l1-1-0 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 msvcp140_1 msvcp140_2 msvcr140 vcomp140 vcruntime140 + w_override_dlls native,builtin api-ms-win-crt-private-l1-1-0 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 msvcp140_1 msvcp140_2 msvcp140_atomic_wait msvcp140_codecvt_ids vcamp140 vccorlib140 vcomp140 vcruntime140 - w_download https://aka.ms/vs/16/release/vc_redist.x86.exe 80c7969f4e05002a0cd820b746e0acb7406d4b85e52ef096707315b390927824 + w_download https://aka.ms/vs/16/release/vc_redist.x86.exe 4c6c420cf4cbf2c9c9ed476e96580ae92a97b2822c21329a2e49e8439ac5ad30 if w_workaround_wine_bug 50894 "Working around failing wusa.exe lookup via C:\windows\SysNative"; then w_set_winver winxp @@ -12894,11 +12990,12 @@ load_vcrun2019() # 2021/06/06: a1592d3da2b27230c087a3b069409c1e82c2664b0d4c3b511701624702b2e2a3 # 2021/08/26: 003063723b2131da23f40e2063fb79867bae275f7b5c099dbd1792e25845872b # 2021/10/23: 9b9dd72c27ab1db081de56bb7b73bee9a00f60d14ed8e6fde45dab3e619b5f04 + # 2022/01/18: 296f96cd102250636bcd23ab6e6cf70935337b1bbb3507fe8521d8d9cfaa932f # vcruntime140_1 is only shipped on x64: w_override_dlls native,builtin vcruntime140_1 - w_download https://aka.ms/vs/16/release/vc_redist.x64.exe 9b9dd72c27ab1db081de56bb7b73bee9a00f60d14ed8e6fde45dab3e619b5f04 + w_download https://aka.ms/vs/16/release/vc_redist.x64.exe 296f96cd102250636bcd23ab6e6cf70935337b1bbb3507fe8521d8d9cfaa932f w_try "${WINE}" vc_redist.x64.exe ${W_OPT_UNATTENDED:+/q} ;; esac @@ -12939,7 +13036,7 @@ w_metadata vstools2019 apps \ load_vstools2019() { w_call dotnet472 - w_download https://aka.ms/vs/16/release/installer d6e0778f57a0f56302e6ad5b55b0423e148cce2244a5d6047c3256e841052a23 vstools2019.zip + w_download https://aka.ms/vs/16/release/installer e653e715ddb8a08873e50a2fe091fca2ce77726b8b6ed2b99ed916d0e03c1fbe vstools2019.zip w_try_unzip "${W_TMP}/vs_installer_16" "${W_CACHE}/${W_PACKAGE}/vstools2019.zip" w_try "${WINE}" "${W_TMP}"/vs_installer_16/Contents/vs_installer.exe install \ --channelId VisualStudio.16.Release \ @@ -13021,11 +13118,11 @@ w_metadata webio dlls \ load_webio() { helper_win7sp1 x86_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.17514_none_5ef1a4093cf55387/webio.dll - w_try cp "${W_TMP}/x86_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.17514_none_5ef1a4093cf55387/webio.dll" "${W_SYSTEM32_DLLS}/webio.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.17514_none_5ef1a4093cf55387/webio.dll" "${W_SYSTEM32_DLLS}/webio.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.17514_none_bb103f8cf552c4bd/webio.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.17514_none_bb103f8cf552c4bd/webio.dll" "${W_SYSTEM64_DLLS}/webio.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-webio_31bf3856ad364e35_6.1.7601.17514_none_bb103f8cf552c4bd/webio.dll" "${W_SYSTEM64_DLLS}/webio.dll" fi w_override_dlls native,builtin webio @@ -13061,7 +13158,7 @@ load_windowscodecs() w_try rm -f "${W_SYSTEM32_DLLS}"/windowscodecs.dll "${W_SYSTEM32_DLLS}"/windowscodecsext.dll "${W_SYSTEM32_DLLS}"/wmphoto.dll "${W_SYSTEM32_DLLS}"/photometadatahandler.dll if [ "${W_ARCH}" = "win64" ]; then - w_try rm -f "${W_SYSTEM64_DLLS}"/windowscodecs.dll "${W_SYSTEM64_DLLS}"/windowscodecsext.dll "${W_SYSTEM64_DLLS}"/wmphoto.dll "${W_SYSTEM64_DLLS}"/photometadatahandler.dll + w_try rm -f "${W_SYSTEM64_DLLS}"/windowscodecs.dll "${W_SYSTEM64_DLLS}"/windowscodecsext.dll "${W_SYSTEM64_DLLS}"/wmphoto.dll "${W_SYSTEM64_DLLS}"/photometadatahandler.dll fi # AF says in AppDB entry for .NET 3.0 that windowscodecs has to be native only @@ -13119,11 +13216,11 @@ w_metadata wininet dlls \ load_wininet() { helper_win7sp1 x86_microsoft-windows-i..tocolimplementation_31bf3856ad364e35_8.0.7601.17514_none_1eaaa4a07717236e/wininet.dll - w_try cp "${W_TMP}/x86_microsoft-windows-i..tocolimplementation_31bf3856ad364e35_8.0.7601.17514_none_1eaaa4a07717236e/wininet.dll" "${W_SYSTEM32_DLLS}/wininet.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-i..tocolimplementation_31bf3856ad364e35_8.0.7601.17514_none_1eaaa4a07717236e/wininet.dll" "${W_SYSTEM32_DLLS}/wininet.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-i..tocolimplementation_31bf3856ad364e35_8.0.7601.17514_none_7ac940242f7494a4/wininet.dll - w_try cp "${W_TMP}/amd64_microsoft-windows-i..tocolimplementation_31bf3856ad364e35_8.0.7601.17514_none_7ac940242f7494a4/wininet.dll" "${W_SYSTEM64_DLLS}/wininet.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-i..tocolimplementation_31bf3856ad364e35_8.0.7601.17514_none_7ac940242f7494a4/wininet.dll" "${W_SYSTEM64_DLLS}/wininet.dll" fi w_override_dlls native,builtin wininet @@ -13199,7 +13296,7 @@ load_wmv9vcm() # See also https://www.microsoft.com/en-us/download/details.aspx?id=6191 w_download https://download.microsoft.com/download/2/8/D/28DA9C3E-6DA2-456F-BD33-1F937EB6E0FF/WindowsServer2003-WindowsMedia-KB2845142-x86-ENU.exe 51e11691339c1c817b12f92e613145ffcd7b6f7e869d994cc8dbc4591b24f155 w_try_cabextract --directory="${W_TMP}" "${W_CACHE}/${W_PACKAGE}/${file1}" - w_try cp -f "${W_TMP}"/wm64/wmv9vcm.dll "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_TMP}"/wm64/wmv9vcm.dll "${W_SYSTEM32_DLLS}" # Register codec: cat > "${W_TMP}"/tmp.reg <<_EOF_ @@ -13339,10 +13436,12 @@ load_xinput() w_try_cabextract -d "${W_TMP}" -L -F '*_xinput_*x86*' "${W_CACHE}"/directx9/${DIRECTX_NAME} for x in "${W_TMP}"/*.cab; do - w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'xinput*.dll' "${x}" + w_try_cabextract -d "${W_SYSTEM32_DLLS}" -L -F 'xinput*.dll' "${x}" done + if test "${W_ARCH}" = "win64"; then w_try_cabextract -d "${W_TMP}" -L -F '*_xinput_*x64*' "${W_CACHE}"/directx9/${DIRECTX_NAME} + for x in "${W_TMP}"/*x64.cab; do w_try_cabextract -d "${W_SYSTEM64_DLLS}" -L -F 'xinput*.dll' "${x}" done @@ -13366,11 +13465,11 @@ w_metadata xmllite dlls \ load_xmllite() { helper_win7sp1 x86_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_0b66cb34258c936f/xmllite.dll - w_try cp "${W_TMP}/x86_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_0b66cb34258c936f/xmllite.dll" "${W_SYSTEM32_DLLS}/xmllite.dll" + w_try_cp_dll "${W_TMP}/x86_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_0b66cb34258c936f/xmllite.dll" "${W_SYSTEM32_DLLS}/xmllite.dll" if [ "${W_ARCH}" = "win64" ]; then helper_win7sp1_x64 amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_678566b7ddea04a5/xmllite.dll "${W_SYSTEM64_DLLS}/xmllite.dll" - w_try cp "${W_TMP}/amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_678566b7ddea04a5/xmllite.dll" "${W_SYSTEM64_DLLS}/xmllite.dll" + w_try_cp_dll "${W_TMP}/amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17514_none_678566b7ddea04a5/xmllite.dll" "${W_SYSTEM64_DLLS}/xmllite.dll" fi w_override_dlls native,builtin xmllite @@ -14576,26 +14675,24 @@ load_autohotkey() #---------------------------------------------------------------- w_metadata busybox apps \ - title="BusyBox FRP-3902-g61e53aa93" \ + title="BusyBox FRP-4621-gf3c5e8bc3" \ publisher="Ron Yorston / Busybox authors" \ year="2021" \ media="download" \ - file1="busybox-w32-FRP-3902-g61e53aa93.exe" \ + file1="busybox-w32-FRP-4621-gf3c5e8bc3.exe" \ installed_exe1="${W_SYSTEM32_DLLS_WIN}/busybox.exe" load_busybox() { - w_download https://frippery.org/files/busybox/busybox-w32-FRP-3902-g61e53aa93.exe 5595ff92795dba4717df671c0b17fe3419c332986b2cf5e6a92b4a0f83312fa3 + w_download https://frippery.org/files/busybox/busybox-w32-FRP-4621-gf3c5e8bc3.exe 58c9da9ba094eade662572f9a725a6af44350dc3ff5a7897696926c651fdb582 if test "${W_ARCH}" = "win64"; then - w_download https://frippery.org/files/busybox/busybox-w64-FRP-3902-g61e53aa93.exe 901f5125fd35df11102df65c70b8877f0d06aad5ac3a27bf9e5d50a43644744b - w_try cp "${W_CACHE}/${W_PACKAGE}/${file1}" "${W_SYSTEM32_DLLS}/busybox.exe" - w_try cp "${W_CACHE}/${W_PACKAGE}/busybox-w64-FRP-2121-ga316078ad.exe" "${W_SYSTEM64_DLLS}/busybox.exe" + w_download https://frippery.org/files/busybox/busybox-w64-FRP-4621-gf3c5e8bc3.exe 7109bc6f129ab7ce466f7b3175ca830316184b431d16a965ade17b93c035ec7c + w_try_cp_dll "${W_CACHE}/${W_PACKAGE}/${file1}" "${W_SYSTEM32_DLLS}/busybox.exe" + w_try_cp_dll "${W_CACHE}/${W_PACKAGE}/busybox-w64-FRP-4621-gf3c5e8bc3.exe" "${W_SYSTEM64_DLLS}/busybox.exe" else - w_try cp "${W_CACHE}/${W_PACKAGE}/${file1}" "${W_SYSTEM32_DLLS}/busybox.exe" + w_try_cp_dll "${W_CACHE}/${W_PACKAGE}/${file1}" "${W_SYSTEM32_DLLS}/busybox.exe" fi - - w_warn "There are known issues with busybox under wine. For https://bugs.winehq.org/show_bug.cgi?id=49780, set BB_SKIP_ANSI_EMULATION=0. For https://github.com/rmyorston/busybox-w32/issues/210, set BB_ALT_BUFFER=0. I.e., \`BB_SKIP_ANSI_EMULATION=0 BB_ALT_BUFFER=0 ${WINE} busybox.exe\`" } #---------------------------------------------------------------- @@ -14986,7 +15083,7 @@ load_ie6() # Remove the fake DLLs, if any mv "${W_PROGRAMS_UNIX}/Internet Explorer/iexplore.exe" "${W_PROGRAMS_UNIX}/Internet Explorer/iexplore.exe.bak" - for dll in itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi; do + for dll in itircl itss jscript mlang mshtml msimtf shdoclc shdocvw; do test -f "${W_SYSTEM32_DLLS}"/${dll}.dll && mv "${W_SYSTEM32_DLLS}"/${dll}.dll "${W_SYSTEM32_DLLS}"/${dll}.dll.bak done @@ -15069,7 +15166,7 @@ load_ie7() if [ -f "${W_PROGRAMS_X86_UNIX}/Internet Explorer/iexplore.exe" ]; then mv "${W_PROGRAMS_X86_UNIX}/Internet Explorer/iexplore.exe" "${W_PROGRAMS_X86_UNIX}/Internet Explorer/iexplore.exe.bak" fi - for dll in itircl itss jscript mshtml msimtf shdoclc shdocvw shlwapi urlmon; do + for dll in itircl itss jscript mshtml msimtf shdoclc shdocvw urlmon; do test -f "${W_SYSTEM32_DLLS}"/${dll}.dll && mv "${W_SYSTEM32_DLLS}"/${dll}.dll "${W_SYSTEM32_DLLS}"/${dll}.dll.bak done @@ -15127,16 +15224,16 @@ load_ie7() # CLSID path will get overwritten on prefix update. Setting ieproxy to # native doesn't help because setupapi ignores DLL overrides. To work # around this problem, copy native ieproxy to system32. - w_try cp -f "${W_PROGRAMS_X86_UNIX}/Internet Explorer/ieproxy.dll" "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_PROGRAMS_X86_UNIX}/Internet Explorer/ieproxy.dll" "${W_SYSTEM32_DLLS}" # Seeing is believing case ${WINETRICKS_GUI} in none) - w_warn "To start ie7, use the command \"${WINE}\" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'" + w_warn "To start ie7, use the command \"${WINE}\" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore.exe'" ;; *) - w_warn "Starting ie7. To start it later, use the command \"${WINE}\" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'" - "${WINE}" "${W_PROGRAMS_WIN}\\Internet Explorer\\iexplore" https://www.microsoft.com/windows/internet-explorer/ie7/ > /dev/null 2>&1 & + w_warn "Starting ie7. To start it later, use the command \"${WINE}\" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore.exe'" + "${WINE}" "${W_PROGRAMS_WIN}\\Internet Explorer\\iexplore.exe" http://www.example.com/ > /dev/null 2>&1 & ;; esac @@ -15156,11 +15253,13 @@ w_metadata ie8 dlls \ load_ie8() { - # Installer itself bails out - w_package_unsupported_win64 - - # Bundled in Windows 7, so refuses to install. Works with XP: - w_set_winver winxp + if [ "${W_ARCH}" = "win32" ]; then + # Bundled in Windows 7, so refuses to install. Works with XP: + w_set_winver winxp + else + # Bundled in Windows 7, so refuses to install. Works with Win2003: + w_set_winver win2k3 + fi # Unregister Wine IE #if [ ! -f "$W_SYSTEM32_DLLS"/plugin.ocx ]; then @@ -15188,18 +15287,34 @@ load_ie8() mkdir -p "${W_SYSTEM32_DLLS}"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\} w_try cp -f "${W_CACHE}"/ie8/winetest.cat "${W_SYSTEM32_DLLS}"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}/oem0.cat - w_download https://download.microsoft.com/download/C/C/0/CC0BD555-33DD-411E-936B-73AC6F95AE11/IE8-WindowsXP-x86-ENU.exe 5a2c6c82774bfe99b175f50a05b05bcd1fac7e9d0e54db2534049209f50cd6ef + if [ "${W_ARCH}" = "win32" ]; then + w_download https://download.microsoft.com/download/C/C/0/CC0BD555-33DD-411E-936B-73AC6F95AE11/IE8-WindowsXP-x86-ENU.exe 5a2c6c82774bfe99b175f50a05b05bcd1fac7e9d0e54db2534049209f50cd6ef + else + w_download https://download.microsoft.com/download/7/5/4/754D6601-662D-4E39-9788-6F90D8E5C097/IE8-WindowsServer2003-x64-ENU.exe bcff753e92ceabf31cfefaa6def146335c7cb27a50b95cd4f4658a0c3326f499 + fi # Remove the fake DLLs from the existing WINEPREFIX if [ -f "${W_PROGRAMS_X86_UNIX}/Internet Explorer/iexplore.exe" ]; then w_try mv "${W_PROGRAMS_X86_UNIX}/Internet Explorer/iexplore.exe" "${W_PROGRAMS_X86_UNIX}/Internet Explorer/iexplore.exe.bak" fi + if [ "${W_ARCH}" = "win64" ]; then + if [ -f "${W_PROGRAMS_UNIX}/Internet Explorer/iexplore.exe" ]; then + w_try mv "${W_PROGRAMS_UNIX}/Internet Explorer/iexplore.exe" "${W_PROGRAMS_UNIX}/Internet Explorer/iexplore.exe.bak" + fi + fi + # Replace the fake DLLs by copies from the bundle for dll in browseui inseng itircl itss jscript mshtml shdoclc shdocvw shlwapi urlmon; do test -f "${W_SYSTEM32_DLLS}"/${dll}.dll && w_try mv "${W_SYSTEM32_DLLS}"/${dll}.dll "${W_SYSTEM32_DLLS}"/${dll}.dll.bak && w_try_cabextract --directory="${W_SYSTEM32_DLLS}" "${W_CACHE}"/ie8/IE8-WindowsXP-x86-ENU.exe -F ${dll}.dll + if [ "${W_ARCH}" = "win64" ]; then + test -f "${W_SYSTEM64_DLLS}"/${dll}.dll && + w_try mv "${W_SYSTEM64_DLLS}"/${dll}.dll "${W_SYSTEM64_DLLS}"/${dll}.dll.bak + w_try_cabextract --directory="${W_SYSTEM64_DLLS}" "${W_CACHE}"/ie8/IE8-WindowsServer2003-x64-ENU.exe -F ${dll}.dll + fi + done # KLUDGE: if / is writable (as on OS X?), having a Z: mapping to it @@ -15216,7 +15331,11 @@ load_ie8() # FIXME: There's an option for /updates-noupdates to disable checking for updates, but that # forces the install to fail on Wine. Not sure if it's an IE8 or Wine bug... # FIXME: can't check status, as it always reports failure on wine? - "${WINE}" IE8-WindowsXP-x86-ENU.exe ${W_OPT_UNATTENDED:+/quiet /forcerestart} + if [ "${W_ARCH}" = "win32" ]; then + "${WINE}" IE8-WindowsXP-x86-ENU.exe ${W_OPT_UNATTENDED:+/quiet /forcerestart} + else + "${WINE}" IE8-WindowsServer2003-x64-ENU.exe ${W_OPT_UNATTENDED:+/quiet /forcerestart} + fi if [ "${_W_restore_z}" = 1 ]; then # END KLUDGE: restore Z:, assuming that the user didn't kill us @@ -15225,7 +15344,6 @@ load_ie8() # Work around DLL registration bug until ierunonce/RunOnce/wineboot is fixed # FIXME: whittle down this list - w_try_cd "${W_SYSTEM32_DLLS}" for i in actxprxy.dll browseui.dll browsewm.dll cdfview.dll ddraw.dll \ dispex.dll dsound.dll iedkcs32.dll iepeers.dll iesetup.dll \ imgutil.dll inetcomm.dll isetup.dll jscript.dll laprxy.dll \ @@ -15237,6 +15355,9 @@ load_ie8() wshcon.dll wshext.dll asctrls.ocx hhctrl.ocx mscomct2.ocx \ plugin.ocx proctexe.ocx tdc.ocx uxtheme.dll webcheck.dll wshom.ocx; do "${WINE}" regsvr32 /i ${i} > /dev/null 2>&1 + if [ "${W_ARCH}" = "win64" ]; then + "${WINE64}" regsvr32 /i ${i} > /dev/null 2>&1 + fi done if w_workaround_wine_bug 25648 "Setting TabProcGrowth=0 to avoid hang"; then @@ -15254,16 +15375,20 @@ _EOF_ # CLSID path will get overwritten on prefix update. Setting ieproxy to # native doesn't help because setupapi ignores DLL overrides. To work # around this problem, copy native ieproxy to system32. - w_try cp -f "${W_PROGRAMS_X86_UNIX}/Internet Explorer/ieproxy.dll" "${W_SYSTEM32_DLLS}" + w_try_cp_dll "${W_PROGRAMS_X86_UNIX}/Internet Explorer/ieproxy.dll" "${W_SYSTEM32_DLLS}" + + if [ "${W_ARCH}" = "win64" ]; then + w_try_cp_dll "${W_PROGRAMS_UNIX}/Internet Explorer/ieproxy.dll" "${W_SYSTEM64_DLLS}" + fi # Seeing is believing case ${WINETRICKS_GUI} in none) - w_warn "To start ie8, use the command \"${WINE}\" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'" + w_warn "To start ie8, use the command \"${WINE}\" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore.exe'" ;; *) - w_warn "Starting ie8. To start it later, use the command \"${WINE}\" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'" - "${WINE}" "${W_PROGRAMS_WIN}\\Internet Explorer\\iexplore" https://www.microsoft.com/windows/internet-explorer > /dev/null 2>&1 & + w_warn "Starting ie8. To start it later, use the command \"${WINE}\" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore.exe'" + "${WINE}" "${W_PROGRAMS_WIN}\\Internet Explorer\\iexplore.exe" http://www.example.com > /dev/null 2>&1 & ;; esac @@ -16146,7 +16271,8 @@ load_steam() # 2016/10/28: 029f918a29b2b311711788e8a477c8de529c11d7dba3caf99cbbde5a983efdad # 2018/06/01: 3bc6942fe09f10ed3447bccdcf4a70ed369366fef6b2c7f43b541f1a3c5d1c51 # 2021/03/27: 874788b45dfc043289ba05387e83f27b4a046004a88a4c5ee7c073187ff65b9d - w_download http://media.steampowered.com/client/installer/SteamSetup.exe 874788b45dfc043289ba05387e83f27b4a046004a88a4c5ee7c073187ff65b9d + # 2022/03/27: 3b616cb0beaacffb53884b5ba0453312d2577db598d2a877a3b251125fb281a1 + w_download http://media.steampowered.com/client/installer/SteamSetup.exe 3b616cb0beaacffb53884b5ba0453312d2577db598d2a877a3b251125fb281a1 w_try_cd "${W_CACHE}/${W_PACKAGE}" w_try "${WINE}" SteamSetup.exe ${W_OPT_UNATTENDED:+ /S} @@ -16511,7 +16637,9 @@ load_wme9() # See also https://www.microsoft.com/en-us/download/details.aspx?id=17792 # Formerly at: https://download.microsoft.com/download/8/1/f/81f9402f-efdd-439d-b2a4-089563199d47/WMEncoder.exe # Mirror list: http://www.filewatcher.com/_/?q=WMEncoder.exe - w_download https://people.ok.ubc.ca/mberger/MiscSW/WMEncoder.exe 19d1610d12b51c969f64703c4d3a76aae30dee526bae715381b5f3369f717d76 + # 2018-06-11: https://people.ok.ubc.ca/mberger/MiscSW/WMEncoder.exe + # 2022-03-31: http://galinet13.free.fr/codec/WMEncoder.exe + w_download http://galinet13.free.fr/codec/WMEncoder.exe 19d1610d12b51c969f64703c4d3a76aae30dee526bae715381b5f3369f717d76 w_try_cd "${W_CACHE}/${W_PACKAGE}" w_try "${WINE}" WMEncoder.exe ${W_OPT_UNATTENDED:+/q} @@ -16548,6 +16676,8 @@ load_wmp9() { w_skip_windows wmp9 && return + w_package_broken "https://bugs.winehq.org/show_bug.cgi?id=52772" 6.6 + # Not really expected to work well yet; see # https://appdb.winehq.org/appview.php?versionId=1449 @@ -16573,7 +16703,7 @@ load_wmp9() w_try_cd "${W_CACHE}"/"${W_PACKAGE}" if [ "${W_ARCH}" = "win64" ]; then - w_try cabextract -d "${W_TMP}" ./MPSetup.exe + w_try_cabextract -d "${W_TMP}" ./MPSetup.exe w_try_cd "${W_TMP}" w_try sed -i 's/IsWow64Process/IsNow64Process/' setup_wm.exe w_try "${WINE}" setup_wm.exe ${W_OPT_UNATTENDED:+/Quiet} @@ -16619,7 +16749,7 @@ load_wmp10() # Crashes on exit, but otherwise ok; see https://bugs.winehq.org/show_bug.cgi?id=12633 w_try_cd "${W_CACHE}/${W_PACKAGE}" - w_try cabextract -d "${W_TMP}" ./MP10Setup.exe + w_try_cabextract -d "${W_TMP}" ./MP10Setup.exe w_try_cd "${W_TMP}" "${WINE}" setup_wm.exe ${W_OPT_UNATTENDED:+/Quiet} @@ -16649,26 +16779,32 @@ load_wmp11() w_call gdiplus if [ "${W_ARCH}" = "win32" ]; then - # https://appdb.winehq.org/objectManager.php?sClass=version&iId=8150 - w_download https://web.archive.org/web/20170628063001/http://download.microsoft.com/download/0/9/5/0953e553-3bb6-44b1-8973-106f1b7e5049/wmp11-windowsxp-x86-enu.exe ffd321a441a67001a893f3bde4bb1afba07d4d2c9659bfdb0fbb057e7945d970 - installer_exe=wmp11-windowsxp-x86-enu.exe - wmf_exe=wmfdist11.exe - wmf_exe=wmp11.exe + # https://appdb.winehq.org/objectManager.php?sClass=version&iId=8150 + w_download https://web.archive.org/web/20170628063001/http://download.microsoft.com/download/0/9/5/0953e553-3bb6-44b1-8973-106f1b7e5049/wmp11-windowsxp-x86-enu.exe ffd321a441a67001a893f3bde4bb1afba07d4d2c9659bfdb0fbb057e7945d970 + + installer_exe=wmp11-windowsxp-x86-enu.exe + wmf_exe=wmfdist11.exe + wmf_exe=wmp11.exe elif [ "${W_ARCH}" = "win64" ]; then - # https://appdb.winehq.org/objectManager.php?sClass=version&iId=32057 - w_download https://web.archive.org/web/20190512112704/https://download.microsoft.com/download/3/0/8/3080C52C-2517-43DE-BDB4-B7EAFD88F084/wmp11-windowsxp-x64-enu.exe 5af407cf336849aff435044ec28f066dd523bbdc22d1ce7aaddb5263084f5526 - installer_exe=wmp11-windowsxp-x64-enu.exe - wmf_exe=wmfdist11-64.exe - wmp_exe=wmp11-64.exe + # https://appdb.winehq.org/objectManager.php?sClass=version&iId=32057 + w_download https://web.archive.org/web/20190512112704/https://download.microsoft.com/download/3/0/8/3080C52C-2517-43DE-BDB4-B7EAFD88F084/wmp11-windowsxp-x64-enu.exe 5af407cf336849aff435044ec28f066dd523bbdc22d1ce7aaddb5263084f5526 + + installer_exe=wmp11-windowsxp-x64-enu.exe + wmf_exe=wmfdist11-64.exe + wmp_exe=wmp11-64.exe fi w_set_winver winxp # remove builtin placeholders to allow update - w_try rm -f "${W_PROGRAMS_UNIX}/Windows Media Player/wmplayer.exe" "${W_SYSTEM64_DLLS}"/wmp.dll "${W_SYSTEM64_DLLS}"/wmvcore.dll + w_try rm -f "${W_PROGRAMS_UNIX}/Windows Media Player/wmplayer.exe" \ + "${W_SYSTEM32_DLLS}"/wmp.dll "${W_SYSTEM32_DLLS}"/wmvcore.dll "${W_SYSTEM32_DLLS}"/mfplat.dll "${W_SYSTEM32_DLLS}"/wmasf.dll \ + "${W_SYSTEM32_DLLS}"/wmpnssci.dll \ + "${W_SYSTEM64_DLLS}"/wmp.dll "${W_SYSTEM64_DLLS}"/wmvcore.dll "${W_SYSTEM64_DLLS}"/mfplat.dll "${W_SYSTEM64_DLLS}"/wmasf.dll \ + "${W_SYSTEM64_DLLS}"/wmpnssci.dll # need native overrides to allow update and later checks to succeed - w_override_dlls native l3codeca.acm wmp wmplayer.exe wmvcore wmpnssci + w_override_dlls native l3codeca.acm mfplat wmasf wmp wmplayer.exe wmpnssci wmvcore w_try_cd "${W_TMP}" @@ -18366,7 +18502,7 @@ load_deadspace2() # Install takes a long time, so offer a way to skip installation # and go straight to activation while debugging that if ! test -f "${W_PROGRAMS_X86_UNIX}/EA Games/Dead Space 2/deadspace2.exe"; then - w_ahk_do " + w_ahk_do " run easetup.exe if ( w_opt_unattended > 0 ) { SetTitleMatchMode, 2 @@ -19493,6 +19629,11 @@ load_lhp_demo() { case "${LANG}" in *UTF-8*|*utf8*) ;; + pt*) + w_warn "O instalaou falhou em uma localização não utf-8. Utilize 'export LANG=en_US.UTF-8' para contornar." + LANG=en_US.UTF-8 + export LANG + ;; *) w_warn "This installer fails in non-utf-8 locales. Doing 'export LANG=en_US.UTF-8' is a workaround." LANG=en_US.UTF-8 @@ -21360,159 +21501,6 @@ load_wog() " } -#---------------------------------------------------------------- -# Steam Games -#---------------------------------------------------------------- - -w_metadata alienswarm_steam games \ - title="Alien Swarm (Steam)" \ - publisher="Valve" \ - year="2010" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/alien swarm/swarm.exe" - -load_alienswarm_steam() -{ - w_steam_install_game 630 "Alien Swarm" -} - -#---------------------------------------------------------------- - -w_metadata bioshock2_steam games \ - title="Bioshock 2 (Steam)" \ - publisher="2k" \ - year="2010" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/bioshock2/blort.exe" - -load_bioshock2_steam() -{ - w_steam_install_game 8850 "BioShock 2" -} - -#---------------------------------------------------------------- - -w_metadata borderlands_steam games \ - title="Borderlands (Steam, non-free)" \ - publisher="2K Games" \ - year="2009" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/borderlands/Binaries/Borderlands.exe" - -load_borderlands_steam() -{ - w_steam_install_game 8980 "Borderlands" -} - -#---------------------------------------------------------------- - -w_metadata civ5_demo_steam games \ - title="Civilization V Demo (Steam)" \ - publisher="2K Games" \ - year="2010" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/sid meier's civilization v - demo/CivilizationV.exe" - -load_civ5_demo_steam() -{ - # Start AutoHotKey watching for DirectX 9 option in the background, and select it when it comes up - w_ahk_do " - SetWinDelay 500 - loop - { - ifWinExist, Sid Meier's Civilization V - Demo - Steam - { - winactivate - click 26,108 ; select directx9 - sleep 500 - click 200,150 ; Play - } - ifWinExist, Updating Sid Meier's Civilization V - Demo - { - break - } - sleep 1000 - } - " & - _job=$! - # While that's running, install the game. - # You'll see *two* AutoHotKey icons until that first script - # 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 -} - -#---------------------------------------------------------------- - -w_metadata ruse_demo_steam games \ - title="Ruse Demo (Steam)" \ - publisher="Ubisoft" \ - year="2010" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/r.u.s.e. demo/Ruse.exe" - -load_ruse_demo_steam() -{ - w_steam_install_game 33310 "R.U.S.E." -} - -#---------------------------------------------------------------- - -w_metadata supermeatboy_steam games \ - title="Super Meat Boy (Steam, non-free)" \ - publisher="Independent" \ - year="2010" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/super meat boy/SuperMeatBoy.exe" - -load_supermeatboy_steam() -{ - w_steam_install_game 40800 "Super Meat Boy" -} - -#---------------------------------------------------------------- - -w_metadata trine_steam games \ - title="Trine (Steam)" \ - publisher="Frozenbyte" \ - year="2009" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/trine/trine_launcher.exe" - -load_trine_steam() -{ - w_steam_install_game 35700 "Trine" -} - -#---------------------------------------------------------------- - -w_metadata trine_demo_steam games \ - title="Trine Demo (Steam)" \ - publisher="Frozenbyte" \ - year="2009" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/trine demo/trine_launcher.exe" - -load_trine_demo_steam() -{ - w_steam_install_game 35710 "Trine Demo" -} - -#---------------------------------------------------------------- - -w_metadata wormsreloaded_demo_steam games \ - title="Worms Reloaded Demo (Steam)" \ - publisher="Team17" \ - year="2010" \ - media="download" \ - installed_exe1="${W_PROGRAMS_X86_WIN}/Steam/steamapps/common/worms reloaded/WormsReloaded.exe" - -load_wormsreloaded_demo_steam() -{ - w_steam_install_game 22690 "Worms Reloaded Demo" -} - # Chinese apps addition #---------------------------------------------------------------- @@ -22829,6 +22817,24 @@ _EOF_ w_try_regedit crashdialog.reg } +w_metadata set_userpath settings \ + title_uk="" \ + title="set user PATH variable in wine prefix specified by native and/or wine paths in WINEPATH environment variable with ';' as path separator" + +load_set_userpath() +{ + wineuserpath=$(winepath -w "${WINEPATH}" | sed 's,\\,\\\\,g') + cat > "${W_TMP}"/setuserpath.reg <<_EOF_ +REGEDIT4 + +[HKEY_CURRENT_USER\\Environment] +"PATH"="${wineuserpath}" + +_EOF_ + w_try_cd "${W_TMP}" + w_try_regedit setuserpath.reg +} + #### # settings->misc @@ -22979,9 +22985,21 @@ load_native_mdac() w_override_dlls native,builtin msado15 fi + # For a while, this wasn't set (i.e., it was set to `builtin`, not `native,builtin`) + # See: # https://github.com/Winetricks/winetricks/issues/1448 - if w_wine_version_in ,4.22 ; then - w_override_dlls native,builtin odbccp32 + # https://github.com/Winetricks/winetricks/issues/1737 + # https://github.com/Winetricks/winetricks/issues/1841 + # + # https://bugs.winehq.org/show_bug.cgi?id=3158 + # https://bugs.winehq.org/show_bug.cgi?id=3161 + # https://bugs.winehq.org/show_bug.cgi?id=50460 + # et al.. + w_override_dlls native,builtin odbccp32 + + # https://github.com/Winetricks/winetricks/issues/1839 + if w_wine_version_in ,6.21 ; then + w_override_dlls native,builtin msdasql fi w_override_dlls native,builtin mtxdm odbc32 oledb32 @@ -23024,11 +23042,6 @@ load_remove_mono() return fi - # FIXME: verify on pristine Windows XP: - if w_workaround_wine_bug 34803; then - "${WINE_ARCH}" reg delete 'HKLM\\Software\\Microsoft\\.NETFramework\\v2.0.50727\\SBSDisabled' /f - fi - "${WINE_ARCH}" reg delete "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5" /f || true "${WINE_ARCH}" reg delete "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4" /f || true @@ -23355,6 +23368,12 @@ winetricks_stats_init() thanks="Dziękujemy! Nie otrzymasz już tego pytania. Pamiętaj, ze możesz wyłączyć tą opcję komendą 'winetricks --optout'" declined="OK, Winetricks *nie* będzie wysyłać statystyk. Nie otrzymasz już tego pytania." ;; + pt*) + title="Pergunta única sobre ajudar no desenvolvimento do Winetricks" + question="Você gostaria de ajudar no desenvolvimento do winetricks, permitindo que o winetricks relate estatísticas? Você pode desativar o relatório a qualquer momento com o comando 'winetricks --optout'" + thanks="Obrigado! Esta pergunta não será feita novamente. Lembre-se, você pode desativar o relatório a qualquer momento com o comando 'winetricks --optout'" + declined="OK, winetricks *não* reportará estatísticas. Esta pergunta não será feita novamente." + ;; ru*) title="Помощь в разработке Winetricks" question="Вы хотите помочь разработке winetricks, отправляя статистику? Вы можете отключить отправку статистики в любое время с помощью команды 'winetricks --optout'" @@ -23482,7 +23501,7 @@ winetricks_shell() fi done ;; - esac + esac ) } @@ -23553,25 +23572,66 @@ execute_command() dotnet2) w_warn "Calling dotnet2 is deprecated, please use dotnet20 instead" ; w_call dotnet20 ;; ddr=gdi) w_warn "Calling ddr=gdi is deprecated, please use renderer=gdi or renderer=no3d instead" ; w_call renderer=gdi ;; ddr=opengl) w_warn "Calling ddr=opengl is deprecated, please use renderer=gl instead" ; w_call renderer=gl ;; - dxvk54) w_warn "Calling dxvk54 is deprecated, please use dxvk054 instead" ; w_call dxvk054 ;; - dxvk60) w_warn "Calling dxvk60 is deprecated, please use dxvk060 instead" ; w_call dxvk060 ;; - dxvk61) w_warn "Calling dxvk61 is deprecated, please use dxvk061 instead" ; w_call dxvk061 ;; - dxvk62) w_warn "Calling dxvk62 is deprecated, please use dxvk062 instead" ; w_call dxvk062 ;; - dxvk63) w_warn "Calling dxvk63 is deprecated, please use dxvk063 instead" ; w_call dxvk063 ;; - dxvk64) w_warn "Calling dxvk64 is deprecated, please use dxvk064 instead" ; w_call dxvk064 ;; - dxvk65) w_warn "Calling dxvk65 is deprecated, please use dxvk065 instead" ; w_call dxvk065 ;; - dxvk70) w_warn "Calling dxvk70 is deprecated, please use dxvk070 instead" ; w_call dxvk070 ;; - dxvk71) w_warn "Calling dxvk71 is deprecated, please use dxvk071 instead" ; w_call dxvk071 ;; - dxvk72) w_warn "Calling dxvk72 is deprecated, please use dxvk072 instead" ; w_call dxvk072 ;; - dxvk80) w_warn "Calling dxvk80 is deprecated, please use dxvk080 instead" ; w_call dxvk080 ;; - dxvk81) w_warn "Calling dxvk81 is deprecated, please use dxvk081 instead" ; w_call dxvk081 ;; - dxvk90) w_warn "Calling dxvk90 is deprecated, please use dxvk090 instead" ; w_call dxvk090 ;; - dxvk91) w_warn "Calling dxvk91 is deprecated, please use dxvk091 instead" ; w_call dxvk091 ;; - dxvk92) w_warn "Calling dxvk92 is deprecated, please use dxvk092 instead" ; w_call dxvk092 ;; - dxvk93) w_warn "Calling dxvk93 is deprecated, please use dxvk093 instead" ; w_call dxvk093 ;; - dxvk94) w_warn "Calling dxvk94 is deprecated, please use dxvk094 instead" ; w_call dxvk094 ;; - dxvk95) w_warn "Calling dxvk95 is deprecated, please use dxvk095 instead" ; w_call dxvk095 ;; - dxvk96) w_warn "Calling dxvk96 is deprecated, please use dxvk096 instead" ; w_call dxvk096 ;; + dxvk054|dxvk54) w_warn "Calling $1 is deprecated, please use dxvk0054 instead" ; w_call dxvk0054 ;; + dxvk060|dxvk60) w_warn "Calling $1 is deprecated, please use dxvk0060 instead" ; w_call dxvk0060 ;; + dxvk061|dxvk61) w_warn "Calling $1 is deprecated, please use dxvk0061 instead" ; w_call dxvk0061 ;; + dxvk062|dxvk62) w_warn "Calling $1 is deprecated, please use dxvk0062 instead" ; w_call dxvk0062 ;; + dxvk063|dxvk63) w_warn "Calling $1 is deprecated, please use dxvk0063 instead" ; w_call dxvk0063 ;; + dxvk064|dxvk64) w_warn "Calling $1 is deprecated, please use dxvk0064 instead" ; w_call dxvk0064 ;; + dxvk065|dxvk65) w_warn "Calling $1 is deprecated, please use dxvk0065 instead" ; w_call dxvk0065 ;; + dxvk070|dxvk70) w_warn "Calling $1 is deprecated, please use dxvk0070 instead" ; w_call dxvk0070 ;; + dxvk071|dxvk71) w_warn "Calling $1 is deprecated, please use dxvk0071 instead" ; w_call dxvk0071 ;; + dxvk072|dxvk72) w_warn "Calling $1 is deprecated, please use dxvk0072 instead" ; w_call dxvk0072 ;; + dxvk080|dxvk80) w_warn "Calling $1 is deprecated, please use dxvk0080 instead" ; w_call dxvk0080 ;; + dxvk081|dxvk81) w_warn "Calling $1 is deprecated, please use dxvk0081 instead" ; w_call dxvk0081 ;; + dxvk090|dxvk90) w_warn "Calling $1 is deprecated, please use dxvk0090 instead" ; w_call dxvk0090 ;; + dxvk091|dxvk91) w_warn "Calling $1 is deprecated, please use dxvk0091 instead" ; w_call dxvk0091 ;; + dxvk092|dxvk92) w_warn "Calling $1 is deprecated, please use dxvk0092 instead" ; w_call dxvk0092 ;; + dxvk093|dxvk93) w_warn "Calling $1 is deprecated, please use dxvk0093 instead" ; w_call dxvk0093 ;; + dxvk094|dxvk94) w_warn "Calling $1 is deprecated, please use dxvk0094 instead" ; w_call dxvk0094 ;; + dxvk095|dxvk95) w_warn "Calling $1 is deprecated, please use dxvk0095 instead" ; w_call dxvk0095 ;; + dxvk096|dxvk96) w_warn "Calling $1 is deprecated, please use dxvk0096 instead" ; w_call dxvk0096 ;; + dxvk100) w_warn "Calling dxvk100 is deprecated, please use dxvk1000 instead" ; w_call dxvk1000 ;; + dxvk101) w_warn "Calling dxvk101 is deprecated, please use dxvk1001 instead" ; w_call dxvk1001 ;; + dxvk102) w_warn "Calling dxvk102 is deprecated, please use dxvk1002 instead" ; w_call dxvk1002 ;; + dxvk103) w_warn "Calling dxvk103 is deprecated, please use dxvk1003 instead" ; w_call dxvk1003 ;; + dxvk111) w_warn "Calling dxvk111 is deprecated, please use dxvk1011 instead" ; w_call dxvk1011 ;; + dxvk120) w_warn "Calling dxvk120 is deprecated, please use dxvk1020 instead" ; w_call dxvk1020 ;; + dxvk121) w_warn "Calling dxvk121 is deprecated, please use dxvk1021 instead" ; w_call dxvk1021 ;; + dxvk122) w_warn "Calling dxvk122 is deprecated, please use dxvk1022 instead" ; w_call dxvk1022 ;; + dxvk123) w_warn "Calling dxvk123 is deprecated, please use dxvk1023 instead" ; w_call dxvk1023 ;; + dxvk130) w_warn "Calling dxvk130 is deprecated, please use dxvk1030 instead" ; w_call dxvk1030 ;; + dxvk131) w_warn "Calling dxvk131 is deprecated, please use dxvk1031 instead" ; w_call dxvk1031 ;; + dxvk132) w_warn "Calling dxvk132 is deprecated, please use dxvk1032 instead" ; w_call dxvk1032 ;; + dxvk133) w_warn "Calling dxvk133 is deprecated, please use dxvk1033 instead" ; w_call dxvk1033 ;; + dxvk134) w_warn "Calling dxvk134 is deprecated, please use dxvk1034 instead" ; w_call dxvk1034 ;; + dxvk140) w_warn "Calling dxvk140 is deprecated, please use dxvk1040 instead" ; w_call dxvk1040 ;; + dxvk141) w_warn "Calling dxvk141 is deprecated, please use dxvk1041 instead" ; w_call dxvk1041 ;; + dxvk142) w_warn "Calling dxvk142 is deprecated, please use dxvk1042 instead" ; w_call dxvk1042 ;; + dxvk143) w_warn "Calling dxvk143 is deprecated, please use dxvk1043 instead" ; w_call dxvk1043 ;; + dxvk144) w_warn "Calling dxvk144 is deprecated, please use dxvk1044 instead" ; w_call dxvk1044 ;; + dxvk145) w_warn "Calling dxvk145 is deprecated, please use dxvk1045 instead" ; w_call dxvk1045 ;; + dxvk146) w_warn "Calling dxvk146 is deprecated, please use dxvk1046 instead" ; w_call dxvk1046 ;; + dxvk150) w_warn "Calling dxvk150 is deprecated, please use dxvk1050 instead" ; w_call dxvk1050 ;; + dxvk151) w_warn "Calling dxvk151 is deprecated, please use dxvk1051 instead" ; w_call dxvk1051 ;; + dxvk152) w_warn "Calling dxvk152 is deprecated, please use dxvk1052 instead" ; w_call dxvk1052 ;; + dxvk153) w_warn "Calling dxvk153 is deprecated, please use dxvk1053 instead" ; w_call dxvk1053 ;; + dxvk154) w_warn "Calling dxvk154 is deprecated, please use dxvk1054 instead" ; w_call dxvk1054 ;; + dxvk155) w_warn "Calling dxvk155 is deprecated, please use dxvk1055 instead" ; w_call dxvk1055 ;; + dxvk160) w_warn "Calling dxvk160 is deprecated, please use dxvk1060 instead" ; w_call dxvk1060 ;; + dxvk161) w_warn "Calling dxvk161 is deprecated, please use dxvk1061 instead" ; w_call dxvk1061 ;; + dxvk170) w_warn "Calling dxvk170 is deprecated, please use dxvk1070 instead" ; w_call dxvk1070 ;; + dxvk171) w_warn "Calling dxvk171 is deprecated, please use dxvk1071 instead" ; w_call dxvk1071 ;; + dxvk172) w_warn "Calling dxvk172 is deprecated, please use dxvk1072 instead" ; w_call dxvk1072 ;; + dxvk173) w_warn "Calling dxvk173 is deprecated, please use dxvk1073 instead" ; w_call dxvk1073 ;; + dxvk180) w_warn "Calling dxvk180 is deprecated, please use dxvk1080 instead" ; w_call dxvk1080 ;; + dxvk181) w_warn "Calling dxvk181 is deprecated, please use dxvk1081 instead" ; w_call dxvk1081 ;; + dxvk190) w_warn "Calling dxvk190 is deprecated, please use dxvk1090 instead" ; w_call dxvk1090 ;; + dxvk191) w_warn "Calling dxvk191 is deprecated, please use dxvk1091 instead" ; w_call dxvk1091 ;; + dxvk192) w_warn "Calling dxvk192 is deprecated, please use dxvk1092 instead" ; w_call dxvk1092 ;; + dxvk193) w_warn "Calling dxvk193 is deprecated, please use dxvk1093 instead" ; w_call dxvk1093 ;; + dxvk194) w_warn "Calling dxvk194 is deprecated, please use dxvk1094 instead" ; w_call dxvk1094 ;; + # art2kmin also comes with fm20.dll fm20) w_warn "Calling fm20 is deprecated, please use controlpad instead" ; w_call controlpad ;; fontsmooth-bgr) w_warn "Calling fontsmooth-bgr is deprecated, please use fontsmooth=bgr instead" ; w_call fontsmooth=bgr ;; @@ -23657,7 +23717,9 @@ if ! test "${WINETRICKS_LIB}"; then # GUI case # No non-option arguments given, so read them from GUI, and loop until user quits - winetricks_detect_gui + if [ ${WINETRICKS_GUI} = "none" ]; then + winetricks_detect_gui + fi winetricks_detect_sudo test -z "${WINETRICKS_ISO_MOUNT}" && winetricks_detect_iso_mount while true; do