diff --git a/wine.spec b/wine.spec index 30e7e04..5bd8585 100644 --- a/wine.spec +++ b/wine.spec @@ -36,7 +36,7 @@ Source3: wine-staging-%{version}.tar.gz # https://github.com/NP-Hardass/wine-d3d9-patches/archive/wine-d3d9-%{version}.tar.gz Source4: wine-d3d9-patches-wine-d3d9-%{version}.tar.gz Source10: wine.rpmlintrc -Source11: http://kegel.com/wine/winetricks +Source11: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks Source12: http://kegel.com/wine/wisotool # (Anssi 05/2008) Adds: diff --git a/winetricks b/winetricks index b739e1d..0e3f833 100644 --- a/winetricks +++ b/winetricks @@ -2,7 +2,7 @@ # Name of this version of winetricks (YYYYMMDD) # (This doesn't change often, use the sha1sum of the file when reporting problems) -WINETRICKS_VERSION=20130707 +WINETRICKS_VERSION=20151227 # This is a utf-8 file # You should see an o with two dots over it here [ö] @@ -23,17 +23,17 @@ WINETRICKS_VERSION=20130707 # Uses the following non-Posix system tools: # - wine is used to execute win32 apps except on cygwin. # - cabextract, unrar, unzip, and 7z are needed by some verbs. -# - axel, wget, or curl is needed for downloading. +# - aria2c, wget, or curl is needed for downloading. # - sha1sum or openssl is needed for verifying downloads. # - zenity is needed by the GUI, though it can limp along somewhat with kdialog. -# - xdg-open (if present) is used to open download pages for the -# user when downloads cannot be fully automated. +# - xdg-open (if present) or open (for Mac OSX) is used to open download pages +# for the user when downloads cannot be fully automated. # - sudo is used to mount .iso images if the user cached them with -k option. # - perl is used to munge steam config files # On ubuntu, the following lines can be used to install all the prereqs: # sudo add-apt-repository ppa:ubuntu-wine/ppa # sudo apt-get update -# sudo apt-get install cabextract p7zip unrar unzip wget wine1.3 zenity +# sudo apt-get install cabextract p7zip unrar unzip wget wine1.7 zenity # # See http://winetricks.org for documentation and tutorials, including # how to contribute changes to winetricks. @@ -41,10 +41,10 @@ WINETRICKS_VERSION=20130707 #-------------------------------------------------------------------- # # Copyright -# Copyright (C) 2007-2013 Dan Kegel -# Copyright (C) 2008-2013 Austin English +# Copyright (C) 2007-2014 Dan Kegel +# Copyright (C) 2008-2015 Austin English # Copyright (C) 2010-2011 Phil Blankenship -# Copyright (C) 2010-2012 Shannon VanWagner +# Copyright (C) 2010-2015 Shannon VanWagner # Copyright (C) 2010 Belhorma Bendebiche # Copyright (C) 2010 Eleazar Galano # Copyright (C) 2010 Travis Athougies @@ -60,6 +60,8 @@ WINETRICKS_VERSION=20130707 # Copyright (C) 2011 Giuseppe Dia # Copyright (C) 2011 Łukasz Wojniłowicz # Copyright (C) 2011 Matthew Bozarth +# Copyright (C) 2013-2014 Andrey Gusev +# Copyright (C) 2013-2015 Hillwood Yang # # License # This program is free software; you can redistribute it and/or @@ -135,11 +137,22 @@ WINETRICKS_VERSION=20130707 # #-------------------------------------------------------------------- -# FIXME: maybe obey XDG_DATA_HOME -W_PREFIXES_ROOT="${WINE_PREFIXES:-$HOME/.local/share/wineprefixes}" +XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}" +XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" -# ftp.microsoft.com resolves to two different IP addresses, one of which is broken -ftp_microsoft_com=64.4.17.176 +W_PREFIXES_ROOT="${WINE_PREFIXES:-$XDG_DATA_HOME/wineprefixes}" + +# For temp files before $WINEPREFIX is available: +if [ -x "`which mktemp 2>/dev/null`" ] +then + W_TMP_EARLY="`mktemp -d "${TMPDIR:-/tmp}/winetricks.XXXXXXXX"`" + W_TMP_EARLY_CLEAN=1 +elif [ -w "$TMPDIR" ] +then + W_TMP_EARLY="$TMPDIR" +else + W_TMP_EARLY="/tmp" +fi #---- Public Functions ---- @@ -279,20 +292,20 @@ w_try() fi } -w_try_regedit() +w_try_7z() { - # on windows, doesn't work without cmd /c - case "$OS" in - "Windows_NT") cmdc="cmd /c";; - *) unset cmdc ;; - esac - - w_try winetricks_early_wine $cmdc regedit $W_UNATTENDED_SLASH_S "$@" -} - -w_try_regsvr() -{ - w_try $WINE regsvr32 $W_UNATTENDED_SLASH_S $@ + # $1 - directory to extract to + # $2 - file to extract + # Not always installed, use Windows 7-zip as a fallback: + if test -x "`which 7z 2>/dev/null`" + then + w_try 7z x "$2" -o"$1" + else + w_warn "Cannot find 7z. Using Windows 7-zip instead. (You can avoid this by installing 7z, e.g. 'sudo apt-get install p7zip-full' or 'sudo yum install p7zip p7zip-plugins')." + WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip + # errors out if there is a space between -o and path + w_try "$WINE" "$W_PROGRAMS_X86_WIN\\7-Zip\\7z.exe" x "`w_pathconv -w $2`" -o"`w_pathconv -w $1`" + fi } w_try_cabextract() @@ -306,37 +319,75 @@ w_try_cabextract() w_try cabextract -q "$@" } -w_try_unrar() +w_try_msiexec64() { - # Not always installed, but shouldn't be fatal unless it's being used - if test ! -x "`which unrar 2>/dev/null`" + if test "$W_ARCH" != "win64" then - w_die "Cannot find unrar. Please install it (e.g. 'sudo apt-get install unrar' or 'sudo yum install unrar')." + w_die "bug: 64-bit msiexec called from a $W_ARCH prefix." fi - w_try unrar x "$@" + w_try "$WINE" start /wait "$W_SYSTEM64_DLLS_WIN32/msiexec.exe" $W_UNATTENDED_SLASH_Q "$@" +} + +w_try_regedit() +{ + # on windows, doesn't work without cmd /c + case "$OS" in + "Windows_NT") cmdc="cmd /c";; + *) unset cmdc ;; + esac + + w_try winetricks_early_wine $cmdc regedit $W_UNATTENDED_SLASH_S "$@" +} + +w_try_regsvr() +{ + w_try "$WINE" regsvr32 $W_UNATTENDED_SLASH_S $@ +} + +w_try_unrar() +{ + # $1 - zipfile to extract (keeping internal paths, in cwd) + + # Not always installed, use Windows 7-zip as a fallback: + if test -x "`which unrar 2>/dev/null`" + then + w_try unrar x "$@" + else + w_warn "Cannot find unrar. Using Windows 7-zip instead. (You can avoid this by installing unrar, e.g. 'sudo apt-get install unrar' or 'sudo yum install unrar')." + WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip + w_try "$WINE" "$W_PROGRAMS_X86_WIN\\7-Zip\\7z.exe" x "`w_pathconv -w $1`" + fi } w_try_unzip() { - # Not always installed, but shouldn't be fatal unless it's being used - if test ! -x "`which unzip 2>/dev/null`" + # $1 - directory to extract to + # $2 - zipfile to extract + # $3 .. $n - files to extract from the archive + + destdir="$1" + zipfile="$2" + shift 2 + + # Not always installed, use Windows 7-zip as a fallback: + if test -x "`which unzip 2>/dev/null`" then - w_die "Cannot find unzip. Please install it (e.g. 'sudo apt-get install unzip' or 'sudo yum install unzip')." + # FreeBSD ships unzip, but it doesn't support self compressed executables + # If it fails ,fall back to 7-zip: + unzip -o -q -d"$destdir" "$zipfile" "$@" + ret=$? + case $ret in + 0) return ;; + 1|*) w_warn "Unzip failed, trying Windows 7-zip instead." ;; + esac + else + w_warn "Cannot find unzip. Using Windows 7-zip instead. (You can avoid this by installing unzip, e.g. 'sudo apt-get install unzip' or 'sudo yum install unzip')." fi - w_try unzip -o -q "$@" -} - -w_try_7z() -{ - # Not always installed, but shouldn't be fatal unless it's being used - if test ! -x "`which 7z 2>/dev/null`" - then - w_die "Cannot find 7z. Please install it (e.g. 'sudo apt-get install p7zip-full' or 'sudo yum install p7zip p7zip-plugins')." - fi - - w_try 7z "$@" + WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip + # errors out if there is a space between -o and path + w_try "$WINE" "$W_PROGRAMS_X86_WIN\\7-Zip\\7z.exe" x "`w_pathconv -w $zipfile`" -o"`w_pathconv -w $destdir`" "$@" } w_read_key() @@ -369,6 +420,15 @@ w_read_key() pl*) _W_keymsg="Proszę podać klucz dla programu '$W_PACKAGE'" _W_nokeymsg="Nie podano klucza" ;; + uk*) _W_keymsg="Будь ласка, введіть ключ для додатка '$W_PACKAGE'" + _W_nokeymsg="Ключ не надано" + ;; + zh_CN*) _W_keymsg="按任意键为 '$W_PACKAGE'" + _W_nokeymsg="No key given" + ;; + zh_TW*|zh_HK*) _W_keymsg="按任意鍵為 '$W_PACKAGE'" + _W_nokeymsg="No key given" + ;; *) _W_keymsg="Please enter the key for app '$W_PACKAGE'" _W_nokeymsg="No key given" ;; @@ -430,18 +490,25 @@ w_expand_env() winetricks_early_wine cmd.exe /c echo "%$1%" } +# get sha1sum string and set $_W_gotsum to it +w_get_sha1sum() +{ + local _W_file="$1" + _W_gotsum=`$WINETRICKS_SHA1SUM < "$_W_file" | sed 's/(stdin)= //;s/ .*//'` +} + # verify an sha1sum w_verify_sha1sum() { _W_vs_wantsum=$1 _W_vs_file=$2 - _W_vs_gotsum=`$WINETRICKS_SHA1SUM < $_W_vs_file | sed 's/ .*//'` - if [ "$_W_vs_gotsum"x != "$_W_vs_wantsum"x ] + w_get_sha1sum "$_W_vs_file" + if [ "$_W_gotsum"x != "$_W_vs_wantsum"x ] then w_die "sha1sum mismatch! Rename $_W_vs_file and try again." fi - unset _W_vs_wantsum _W_vs_file _W_vs_gotsum + unset _W_vs_wantsum _W_vs_file _W_gotsum } # wget outputs progress messages that look like this: @@ -492,6 +559,56 @@ winetricks_wget_progress() esac } +w_dotnet_verify() +{ + case $1 in + dotnet11) version="1.1" ;; + dotnet11sp1) version="1.1 SP1" ;; + dotnet20) version="2.0" ;; + dotnet20sp1) version="2.0 SP1" ;; + dotnet20sp2) version="2.0 SP2" ;; + dotnet30) version="3.0" ;; + dotnet30sp1) version="3.0 SP1" ;; + dotnet35) version="3.5" ;; + dotnet35sp1) version="3.5 SP1" ;; + dotnet40) version="4 Client" ;; + dotnet45) version="4.5" ;; + *) echo error ; exit 1 ;; + esac + w_call dotnet_verifier + # FIXME: The logfile may be useful somewhere (or at least print the location) + w_ahk_do " + SetTitleMatchMode, 2 + ; FIXME; this only works the first time? Check if it's already verified somehow.. + run, netfx_setupverifier.exe /q:a /c:"setupverifier2.exe" + winwait, Verification Utility + ControlClick, Button1 + Control, ChooseString, NET Framework $version, ComboBox1 + ControlClick, Button1 ; Verify + loop, 60 + { + sleep 1000 + process, exist, setupverifier2.exe + dn_pid=%ErrorLevel% + if dn_pid = 0 + { + break + } + ifWinExist, Verification Utility, Product verification failed + { + process, close, setupverifier2.exe + exit 1 + } + ifWinExist, Verification Utility, Product verification succeeded + { + process, close, setupverifier2.exe + break + } + } + " + dn_status=$? +} + # Download a file # Usage: w_download_to packagename url [sha1sum [filename [cookie jar]]] # Caches downloads in winetrickscache/$packagename @@ -544,8 +661,8 @@ w_download_to() fi fi # If checksum matches, declare success and exit loop - gotsum=`$WINETRICKS_SHA1SUM < "$_W_cache/$_W_file" | sed 's/(stdin)= //;s/ .*//'` - if [ "$gotsum"x = "$3"x ] + w_get_sha1sum "$_W_cache/$_W_file" + if [ "$_W_gotsum"x = "$3"x ] then checksum_ok=1 break @@ -581,10 +698,10 @@ w_download_to() *) _W_agent= ;; esac - if [ -x "`which axel 2>/dev/null`" ] + if [ -x "`which aria2c 2>/dev/null`" ] then - # Basic axel support. - axel -o "$_W_file" "$_W_url" + # Basic aria2c support. + aria2c -c -d "$_W_cache" -o "$_W_file" "$_W_url" elif [ -x "`which wget 2>/dev/null`" ] then # Use -nd to insulate ourselves from people who set -x in WGETRC @@ -610,7 +727,7 @@ w_download_to() ${_W_agent:+--user-agent "$_W_agent"} \ "$_W_url" else - w_die "Please install wget (or, if that's not available, curl)" + w_die "Please install wget or aria2c (or, if those aren't available, curl)" fi if test $? != 0 then @@ -621,9 +738,9 @@ w_download_to() # Also affects ttf files on github _W_filetype=`which file 2>/dev/null` case $_W_filetype-$_W_file in - /*-*.exe|/*-*.ttf) + /*-*.exe|/*-*.ttf|/*-*.zip) case `file "$_W_file"` in - *gzip*) mv "$_W_file" "$_W_file.gz"; gunzip < "$_W_file.gz" > "$_W_file";; + *:*gzip*) mv "$_W_file" "$_W_file.gz"; gunzip < "$_W_file.gz" > "$_W_file";; esac esac @@ -642,7 +759,23 @@ w_download_to() fi } -# Open a web browser for the user to the give page +# Open a folder for the user in the specified directory +# Usage: w_open_folder directory +w_open_folder() +{ + for _W_cmd in xdg-open open cygstart true + do + _W_cmdpath=`which $_W_cmd` + if test -n "$_W_cmdpath" + then + break + fi + done + $_W_cmd "$1" & + unset _W_cmd _W_cmdpath +} + +# Open a web browser for the user to the given page # Usage: w_open_webpage url w_open_webpage() { @@ -683,11 +816,11 @@ w_download_torrent() if [ "$2"x != ""x ] # foo.torrent parameter supplied then - w_try $WINE utorrent "/DIRECTORY" "$UT_WINPATH" "$UT_WINPATH\\$2" & + w_try "$WINE" utorrent "/DIRECTORY" "$UT_WINPATH" "$UT_WINPATH\\$2" & else # grab all torrents for torrent in `ls *.torrent` do - w_try $WINE utorrent "/DIRECTORY" "$UT_WINPATH" "$UT_WINPATH\\$torrent" & + w_try "$WINE" utorrent "/DIRECTORY" "$UT_WINPATH" "$UT_WINPATH\\$torrent" & done fi @@ -749,19 +882,17 @@ w_download_manual_to() case $LANG in 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 diesen 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 skrytp.";; + 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.";; + uk*) _W_dlmsg="Будь ласка, звантажте $_W_file з $_W_url, розташуйте в $W_CACHE/$_W_packagename, потім запустіть скрипт знову.";; + zh_CN*) _W_dlmsg="请从 $_W_url 下载 $_W_file,并置放于 $W_CACHE/$_W_packagename, 然后重新运行 winetricks.";; + zh_TW*|zh_HK*) _W_dlmsg="請從 $_W_url 下載 $_W_file,并置放於 $W_CACHE/$_W_packagename, 然后重新執行 winetricks.";; *) _W_dlmsg="Please download $_W_file from $_W_url, place it in $W_CACHE/$_W_packagename, then re-run this script.";; esac if ! test -f "$W_CACHE/$_W_packagename/$_W_file" then mkdir -p "$W_CACHE/$_W_packagename" - case "$OS" in - "Windows_NT") - cygstart "$W_CACHE/$_W_packagename" ;; - *) - xdg-open "$W_CACHE/$_W_packagename" ;; - esac + w_open_folder "$W_CACHE/$_W_packagename" w_open_webpage "$_W_url" sleep 3 # give some time for browser to open w_die "$_W_dlmsg" @@ -781,7 +912,7 @@ w_download_manual() w_steam_safemode() { cat > "$W_TMP/steamconfig.pl" <<"_EOF_" -#!/usr/bin/perl +#!/usr/bin/env perl # Parse steam's localconfig.vcf, add settings to it, and write it out again # The file is a recursive dictionary # @@ -1045,7 +1176,7 @@ fi w_declare_exe "$W_PROGRAMS_X86_WIN\\Steam" "steam.exe -login $W_STEAM_ID $W_STEAM_PASSWORD -applaunch $_W_steamid" myexec="Exec=env WINEPREFIX=\"$WINEPREFIX\" wine cmd /c 'C:\\\\\\\\Run-$W_PACKAGE.bat'" - mymenu="$HOME/.local/share/applications/wine/Programs/Steam/$_W_steamtitle.desktop" + mymenu="$XDG_DATA_HOME/applications/wine/Programs/Steam/$_W_steamtitle.desktop" if test -f "$mymenu" && w_workaround_wine_bug 26487 "Fixing system menu" then sed -i "s,Exec=.*,$myexec," "$mymenu" @@ -1251,7 +1382,7 @@ w_umount() w_try $WINETRICKS_SUDO rm -rf $W_ISO_MOUNT_ROOT ;; esac - $WINE eject ${W_ISO_MOUNT_LETTER}: + "$WINE" eject ${W_ISO_MOUNT_LETTER}: rm -f "$WINEPREFIX"/dosdevices/${W_ISO_MOUNT_LETTER}: rm -f "$WINEPREFIX"/dosdevices/${W_ISO_MOUNT_LETTER}:: fi @@ -1263,16 +1394,16 @@ w_ahk_do() then W_BROWSERAGENT=1 \ w_download_to ahk http://www.autohotkey.com/download/AutoHotkey104805.zip b3981b13fbc45823131f69d125992d6330212f27 - w_try_unzip -d "$W_CACHE/ahk" "$W_CACHE/ahk/AutoHotkey104805.zip" AutoHotkey.exe AU3_Spy.exe + w_try_unzip "$W_CACHE/ahk" "$W_CACHE/ahk/AutoHotkey104805.zip" AutoHotkey.exe AU3_Spy.exe chmod +x "$W_CACHE/ahk/AutoHotkey.exe" fi _W_CR=`printf \\\\r` - cat <<_EOF_ | sed "s/\$/$CR/" > "$W_TMP"/tmp.ahk + cat <<_EOF_ | sed "s/\$/$_W_CR/" > "$W_TMP"/tmp.ahk w_opt_unattended = ${W_OPT_UNATTENDED:-0} $@ _EOF_ - w_try $WINE "$W_CACHE_WIN\\ahk\\AutoHotkey.exe" "$W_TMP_WIN"\\tmp.ahk + w_try "$WINE" "$W_CACHE_WIN\\ahk\\AutoHotkey.exe" "$W_TMP_WIN"\\tmp.ahk unset _W_CR } @@ -1346,7 +1477,7 @@ w_override_no_dlls() { w_skip_windows override && return - $WINE regedit /d 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' + "$WINE" regedit /d 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' } w_override_all_dlls() @@ -1354,93 +1485,201 @@ w_override_all_dlls() # Disable all known native Microsoft DLLs in favor of Wine's builtin ones # Generated with # find ~/wine-git/dlls -maxdepth 1 -type d -print | sed 's,.*/,,' | sort | fmt -50 | sed 's/$/ \\/' + # Last updated: 2015-09-28 w_override_dlls builtin \ acledit aclui activeds actxprxy adsiid advapi32 \ - advpack amstream apphelp appwiz.cpl atl atl80 \ - authz avicap32 avifil32 avifile.dll16 avrt \ - bcrypt browseui cabinet capi2032 cards cfgmgr32 \ - clusapi comcat comctl32 comdlg32 commdlg.dll16 \ - comm.drv16 compobj.dll16 compstui credui crtdll \ - crypt32 cryptdlg cryptdll cryptnet cryptui \ - ctapi32 ctl3d32 ctl3d.dll16 ctl3dv2.dll16 d3d10 \ - d3d10core d3d8 d3d9 d3dcompiler_33 d3dcompiler_34 \ + advpack amstream api-ms-win-core-com-l1-1-0 \ + api-ms-win-core-console-l1-1-0 \ + api-ms-win-core-datetime-l1-1-0 \ + api-ms-win-core-datetime-l1-1-1 \ + api-ms-win-core-debug-l1-1-0 \ + api-ms-win-core-debug-l1-1-1 \ + api-ms-win-core-errorhandling-l1-1-0 \ + api-ms-win-core-errorhandling-l1-1-1 \ + api-ms-win-core-errorhandling-l1-1-2 \ + api-ms-win-core-fibers-l1-1-0 \ + api-ms-win-core-fibers-l1-1-1 \ + api-ms-win-core-file-l1-1-0 \ + api-ms-win-core-file-l1-2-0 \ + api-ms-win-core-file-l2-1-0 \ + api-ms-win-core-file-l2-1-1 \ + api-ms-win-core-handle-l1-1-0 \ + api-ms-win-core-heap-l1-1-0 \ + api-ms-win-core-heap-l1-2-0 \ + api-ms-win-core-heap-obsolete-l1-1-0 \ + api-ms-win-core-interlocked-l1-1-0 \ + api-ms-win-core-interlocked-l1-2-0 \ + api-ms-win-core-io-l1-1-1 \ + api-ms-win-core-kernel32-legacy-l1-1-0 \ + api-ms-win-core-libraryloader-l1-1-0 \ + api-ms-win-core-libraryloader-l1-1-1 \ + api-ms-win-core-localization-l1-2-0 \ + api-ms-win-core-localization-l1-2-1 \ + api-ms-win-core-localization-obsolete-l1-1-0 \ + api-ms-win-core-localregistry-l1-1-0 \ + api-ms-win-core-memory-l1-1-0 \ + api-ms-win-core-memory-l1-1-1 \ + api-ms-win-core-misc-l1-1-0 \ + api-ms-win-core-namedpipe-l1-1-0 \ + api-ms-win-core-namedpipe-l1-2-0 \ + api-ms-win-core-processenvironment-l1-1-0 \ + api-ms-win-core-processenvironment-l1-2-0 \ + api-ms-win-core-processthreads-l1-1-0 \ + api-ms-win-core-processthreads-l1-1-1 \ + api-ms-win-core-processthreads-l1-1-2 \ + api-ms-win-core-profile-l1-1-0 \ + api-ms-win-core-psapi-l1-1-0 \ + api-ms-win-core-registry-l1-1-0 \ + api-ms-win-core-rtlsupport-l1-1-0 \ + api-ms-win-core-rtlsupport-l1-2-0 \ + api-ms-win-core-shlwapi-legacy-l1-1-0 \ + api-ms-win-core-string-l1-1-0 \ + api-ms-win-core-synch-l1-1-0 \ + api-ms-win-core-synch-l1-2-0 \ + api-ms-win-core-sysinfo-l1-1-0 \ + api-ms-win-core-sysinfo-l1-2-0 \ + api-ms-win-core-sysinfo-l1-2-1 \ + api-ms-win-core-threadpool-legacy-l1-1-0 \ + api-ms-win-core-timezone-l1-1-0 \ + api-ms-win-core-url-l1-1-0 \ + api-ms-win-core-util-l1-1-0 \ + api-ms-win-core-winrt-error-l1-1-0 \ + api-ms-win-core-winrt-error-l1-1-1 \ + api-ms-win-core-winrt-l1-1-0 \ + api-ms-win-core-winrt-string-l1-1-0 \ + api-ms-win-core-xstate-l2-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-private-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-time-l1-1-0 \ + api-ms-win-crt-utility-l1-1-0 \ + api-ms-win-downlevel-advapi32-l1-1-0 \ + api-ms-win-downlevel-advapi32-l2-1-0 \ + api-ms-win-downlevel-normaliz-l1-1-0 \ + api-ms-win-downlevel-ole32-l1-1-0 \ + api-ms-win-downlevel-shell32-l1-1-0 \ + api-ms-win-downlevel-shlwapi-l1-1-0 \ + api-ms-win-downlevel-shlwapi-l2-1-0 \ + api-ms-win-downlevel-user32-l1-1-0 \ + api-ms-win-downlevel-version-l1-1-0 \ + api-ms-win-eventing-provider-l1-1-0 \ + api-ms-win-ntuser-dc-access-l1-1-0 \ + api-ms-win-security-base-l1-1-0 \ + api-ms-win-security-base-l1-2-0 \ + api-ms-win-security-sddl-l1-1-0 \ + api-ms-win-service-core-l1-1-1 \ + api-ms-win-service-management-l1-1-0 \ + api-ms-win-service-winsvc-l1-2-0 apphelp \ + appwiz.cpl atl atl100 atl110 atl80 atl90 authz \ + avicap32 avifil32 avifile.dll16 avrt bcrypt \ + browseui cabinet capi2032 cards cfgmgr32 clusapi \ + combase comcat comctl32 comdlg32 commdlg.dll16 \ + comm.drv16 compobj.dll16 compstui comsvcs connect \ + credui crtdll crypt32 cryptdlg cryptdll cryptext \ + cryptnet cryptui ctapi32 ctl3d32 ctl3d.dll16 \ + ctl3dv2.dll16 d2d1 d3d10 d3d10_1 d3d10core \ + d3d11 d3d8 d3d9 d3dcompiler_33 d3dcompiler_34 \ d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \ d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 \ d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 \ - d3dim d3drm d3dx10_33 d3dx10_34 d3dx10_35 \ - d3dx10_36 d3dx10_37 d3dx10_38 d3dx10_39 \ - d3dx10_40 d3dx10_41 d3dx10_42 d3dx10_43 \ - d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 \ - d3dx9_29 d3dx9_30 d3dx9_31 d3dx9_32 d3dx9_33 \ - d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 d3dx9_38 \ - d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43 \ - d3dxof dbgeng dbghelp dciman32 ddeml.dll16 \ - ddraw ddrawex devenum dhcpcsvc dinput dinput8 \ - dispdib.dll16 dispex display.drv16 dlls dmband \ - dmcompos dmime dmloader dmscript dmstyle dmsynth \ - dmusic dmusic32 dnsapi dplay dplayx dpnaddr \ - dpnet dpnhpast dpnlobby dpwsockx drmclien \ - dsound dssenh dswave dwmapi dxdiagn dxerr8 \ - dxerr9 dxgi dxguid explorerframe faultrep \ - fltlib fusion fwpuclnt gameux gdi32 gdi.exe16 \ - gdiplus glu32 gphoto2.ds gpkcsp hal hhctrl.ocx \ - hid hlink hnetcfg httpapi iccvid icmp ieframe \ - ifsmgr.vxd imaadp32.acm imagehlp imm32 imm.dll16 \ - inetcomm inetcpl.cpl inetmib1 infosoft initpki \ - inkobj inseng iphlpapi itircl itss jscript \ - kernel32 keyboard.drv16 krnl386.exe16 ktmw32 \ - loadperf localspl localui lz32 lzexpand.dll16 \ - mapi32 mapistub mciavi32 mcicda mciqtz32 mciseq \ - mciwave mgmtapi midimap mlang mmcndmgr mmdevapi \ + d3dcompiler_46 d3dcompiler_47 d3dim d3drm \ + d3dx10_33 d3dx10_34 d3dx10_35 d3dx10_36 d3dx10_37 \ + d3dx10_38 d3dx10_39 d3dx10_40 d3dx10_41 d3dx10_42 \ + d3dx10_43 d3dx11_42 d3dx11_43 d3dx9_24 d3dx9_25 \ + d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 \ + d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 \ + d3dx9_36 d3dx9_37 d3dx9_38 d3dx9_39 d3dx9_40 \ + d3dx9_41 d3dx9_42 d3dx9_43 d3dxof davclnt \ + dbgeng dbghelp dciman32 ddeml.dll16 ddraw \ + ddrawex devenum dhcpcsvc difxapi dinput \ + dinput8 dispdib.dll16 dispex display.drv16 \ + dlls dmband dmcompos dmime dmloader dmscript \ + dmstyle dmsynth dmusic dmusic32 dnsapi dplay \ + dplayx dpnaddr dpnet dpnhpast dpnlobby dpvoice \ + dpwsockx drmclien dsound dssenh dswave dwmapi \ + dwrite dxdiagn dxerr8 dxerr9 dxgi dxguid dxva2 \ + evr explorerframe ext-ms-win-gdi-devcaps-l1-1-0 \ + faultrep fltlib fntcache fontsub fusion fwpuclnt \ + gameux gdi32 gdi.exe16 gdiplus glu32 gphoto2.ds \ + gpkcsp hal hhctrl.ocx hid hidclass.sys hlink \ + hnetcfg httpapi iccvid icmp ieframe ifsmgr.vxd \ + imaadp32.acm imagehlp imm32 imm.dll16 inetcomm \ + inetcpl.cpl inetmib1 infosoft initpki inkobj \ + inseng iphlpapi itircl itss joy.cpl jscript \ + jsproxy kernel32 keyboard.drv16 krnl386.exe16 \ + ksuser ktmw32 loadperf localspl localui lz32 \ + lzexpand.dll16 mapi32 mapistub mciavi32 mcicda \ + mciqtz32 mciseq mciwave mf mfplat mfreadwrite \ + mgmtapi midimap mlang mmcndmgr mmdevapi \ mmdevldr.vxd mmsystem.dll16 monodebg.vxd \ mountmgr.sys mouse.drv16 mpr mprapi msacm32 \ - msacm32.drv msacm.dll16 msadp32.acm mscat32 mscms \ - mscoree msctf msdaps msdmo msftedit msg711.acm \ - msgsm32.acm mshtml mshtml.tlb msi msident msimg32 \ - msimsg msimtf msisip msisys.ocx msnet32 mspatcha \ - msrle32 mssign32 mssip32 mstask msvcirt msvcm80 \ - msvcm90 msvcp100 msvcp60 msvcp70 msvcp71 msvcp80 \ - msvcp90 msvcr100 msvcr70 msvcr71 msvcr80 msvcr90 \ - msvcrt msvcrt20 msvcrt40 msvcrtd msvfw32 msvidc32 \ - msvideo.dll16 mswsock msxml msxml2 msxml3 msxml4 \ - msxml6 nddeapi netapi32 newdev normaliz npmshtml \ - ntdll ntdsapi ntoskrnl.exe ntprint objsel \ - odbc32 odbccp32 ole2conv.dll16 ole2disp.dll16 \ - ole2.dll16 ole2nls.dll16 ole2prox.dll16 \ - ole2thk.dll16 ole32 oleacc oleaut32 olecli32 \ - olecli.dll16 oledb32 oledlg olepro32 olesvr32 \ - olesvr.dll16 olethk32 openal32 opencl opengl32 \ - pdh photometadatahandler pidgen powrprof printui \ - propsys psapi pstorec qcap qedit qmgr qmgrprxy \ - quartz query rasapi16.dll16 rasapi32 rasdlg \ - regapi resutils riched20 riched32 rpcrt4 rsabase \ - rsaenh rstrtmgr rtutils samlib sane.ds scarddlg \ - sccbase schannel scrrun secur32 security sensapi \ - serialui setupapi setupx.dll16 sfc sfc_os shdoclc \ - shdocvw shell32 shell.dll16 shfolder shlwapi \ - slbcsp slc snmpapi softpub sound.drv16 spoolss \ - stdole2.tlb stdole32.tlb sti storage.dll16 \ - stress.dll16 strmbase strmiids svrapi sxs \ - system.drv16 t2embed tapi32 toolhelp.dll16 \ - traffic twain_32 twain.dll16 typelib.dll16 \ - unicows updspapi url urlmon usbd.sys user32 \ - userenv user.exe16 usp10 uuid uxtheme vbscript \ - vcomp vcomp100 vdhcp.vxd vdmdbg ver.dll16 \ - version vmm.vxd vnbt.vxd vnetbios.vxd vtdapi.vxd \ - vwin32.vxd w32skrnl w32sys.dll16 wbemprox wer \ - wevtapi wiaservc win32s16.dll16 win87em.dll16 \ - winaspi.dll16 windebug.dll16 windowscodecs \ - winealsa.drv winecoreaudio.drv winecrt0 \ - wined3d winegstreamer winejoystick.drv winemapi \ - winemp3.acm wineoss.drv wineps16.drv16 wineps.drv \ - wineqtdecoder winequartz.drv winex11.drv wing32 \ + msacm32.drv msacm.dll16 msadp32.acm msasn1 \ + mscat32 mscms mscoree msctf msctfp msdaps \ + msdmo msftedit msg711.acm msgsm32.acm mshtml \ + mshtml.tlb msi msident msimg32 msimsg msimtf \ + msisip msisys.ocx msls31 msnet32 mspatcha msrle32 \ + msscript.ocx mssign32 mssip32 mstask msvcirt \ + msvcm80 msvcm90 msvcp100 msvcp110 msvcp120 \ + msvcp120_app msvcp60 msvcp70 msvcp71 msvcp80 \ + msvcp90 msvcr100 msvcr110 msvcr120 msvcr120_app \ + msvcr70 msvcr71 msvcr80 msvcr90 msvcrt msvcrt20 \ + msvcrt40 msvcrtd msvfw32 msvidc32 msvideo.dll16 \ + mswsock msxml msxml2 msxml3 msxml4 msxml6 \ + nddeapi ndis.sys netapi32 netcfgx netprofm \ + newdev normaliz npmshtml npptools ntdll ntdsapi \ + ntoskrnl.exe ntprint objsel odbc32 odbccp32 \ + odbccu32 ole2conv.dll16 ole2disp.dll16 ole2.dll16 \ + ole2nls.dll16 ole2prox.dll16 ole2thk.dll16 \ + ole32 oleacc oleaut32 olecli32 olecli.dll16 \ + oledb32 oledlg olepro32 olesvr32 olesvr.dll16 \ + olethk32 openal32 opencl opengl32 packager pdh \ + photometadatahandler pidgen powrprof printui \ + prntvpt propsys psapi pstorec qcap qedit qmgr \ + qmgrprxy quartz query rasapi16.dll16 rasapi32 \ + rasdlg regapi resutils riched20 riched32 \ + rpcrt4 rsabase rsaenh rstrtmgr rtutils \ + samlib sane.ds scarddlg sccbase schannel \ + schedsvc scrrun scsiport.sys secur32 security \ + sensapi serialui setupapi setupx.dll16 sfc \ + sfc_os shdoclc shdocvw shell32 shell.dll16 \ + shfolder shlwapi slbcsp slc snmpapi softpub \ + sound.drv16 spoolss stdole2.tlb stdole32.tlb \ + sti storage.dll16 stress.dll16 strmbase strmiids \ + svrapi sxs system.drv16 t2embed tapi32 taskschd \ + toolhelp.dll16 traffic twain_32 twain.dll16 \ + typelib.dll16 ucrtbase unicows updspapi url \ + urlmon usbd.sys user32 userenv user.exe16 usp10 \ + uuid uxtheme vbscript vcomp vcomp100 vcomp110 \ + vcomp90 vdhcp.vxd vdmdbg ver.dll16 version \ + vmm.vxd vnbt.vxd vnetbios.vxd vssapi vtdapi.vxd \ + vwin32.vxd w32skrnl w32sys.dll16 wbemdisp \ + wbemprox webservices wer wevtapi wiaservc \ + win32s16.dll16 win87em.dll16 winaspi.dll16 \ + windebug.dll16 windowscodecs windowscodecsext \ + winealsa.drv winecoreaudio.drv winecrt0 wined3d \ + winegstreamer winejoystick.drv winemac.drv \ + winemapi winemp3.acm wineoss.drv wineps16.drv16 \ + wineps.drv wineqtdecoder winex11.drv wing32 \ wing.dll16 winhttp wininet winmm winnls32 \ winnls.dll16 winscard winsock.dll16 winspool.drv \ winsta wintab32 wintab.dll16 wintrust wlanapi \ - wldap32 wmi wmiutils wmvcore wnaspi32 wow32 \ - ws2_32 wshom.ocx wsnmp32 wsock32 wtsapi32 wuapi \ - wuaueng xapofx1_1 xinput1_1 xinput1_2 xinput1_3 \ - xinput9_1_0 xmllite xolehlp xpsprint \ + wldap32 wmi wmiutils wmp wmvcore wnaspi32 wow32 \ + wpcap ws2_32 wshom.ocx wsnmp32 wsock32 wtsapi32 \ + wuapi wuaueng x3daudio1_1 x3daudio1_2 x3daudio1_3 \ + x3daudio1_4 x3daudio1_5 x3daudio1_6 x3daudio1_7 \ + xapofx1_1 xapofx1_3 xapofx1_4 xapofx1_5 xaudio2_7 \ + xaudio2_8 xinput1_1 xinput1_2 xinput1_3 xinput1_4 \ + xinput9_1_0 xmllite xolehlp xpsprint xpssvcs \ # blank line so you don't have to remove the extra trailing \ } @@ -1506,16 +1745,16 @@ w_set_winver() # First, delete any lingering version info, otherwise it may conflict: ( - $WINE reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion" /v SubVersionNumber /f || true - $WINE reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion" /v VersionNumber /f || true - $WINE reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CSDVersion /f || true - $WINE reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CurrentBuildNumber /f || true - $WINE reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion /f || true - $WINE reg delete "HKLM\System\CurrentControlSet\Control\ProductOptions" /v ProductType /f || true - $WINE reg delete "HKLM\System\CurrentControlSet\Control\ServiceCurrent" /v OS /f || true - $WINE reg delete "HKLM\System\CurrentControlSet\Control\Windows" /v CSDVersion /f || true - $WINE reg delete "HKCU\Software\Wine" /v Version /f || true - $WINE reg delete "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /f || true + "$WINE" reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion" /v SubVersionNumber /f || true + "$WINE" reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion" /v VersionNumber /f || true + "$WINE" reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CSDVersion /f || true + "$WINE" reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CurrentBuildNumber /f || true + "$WINE" reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion /f || true + "$WINE" reg delete "HKLM\System\CurrentControlSet\Control\ProductOptions" /v ProductType /f || true + "$WINE" reg delete "HKLM\System\CurrentControlSet\Control\ServiceCurrent" /v OS /f || true + "$WINE" reg delete "HKLM\System\CurrentControlSet\Control\Windows" /v CSDVersion /f || true + "$WINE" reg delete "HKCU\Software\Wine" /v Version /f || true + "$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /f || true ) > /dev/null 2>&1 case $1 in @@ -1601,18 +1840,26 @@ _EOF_ currentversion="5.1" csdversion_hex=dword:00000300 ;; + win2k3) + csdversion="Service Pack 2" + currentbuildnumber="3790" + currentversion="5.2" + csdversion_hex=dword:00000200 + "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "ServerNT" /f + ;; vista) csdversion="Service Pack 2" currentbuildnumber="6002" currentversion="6.0" csdversion_hex=dword:00000200 + "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f ;; win7) csdversion="Service Pack 1" currentbuildnumber="7601" currentversion="6.1" csdversion_hex=dword:00000100 - $WINE reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f + "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f ;; *) w_die "Invalid Windows version given." @@ -1681,6 +1928,8 @@ w_wine_version() 1.5.*) _W_minor=5; _W_micro=`echo $2 | sed 's/.*\.//'`;; 1.6|1.6-rc*) _W_minor=6; _W_micro=0;; 1.6.*) _W_minor=6; _W_micro=`echo $2 | sed 's/.*\.//'`;; + 1.7.*) _W_minor=7; _W_micro=`echo $2 | sed 's/.*\.//'`;; + 1.8.*) _W_minor=8; _W_micro=`echo $2 | sed 's/.*\.//'`;; *) w_die "bug: unrecognized version $2";; esac @@ -1777,6 +2026,9 @@ 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" ;; + uk*) w_warn "Обхід помилки ${1} $_W_msg" ;; + zh_CN*) w_warn "绕过 wine bug ${1} $_W_msg" ;; + zh_TW*|zh_HK*) w_warn "繞過 wine bug ${1} $_W_msg" ;; *) w_warn "Working around wine bug ${1} $_W_msg" ;; esac winetricks_stats_log_command w_workaround_wine_bug-$1 @@ -1794,6 +2046,11 @@ w_workaround_wine_bug() w_metadata() { + case $WINETRICKS_OPT_VERBOSE in + 2) set -x ;; + *) set +x ;; + esac + if test "$installed_exe1" || test "$installed_file1" || test "$publisher" || test "$year" then w_die "bug: stray metadata tags set: somebody forgot a backslash in a w_metadata somewhere. Run with sh -x to see where." @@ -1845,6 +2102,12 @@ w_metadata() ;; esac unset _W_md_cmd + + # Restore verbosity: + case $WINETRICKS_OPT_VERBOSE in + 1|2) set -x ;; + *) set +x ;; + esac } # Function for verbs to register their main executable [or, if name is given, @@ -1869,6 +2132,19 @@ __EOF__ unset _W_dir _W_exe _W_name } +# Checks that a conflicting verb is not already installed in the prefix +# Usage: w_conflicts verb_to_install conflicts +w_conflicts() +{ + for x in $2 + do + if grep -qw "$x" "$WINEPREFIX/winetricks.log" + then + w_die "error: $1 conflicts with $x, which is already installed." + fi + done +} + # Call a verb, don't let it affect environment # Hope that subshell passes through exit status # Usage: w_do_call foo [bar] (calls load_foo bar) @@ -1877,6 +2153,16 @@ __EOF__ w_do_call() { ( + # Hack.. + if test $cmd = vd + then + load_vd $arg + _W_status=$? + test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP" + mkdir -p "$W_TMP" + return $_W_status + fi + case $1 in *=*) arg=`echo $1 | sed 's/.*=//'`; cmd=`echo $1 | sed 's/=.*//'`;; *) cmd=$1; arg=$2 ;; @@ -1892,7 +2178,7 @@ w_do_call() mkdir -p "$W_TMP" # Unset all known used metadata values, in case this is a nested call - unset installed_file1 installed_exe1 + unset conflicts installed_file1 installed_exe1 if winetricks_metadata_exists $1 then @@ -1906,6 +2192,7 @@ w_do_call() w_override_dlls $cmd $arg _W_status=$? test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP" + mkdir -p "$W_TMP" return $_W_status else w_die "No such verb $1" @@ -1939,10 +2226,19 @@ w_do_call() return 0 fi + # Don't install if a conflicting verb is already installed: + if test "$WINETRICKS_FORCE" != 1 && test "$conflicts" && test -f "$WINEPREFIX/winetricks.log" + then + for x in $conflicts + do + w_conflicts $1 $x + done + fi + # We'd like to get rid of W_PACKAGE, but for now, just set it as late as possible. W_PACKAGE=$1 - winetricks_stats_log_command $* w_try load_$cmd $arg + winetricks_stats_log_command $* # User-specific postinstall hook. # Source it so the script can call w_download() if needed. @@ -1953,9 +2249,6 @@ w_do_call() . "$postfile" fi - # Clean up after this verb - test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP" - # Verify install if test "$installed_exe1" || test "$installed_file1" then @@ -1964,6 +2257,17 @@ w_do_call() w_die "$1 install completed, but installed file $_W_file_unix not found" fi fi + + # If the user specified --verify, also run gui tests: + if test "$WINETRICKS_VERIFY" = 1 && type verify_$cmd 2> /dev/null + then + w_try verify_$cmd + fi + + # Clean up after this verb + test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP" + mkdir -p "$W_TMP" + # Calling subshell must explicitly propagate error code with exit $? ) || exit $? } @@ -1993,7 +2297,7 @@ REGEDIT4 _EOF_ # too verbose w_try_regedit "$W_TMP_WIN"\\_register-font.reg - cp "$W_TMP"/*.reg /tmp/_reg$$.reg + cp "$W_TMP"/*.reg "$W_TMP_EARLY"/_reg$$.reg # Wine also updates the win9x fonts key, so let's do that, too cat > "$W_TMP"/_register-font.reg <<_EOF_ @@ -2003,7 +2307,7 @@ REGEDIT4 "$font"="$file" _EOF_ w_try_regedit "$W_TMP_WIN"\\_register-font.reg - cp "$W_TMP"/*.reg /tmp/_reg$$-2.reg + cp "$W_TMP"/*.reg "$W_TMP_EARLY"/_reg$$-2.reg } w_register_font_replacement() @@ -2043,8 +2347,26 @@ _EOF_ #---- Private Functions ---- +winetricks_get_sha1sum_prog() { + # Mac folks tend to not have sha1sum, but we can make do with openssl + if [ -x "`which sha1sum 2>/dev/null`" ] + then + WINETRICKS_SHA1SUM="sha1sum" + elif [ -x "`which openssl 2>/dev/null`" ] + then + WINETRICKS_SHA1SUM="openssl dgst -sha1" + else + w_die "No sha1sum utility available." + fi +} + winetricks_print_version() { - echo "$WINETRICKS_VERSION" + # normally done by winetricks_init, but we don't want to set up the WINEPREFIX + # just to get the winetricks version: + winetricks_get_sha1sum_prog + + w_get_sha1sum $0 + echo "$WINETRICKS_VERSION - sha1sum: $_W_gotsum" } # Run a small wine command for internal use @@ -2060,7 +2382,7 @@ winetricks_early_wine() # gecko (winezeug bug 223). # The tr removes carriage returns so expanded variables don't have crud on the end # The grep works around using new wineprefixes with old wine - WINEDEBUG=-all $WINE "$@" 2>/dev/null | ( sed 's/.*1h.=//' | tr -d '\r' | grep -v "Module not found" || true) + WINEDEBUG=-all "$WINE" "$@" 2> "$W_TMP_EARLY"/early_wine.err.txt | ( sed 's/.*1h.=//' | tr -d '\r' | grep -v "Module not found" || true) } winetricks_detect_gui() @@ -2123,6 +2445,42 @@ winetricks_get_prefix_var() winetricks_prefixmenu() { case $LANG in + 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_unattended0="Вимкнути автоматичну установку" + _W_msg_unattended1="Включити автоматичну установку" + _W_msg_showbroken0="Сховати нестабільні додатки (наприклад з проблемами з DRM)" + _W_msg_showbroken1="Показати нестабільні додатки (наприклад з проблемами з DRM)" + _W_msg_help="Переглянути довідку" + ;; + zh_CN*) _W_msg_title="Windows 应用安装向导 - 选择一个 wine 容器" + _W_msg_body='君欲何为?' + _W_msg_apps='安装一个 windows 应用' + _W_msg_games='安装一个游戏' + _W_msg_benchmarks='安装一个基准测试软件' + _W_msg_default="选择默认的 wine 容器" + _W_msg_unattended0="禁用静默安装" + _W_msg_unattended1="启用静默安装" + _W_msg_showbroken0="隐藏有问题的程序 (例如那些有数字版权问题)" + _W_msg_showbroken1="有问题的程序 (例如那些有数字版权问题)" + _W_msg_help="查看帮助" + ;; + zh_TW*|zh_HK*) _W_msg_title="Windows 應用安裝向導 - 選取一個 wine 容器" + _W_msg_body='君欲何為?' + _W_msg_apps='安裝一個 windows 應用' + _W_msg_games='安裝一個游戲' + _W_msg_benchmarks='安裝一個基准測試軟體' + _W_msg_default="選取預設的 wine 容器" + _W_msg_unattended0="禁用靜默安裝" + _W_msg_unattended1="啟用靜默安裝" + _W_msg_showbroken0="隱藏有問題的程式 (例如那些有數字版權問題)" + _W_msg_showbroken1="有問題的程式 (例如那些有數字版權問題)" + _W_msg_help="檢視輔助說明" + ;; *) _W_msg_title="Winetricks - choose a wineprefix" _W_msg_body='What do you want to do?' _W_msg_apps='Install an app' @@ -2178,7 +2536,11 @@ winetricks_prefixmenu() else _W_msg_name="$p" fi - printf %s " FALSE prefix='$p' 'Select $_W_msg_name' " + case $LANG in + zh_CN*) printf %s " FALSE prefix='$p' '选择管理 $_W_msg_name' " ;; + zh_TW*|zh_HK*) printf %s " FALSE prefix='$p' '選擇管理 $_W_msg_name' " ;; + *) printf %s " FALSE prefix='$p' 'Select $_W_msg_name' " ;; + esac done >> "$WINETRICKS_WORKDIR"/zenity.sh fi printf %s " FALSE $_W_cmd_unattended '$_W_msg_unattended'" >> "$WINETRICKS_WORKDIR"/zenity.sh @@ -2233,6 +2595,7 @@ winetricks_mainmenu() _W_msg_winecfg='Run winecfg' _W_msg_regedit='Run regedit' _W_msg_taskmgr='Run taskmgr' + _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" @@ -2245,6 +2608,7 @@ winetricks_mainmenu() _W_msg_winecfg='Run winecfg' _W_msg_regedit='Run regedit' _W_msg_taskmgr='Run taskmgr' + _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" @@ -2257,10 +2621,50 @@ winetricks_mainmenu() _W_msg_winecfg='Uruchom winecfg' _W_msg_regedit='Uruchom regedit' _W_msg_taskmgr='Uruchom taskmgr' + _W_msg_uninstaller='Run uninstaller' _W_msg_shell='Uruchom powłokę wiersza poleceń (dla debugowania)' _W_msg_folder='Przeglądaj pliki' _W_msg_annihilate="Usuń WSZYSTKIE DANE I APLIKACJE WEWNĄTRZ TEGO WINEPREFIXA" ;; + 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_uninstaller='Run uninstaller' + _W_msg_shell='Запуск командної оболонки (для налагодження)' + _W_msg_folder='Перегляд файлів' + _W_msg_annihilate="Видалити УСІ ДАНІ ТА ПРОГРАМИ З ЦЬОГО WINEPREFIX" + ;; + zh_CN*) _W_msg_title="Windows 应用安装向导 - 当前容器路径是 \"$WINEPREFIX\"" + _W_msg_body='管理当前容器' + _W_msg_dlls="安装 Windows DLL 或组件" + _W_msg_fonts='安装字体' + _W_msg_settings='修改设置' + _W_msg_winecfg='运行 winecfg' + _W_msg_regedit='运行注册表' + _W_msg_taskmgr='运行任务管理器' + _W_msg_uninstaller='Run uninstaller' + _W_msg_shell='运行命令提示窗口 (作为调试)' + _W_msg_folder='浏览容器中的文件' + _W_msg_annihilate="删除当前容器所有相关文件,包括启动器,完全卸载" + ;; + zh_TW*|zh_HK*) _W_msg_title="Windows 應用裝載向導 - 目前容器路徑是 \"$WINEPREFIX\"" + _W_msg_body='管理目前容器' + _W_msg_dlls="裝載 Windows DLL 或套件" + _W_msg_fonts='裝載字型' + _W_msg_settings='修改設定' + _W_msg_winecfg='執行 winecfg' + _W_msg_regedit='執行註冊表' + _W_msg_taskmgr='執行工作管理者' + _W_msg_uninstaller='Run 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" @@ -2269,6 +2673,7 @@ winetricks_mainmenu() _W_msg_winecfg='Run winecfg' _W_msg_regedit='Run regedit' _W_msg_taskmgr='Run taskmgr' + _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" @@ -2289,15 +2694,16 @@ winetricks_mainmenu() --height $WINETRICKS_MENU_HEIGHT \ --width $WINETRICKS_MENU_WIDTH \ --hide-column 2 \ - FALSE dlls '$_W_msg_dlls' \ - FALSE fonts '$_W_msg_fonts' \ - FALSE settings '$_W_msg_settings' \ - FALSE winecfg '$_W_msg_winecfg' \ - FALSE regedit '$_W_msg_regedit' \ - FALSE taskmgr '$_W_msg_taskmgr' \ - FALSE shell '$_W_msg_shell' \ - FALSE folder '$_W_msg_folder' \ - FALSE annihilate '$_W_msg_annihilate' \ + FALSE dlls '$_W_msg_dlls' \ + FALSE fonts '$_W_msg_fonts' \ + FALSE settings '$_W_msg_settings' \ + FALSE winecfg '$_W_msg_winecfg' \ + FALSE regedit '$_W_msg_regedit' \ + FALSE taskmgr '$_W_msg_taskmgr' \ + FALSE uninstaller '$_W_msg_uninstaller' \ + 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 '|' ' ' @@ -2309,15 +2715,16 @@ winetricks_mainmenu() --separate-output \ --radiolist \ "$_W_msg_body"\ - dlls "$_W_msg_dlls" off \ - fonts "$_W_msg_fonts" off \ - settings "$_W_msg_settings" off \ - winecfg "$_W_msg_winecfg" off \ - regedit "$_W_msg_regedit" off \ - taskmgr "$_W_msg_taskmgr" off \ - shell "$_W_msg_shell" off \ - folder "$_W_msg_folder" off \ - annihilate "$_W_msg_annihilate" off \ + dlls "$_W_msg_dlls" off \ + fonts "$_W_msg_fonts" off \ + settings "$_W_msg_settings" off \ + winecfg "$_W_msg_winecfg" off \ + regedit "$_W_msg_regedit" off \ + taskmgr "$_W_msg_taskmgr" off \ + uninstaller "$_W_msg_uninstaller" off \ + shell "$_W_msg_shell" off \ + folder "$_W_msg_folder" off \ + annihilate "$_W_msg_annihilate" off \ $_W_cmd_unattended "$_W_msg_unattended" off \ ;; @@ -2327,9 +2734,28 @@ winetricks_mainmenu() winetricks_settings_menu() { + # FIXME: these translations should really be centralized/reused: case $LANG in + da*) _W_msg_title='Vælg en pakke' + _W_msg_body='Which settings would you like to change?' + ;; + de*) _W_msg_title='Pakete auswählen' + _W_msg_body='Which settings would you like to change?' + ;; + pl*) _W_msg_title="Winetricks - obecny prefiks to \"$WINEPREFIX\"" + _W_msg_body='Which settings would you like to change?' + ;; + uk*) _W_msg_title="Winetricks - поточний prefix \"$WINEPREFIX\"" + _W_msg_body='Які налаштування Ви хочете змінити?' + ;; + zh_CN*) _W_msg_title="Windows 应用安装向导 - 当前容器路径是 \"$WINEPREFIX\"" + _W_msg_body='君欲更改哪项设置?' + ;; + zh_TW*|zh_HK*) _W_msg_title="Windows 應用裝載向導 - 目前容器路徑是 \"$WINEPREFIX\"" + _W_msg_body='君欲變更哪項設定?' + ;; *) _W_msg_title="Winetricks - current prefix is \"$WINEPREFIX\"" - _W_msg_body='Which setting(s) would you like to change?' + _W_msg_body='Which settings would you like to change?' ;; esac @@ -2372,6 +2798,42 @@ winetricks_settings_menu() --width $WINETRICKS_MENU_WIDTH \ " ;; + uk*) printf %s "zenity \ + --title '$_W_msg_title' \ + --text '$_W_msg_body' \ + --list \ + --checklist \ + --column '' \ + --column Установка \ + --column Назва \ + --height $WINETRICKS_MENU_HEIGHT \ + --width $WINETRICKS_MENU_WIDTH \ + " + ;; + zh_CN*) printf %s "zenity \ + --title '$_W_msg_title' \ + --text '$_W_msg_body' \ + --list \ + --checklist \ + --column '' \ + --column 设置 \ + --column 标题 \ + --height $WINETRICKS_MENU_HEIGHT \ + --width $WINETRICKS_MENU_WIDTH \ + " + ;; + zh_TW*|zh_HK*) printf %s "zenity \ + --title '$_W_msg_title' \ + --text '$_W_msg_body' \ + --list \ + --checklist \ + --column '' \ + --column 設定 \ + --column 標題 \ + --height $WINETRICKS_MENU_HEIGHT \ + --width $WINETRICKS_MENU_WIDTH \ + " + ;; *) printf %s "zenity \ --title '$_W_msg_title' \ --text '$_W_msg_body' \ @@ -2393,6 +2855,14 @@ winetricks_settings_menu() title='?' author='?' . "$metadatafile" + # Begin 'title' strings localization code + case $LANG in + uk*) case "$title_uk" in + "") ;; + *) title="$title_uk";; + esac + esac + # End of code printf "%s %s %s %s" " " FALSE \ $code \ "\"$title\"" @@ -2430,6 +2900,18 @@ winetricks_showmenu() _W_msg_body='Które paczki chesz zainstalować?' _W_cached="zarchiwizowane" ;; + uk*) _W_msg_title="Winetricks - поточний prefix \"$WINEPREFIX\"" + _W_msg_body='Які пакунки Ви хочете встановити?' + _W_cached="кешовано" + ;; + zh_CN*) _W_msg_title="Windows 应用安装向导 - 当前容器路径是 \"$WINEPREFIX\"" + _W_msg_body='君欲安装何种应用?' + _W_cached="已缓存" + ;; + zh_TW*|zh_HK*) _W_msg_title="Windows 應用裝載向導 - 目前容器路徑是 \"$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" @@ -2494,6 +2976,60 @@ winetricks_showmenu() --width $WINETRICKS_MENU_WIDTH \ " ;; + uk*) printf %s "zenity \ + --title '$_W_msg_title' \ + --text '$_W_msg_body' \ + --list \ + --checklist \ + --column '' \ + --column Пакунок \ + --column Назва \ + --column Видавець \ + --column Рік \ + --column Медіа \ + --column Статус \ + --column 'Розмір (МБ)' \ + --column 'Час (сек)' \ + --height $WINETRICKS_MENU_HEIGHT \ + --width $WINETRICKS_MENU_WIDTH \ + " + ;; + zh_CN*) printf %s "zenity \ + --title '$_W_msg_title' \ + --text '$_W_msg_body' \ + --list \ + --checklist \ + --column '' \ + --column 包名 \ + --column 软件名 \ + --column 发行商 \ + --column 发行年 \ + --column 媒介 \ + --column 状态 \ + --column '文件大小 (MB)' \ + --column '时间 (秒)' \ + --height $WINETRICKS_MENU_HEIGHT \ + --width $WINETRICKS_MENU_WIDTH \ + " + ;; + zh_TW*|zh_HK*) printf %s "zenity \ + --title '$_W_msg_title' \ + --text '$_W_msg_body' \ + --list \ + --checklist \ + --column '' \ + --column 包名 \ + --column 軟體名 \ + --column 發行商 \ + --column 發行年 \ + --column 媒介 \ + --column 狀態 \ + --column '檔案大小 (MB)' \ + --column '時間 (秒)' \ + --height $WINETRICKS_MENU_HEIGHT \ + --width $WINETRICKS_MENU_WIDTH \ + " + ;; *) printf %s "zenity \ --title '$_W_msg_title' \ --text '$_W_msg_body' \ @@ -2706,7 +3242,7 @@ winetricks_list_installed() # Jump through a couple hoops to evaluate the verbs in alphabetical order # Assume that no filename contains '|' cd "$WINETRICKS_METADATA" - for _W_metadatafile in `ls */*.vars | sed 's,^\(.*\)/,\1|,' | sort -t\| -k +2 | tr '|' /` + for _W_metadatafile in `ls */*.vars | sed 's,^\(.*\)/,\1|,' | sort -t\| -k 2 | tr '|' /` do # Use a subshell to avoid putting metadata in global space # If this is too slow, we can unset known metadata by hand @@ -2746,6 +3282,9 @@ 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" ;; + uk*) _W_cached="кешовано" ; _W_download="завантажуване" ;; + zh_CN*) _W_cached="已缓存" ; _W_download="可下载" ;; + zh_TW*|zh_HK*) _W_cached="已緩存" ; _W_download="可下載" ;; *) _W_cached="cached" ; _W_download="downloadable" ;; esac @@ -2982,6 +3521,9 @@ 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 "Włożono zły dysk [$_W_volname]. Proszę włożyć dysk [$_W_expected_volname]" ;; + uk*) w_warn "Неправильний диск [$_W_volname]. Будь ласка, вставте диск [$_W_expected_volname]" ;; + zh_CN*) w_warn " [$_W_volname] 光盘插入错误,请插入光盘 [$_W_expected_volname]" ;; + zh_TW*|zh_HK*) w_warn " [$_W_volname] 光碟插入錯誤,請插入光碟 [$_W_expected_volname]" ;; *) w_warn "Wrong disc [$_W_volname] inserted. Please insert disc [$_W_expected_volname]" ;; esac @@ -3158,7 +3700,7 @@ winetricks_is_mounted() # If that fails, read volume name the hard way for each volume # Have to use file to return results from implicit subshell - rm -f "/tmp/_W_tmp.$LOGNAME" + rm -f "$W_TMP_EARLY/_W_tmp.$LOGNAME" winetricks_list_mounts . | while true do IFS= read _W_tmp @@ -3170,17 +3712,17 @@ winetricks_is_mounted() if test "$1" = "$_W_volname" then # Volume found! Want to return from function here, but can't - echo "$_W_tmp" > "/tmp/_W_tmp.$LOGNAME" + echo "$_W_tmp" > "$W_TMP_EARLY/_W_tmp.$LOGNAME" break fi done - if test -f "/tmp/_W_tmp.$LOGNAME" + if test -f "$W_TMP_EARLY/_W_tmp.$LOGNAME" then # Volume found! Return from function. - _W_dev=`cat "/tmp/_W_tmp.$LOGNAME" | sed 's/ .*//'` - _W_mountpoint="`cat "/tmp/_W_tmp.$LOGNAME" | sed 's/^[^ ]* //'`" - rm -f "/tmp/_W_tmp.$LOGNAME" + _W_dev=`cat "$W_TMP_EARLY/_W_tmp.$LOGNAME" | sed 's/ .*//'` + _W_mountpoint="`cat "$W_TMP_EARLY/_W_tmp.$LOGNAME" | sed 's/^[^ ]* //'`" + rm -f "$W_TMP_EARLY/_W_tmp.$LOGNAME" return 0 fi @@ -3199,6 +3741,9 @@ winetricks_mount_real_volume() da*)_W_mountmsg="Indsæt venligst disken '$_W_expected_volname' (krævet af pakken '$_PACKAGE')" ;; de*)_W_mountmsg="Disc '$_W_expected_volname' bitte einlegen (für Pakete '$W_PACKAGE')" ;; pl*) _W_mountmsg="Proszę włożyć dysk '$_W_expected_volname' (potrzebny paczce '$W_PACKAGE')" ;; + uk*) _W_mountmsg="Будь ласка, вставте том '$_W_expected_volname' (потрібний для пакунка '$W_PACKAGE')" ;; + zh_CN*) _W_mountmsg="请插入卷 '$_W_expected_volname' (为包 '$W_PACKAGE 所需')" ;; + zh_TW*|zh_HK*) _W_mountmsg="請插入卷 '$_W_expected_volname' (為包 '$W_PACKAGE 所需')" ;; *) _W_mountmsg="Please insert volume '$_W_expected_volname' (needed for package '$W_PACKAGE')" ;; esac @@ -3231,6 +3776,12 @@ winetricks_mount_real_volume() winetricks_cleanup() { + # We don't want to run this multiple times, so unfortunately we have to run it here: + if test "$W_NGEN_CMD" + then + "$W_NGEN_CMD" + fi + set +e if test -f "$WINETRICKS_WORKDIR/dd-pid" then @@ -3238,6 +3789,8 @@ winetricks_cleanup() fi test "$WINETRICKS_CACHE_SYMLINK" && rm -f "$WINETRICKS_CACHE_SYMLINK" test "$W_OPT_NOCLEAN" = 1 || rm -rf "$WINETRICKS_WORKDIR" + # if $W_TMP_EARLY was created by mktemp, remove it: + test "$W_OPT_NOCLEAN" = 1 || test "$W_TMP_EARLY_CLEAN" = 1 && rm -rf "$W_TMP_EARLY" } winetricks_set_unattended() @@ -3288,8 +3841,8 @@ winetricks_set_wineprefix() # The folder-name is localized! W_PROGRAMS_WIN="`w_expand_env ProgramFiles`" case "$W_PROGRAMS_WIN" in - "") w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned empty string" ;; - %*) w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned unexpanded string '$W_PROGRAMS_WIN' ... can be caused a corrupt wineprefix, an old wine, or by not owning $WINEPREFIX" ;; + "") w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned empty string, error message \"`cat $W_TMP_EARLY/early_wine.err.txt`\" ";; + %*) w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned unexpanded string '$W_PROGRAMS_WIN' ... this can be caused by a corrupt wineprefix, by an old wine, or by not owning $WINEPREFIX" ;; *unknown*) w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned a string containing the word 'unknown', as if a voice had cried out in terror, and was suddenly silenced." ;; esac @@ -3378,6 +3931,10 @@ winetricks_set_wineprefix() W_SYSTEM32_DLLS="$W_WINDIR_UNIX/syswow64" W_SYSTEM32_DLLS_WIN="C:\\windows\\syswow64" W_SYSTEM64_DLLS="$W_WINDIR_UNIX/system32" + W_SYSTEM64_DLLS_WIN32="C:\\windows\\sysnative" # path to access 64-bit dlls from 32-bit apps + W_SYSTEM64_DLLS_WIN64="C:\\windows\\system32" # path to access 64-bit dlls from 64-bit apps + # 64-bit prefixes still have plenty of issues: + w_warn "You are using a 64-bit WINEPREFIX. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug." else W_ARCH=win32 W_SYSTEM32_DLLS="$W_WINDIR_UNIX/system32" @@ -3394,15 +3951,15 @@ winetricks_annihilate_wineprefix() rm -rf "$WINEPREFIX" # Also remove menu items. - find ~/.local/share/applications/wine -type f -name '*.desktop' -exec grep -q -l "$WINEPREFIX" '{}' ';' -exec rm '{}' ';' + find $XDG_DATA_HOME/applications/wine -type f -name '*.desktop' -exec grep -q -l "$WINEPREFIX" '{}' ';' -exec rm '{}' ';' # Also remove desktop items. # Desktop might be synonym for home directory, so only go one level # deep to avoid extreme slowdown if user has lots of files ( - if ! test "$XDG_DESKTOP_DIR" && test -f ~/.config/user-dirs.dirs + if ! test "$XDG_DESKTOP_DIR" && test -f $XDG_CONFIG_HOME/user-dirs.dirs then - . ~/.config/user-dirs.dirs + . $XDG_CONFIG_HOME/user-dirs.dirs fi find "$XDG_DESKTOP_DIR" -maxdepth 1 -type f -name '*.desktop' -exec grep -q -l "$WINEPREFIX" '{}' ';' -exec rm '{}' ';' ) @@ -3426,7 +3983,7 @@ winetricks_init() fi # Ephemeral files for this run - WINETRICKS_WORKDIR="/tmp/w.$LOGNAME.$$" + WINETRICKS_WORKDIR="$W_TMP_EARLY/w.$LOGNAME.$$" test "$W_OPT_NOCLEAN" = 1 || rm -rf "$WINETRICKS_WORKDIR" # Registering a verb creates a file in WINETRICKS_METADATA @@ -3455,24 +4012,9 @@ winetricks_init() # whether to use shared wineprefix (1) or unique wineprefix for each app (0) WINETRICKS_OPT_SHAREDPREFIX=${WINETRICKS_OPT_SHAREDPREFIX:-0} - # Mac folks tend to not have sha1sum, but we can make do with openssl - if [ -x "`which sha1sum 2>/dev/null`" ] - then - WINETRICKS_SHA1SUM="sha1sum" - elif [ -x "`which openssl 2>/dev/null`" ] - then - WINETRICKS_SHA1SUM="openssl dgst -sha1" - else - w_die "No sha1sum utility available." - fi + WINETRICKS_SOURCEFORGE=http://downloads.sourceforge.net - # Which sourceforge mirror to use. Rotate based on time, since - # their mirror picker sometimes persistantly sends you to a broken - # mirror. - case `date +%S` in - *[3]) WINETRICKS_SOURCEFORGE=http://surfnet.dl.sourceforge.net/sourceforge ;; - *) WINETRICKS_SOURCEFORGE=http://downloads.sourceforge.net;; - esac + winetricks_get_sha1sum_prog #---- Public Variables ---- @@ -3492,11 +4034,10 @@ winetricks_init() WINETRICKS_POST="${WINETRICKS_POST:-$WINETRICKS_DIR/postinstall}" else W_CACHE="${W_CACHE:-$XDG_CACHE_HOME/winetricks}" - # FIXME: maybe obey XDG_DATA_HOME - WINETRICKS_POST="${WINETRICKS_POST:-$HOME/.local/share/winetricks/postinstall}" + WINETRICKS_POST="${WINETRICKS_POST:-$XDG_DATA_HOME/winetricks/postinstall}" fi test -d "$W_CACHE" || mkdir -p "$W_CACHE" - WINETRICKS_AUTH="${WINETRICKS_AUTH:-$HOME/.local/share/winetricks/auth}" + WINETRICKS_AUTH="${WINETRICKS_AUTH:-$XDG_DATA_HOME/winetricks/auth}" # System-specific variables case "$OS" in @@ -3509,21 +4050,37 @@ winetricks_init() WINE="${WINE:-wine}" # Find wineserver. Some distros (Debian) don't have it on the path, # on the mistaken understanding that user scripts never need it :-( + # If wineserver is from wine-development set WINE to wine-development. # FIXME: get packagers to put wineserver on the path. for x in \ "$WINESERVER" \ "${WINE}server" \ "`which wineserver 2> /dev/null`" \ - /usr/lib*/wine-unstable/wineserver \ - /usr/lib*/wine/wineserver \ - /usr/lib/*/wine-unstable/wineserver \ - /usr/lib/*/wine-unstable/wine/wineserver \ - /usr/lib/*/wine/wineserver \ "`dirname $WINE`/server/wineserver" \ + /usr/lib/wine/wineserver \ + /usr/lib/i386-kfreebsd-gnu/wine/wineserver \ + /usr/lib/i386-linux-gnu/wine/wineserver \ + /usr/lib/powerpc-linux-gnu/wine/wineserver \ + /usr/lib/i386-kfreebsd-gnu/wine/bin/wineserver \ + /usr/lib/i386-linux-gnu/wine/bin/wineserver \ + /usr/lib/powerpc-linux-gnu/wine/bin/wineserver \ + /usr/lib/x86_64-linux-gnu/wine/bin/wineserver \ + /usr/lib/i386-kfreebsd-gnu/wine-development/wineserver \ + /usr/lib/i386-linux-gnu/wine-development/wineserver \ + /usr/lib/powerpc-linux-gnu/wine-development/wineserver \ + /usr/lib/x86_64-linux-gnu/wine-development/wineserver \ file-not-found do if test -x "$x" then + case "$x" in + /usr/lib/*/wine-development/wineserver) + if test -x /usr/bin/wine-development + then + WINE="/usr/bin/wine-development" + fi + ;; + esac break fi done @@ -3537,21 +4094,18 @@ winetricks_init() if test "$WINEPREFIX" then WINETRICKS_ORIGINAL_WINEPREFIX="$WINEPREFIX" - #if test WINETRICKS_OPT_SHAREDPREFIX=0 - #then - # w_info "To install apps into $WINEPREFIX, give the --no-isolate option" - #fi else WINETRICKS_ORIGINAL_WINEPREFIX="$HOME/.wine" fi - _abswine="`which $WINE 2>/dev/null`" + _abswine="`which "$WINE" 2>/dev/null`" if ! test -x "$_abswine" || ! test -f "$_abswine" then w_die "WINE is $WINE, which is neither on the path nor an executable file" fi case "$WINETRICKS_OPT_VERBOSE" in - "1") echo -n "Wine is '$WINE'; Wine version is " - $WINE --version || w_die "Can't get wine version" + 1|2) echo -n "Wine is '$WINE'; Wine version is " + "$WINE" --version || w_die "Can't get wine version" + echo "winetricks is $0 ; winetricks version is $WINETRICKS_VERSION" ;; esac unset _abswine @@ -3577,6 +4131,8 @@ winetricks_init() wine-1.4) WINETRICKS_WINE_VERSION="wine-1.4.0"; export WINETRICKS_WINE_VERSION;; wine-1.6-*) WINETRICKS_WINE_VERSION="wine-1.6.0"; export WINETRICKS_WINE_VERSION;; wine-1.6) WINETRICKS_WINE_VERSION="wine-1.6.0"; export WINETRICKS_WINE_VERSION;; + wine-1.8-*) WINETRICKS_WINE_VERSION="wine-1.8.0"; export WINETRICKS_WINE_VERSION;; + wine-1.8) WINETRICKS_WINE_VERSION="wine-1.8.0"; export WINETRICKS_WINE_VERSION;; esac WINETRICKS_WINE_MINOR=`echo $WINETRICKS_WINE_VERSION | sed 's/wine-1\.\([0-9]*\)\..*/\1/'` WINETRICKS_WINE_MICRO=`echo $WINETRICKS_WINE_VERSION | sed 's/wine-1.[0-9][0-9]*\.\([0-9]*\).*/\1/'` @@ -3634,12 +4190,13 @@ Executes given verbs. Each verb installs an application or changes a setting. Options: --force Don't check whether packages were already installed --gui Show gui diagnostics even when driven by commandline + --isolate Install each app or game in its own bottle (WINEPREFIX) -k, --keep_isos Cache isos (allows later installation without disc) --no-clean Don't delete temp directories (useful during debugging) - --no-isolate Don't install each app or game in its own bottle -q, --unattended Don't ask any questions, just install automatically -r, --ddrescue Retry hard when caching scratched discs --showbroken Even show verbs that are currently broken in wine + --verify Run (automated) GUI tests for verbs, if available -v, --verbose Echo all commands as they are executed -h, --help Display this message and exit -V, --version Display version and exit @@ -3668,8 +4225,10 @@ winetricks_handle_option() -r|--ddrescue) WINETRICKS_OPT_DD=ddrescue ;; -k|--keep_isos) WINETRICKS_OPT_KEEPISOS=1 ;; -q|--unattended) winetricks_set_unattended 1 ;; - -v|--verbose) WINETRICKS_OPT_VERBOSE=1; set -x ;; + -v|--verbose) WINETRICKS_OPT_VERBOSE=1 ; set -x;; + -vv|--really-verbose) WINETRICKS_OPT_VERBOSE=2 ; set -x ;; -V|--version) winetricks_print_version ; exit 0;; + --verify) WINETRICKS_VERIFY=1 ;; -h|--help) winetricks_usage ; exit 0 ;; --isolate) WINETRICKS_OPT_SHAREDPREFIX=0 ;; --no-isolate) WINETRICKS_OPT_SHAREDPREFIX=1 ;; @@ -3689,10 +4248,12 @@ winetricks_handle_option() if ! test "$WINETRICKS_LIB" then WINETRICKS_SRCDIR=`dirname "$0"` - WINETRICKS_SRCDIR=`cd "$WINETRICKS_SRCDIR"; /bin/pwd` + WINETRICKS_SRCDIR=`cd "$WINETRICKS_SRCDIR"; pwd` # Which GUI helper to use (none/zenity/kdialog). See winetricks_detect_gui. WINETRICKS_GUI=none + # Default to a shared prefix: + WINETRICKS_OPT_SHAREDPREFIX=1 # Handle options before init, to avoid starting wine for --help or --version while winetricks_handle_option $1 @@ -3709,6 +4270,9 @@ winetricks_install_app() da*) fail_msg="Installationen af pakken $1 fejlede" ;; de*) fail_msg="Installieren von Pakete $1 gescheitert" ;; pl*) fail_msg="Niepowodzenie przy instalacji paczki $1" ;; + uk*) fail_msg="Помилка встановлення пакунка $1" ;; + zh_CN*) fail_msg="$1 安装失败" ;; + zh_TW*|zh_HK*) fail_msg="$1 安裝失敗" ;; *) fail_msg="Failed to install package $1" ;; esac @@ -3759,6 +4323,14 @@ helper_d3dx9_xx() do 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 + fi w_override_dlls native $dllname } @@ -3772,14 +4344,14 @@ helper_win2ksp4() w_try_cabextract -d "$W_TMP" -L -F $filename "$W_CACHE"/win2ksp4/W2KSP4_EN.EXE } -helper_xpsp2() +helper_xpsp3() { filename=$1 - # http://www.microsoft.com/en-us/download/details.aspx?id=28 - w_download_to xpsp2 http://download.microsoft.com/download/1/6/5/165b076b-aaa9-443d-84f0-73cf11fdcdf8/WindowsXP-KB835935-SP2-ENU.exe 33a8fef60d48ae1f2c4feea27111af5ceca3c4f6 + # http://www.microsoft.com/en-us/download/details.aspx?id=24 + w_download_to xpsp3 http://download.microsoft.com/download/d/3/0/d30e32d8-418a-469d-b600-f32ce3edf42d/WindowsXP-KB936929-SP3-x86-ENU.exe c81472f7eeea2eca421e116cd4c03e2300ebfde4 - w_try_cabextract -d "$W_TMP" -L -F $filename "$W_CACHE"/xpsp2/WindowsXP-KB835935-SP2-ENU.exe + w_try_cabextract -d "$W_TMP" -L -F $filename "$W_CACHE"/xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe } helper_win7sp1() @@ -3795,9 +4367,9 @@ helper_win7sp1() #--------------------------------------------------------- w_metadata adobeair dlls \ - title="Adobe AIR 2.7" \ + title="Adobe AIR 19.0" \ publisher="Adobe" \ - year="2011" \ + year="2015" \ media="download" \ file1="AdobeAIRInstaller.exe" \ installed_file1="$W_COMMONFILES_X86_WIN/Adobe AIR/Versions/1.0/Adobe AIR.dll" \ @@ -3811,9 +4383,16 @@ load_adobeair() # 2010-12-08: 2.5.1 sha1sum 2664207ca8e836f5070ee356064829a39785a92e # 2011-04-13: 2.6 sha1sum 3d9c2f9d8f3533424cfea84d61fcb9464278d9fc # 2011-10-26: 2.7 sha1sum dfa337d4b53e9d924356febc116450190fa183dd - w_download http://airdownload.adobe.com/air/win/download/2.7/AdobeAIRInstaller.exe dfa337d4b53e9d924356febc116450190fa183dd + # 2014-03-01: 4.0 sha1sum 0034bdd4e0b2ce0fa6198b0b715fba85754d9a57 + # http://helpx.adobe.com/en/flash-player/release-note/fp_12_air_4_release_notes.html + # 2014-09-30: 15.0 sha1sum 46341f1358bc6e0b9ddeae3591662a2ac68dc360 + # 2014-11-24: 15.0.0.356 sha1sum c0e6b8b1ed5ffa282945d21b21f8a5e03febc904 + # 2015-11-06: 19.x sha1sum 3bc2a568204a3a9b59ca347ab49585f0c5fab279 + # 2015-12-27: 20.0 sha1sum 9c10b7be43771869c381c73197c9a0fcd1b727cf + # 2015-12-29: 20.0.0.233 (had to check with strings on Adobe AIR.dll) sha1sum 7161fb8b47721485882f52720f8b41dbfe3b69d0 + w_download http://airdownload.adobe.com/air/win/download/20.0/AdobeAIRInstaller.exe 7161fb8b47721485882f52720f8b41dbfe3b69d0 cd "$W_CACHE"/adobeair - w_try $WINE AdobeAIRInstaller.exe $W_UNATTENDED_DASH_SILENT + w_try "$WINE" AdobeAIRInstaller.exe $W_UNATTENDED_DASH_SILENT } #---------------------------------------------------------------- @@ -3853,7 +4432,7 @@ load_art2kmin() # See http://www.microsoft.com/downloads/details.aspx?familyid=d9ae78d9-9dc6-4b38-9fa6-2c745a175aed&displaylang=en w_download http://download.microsoft.com/download/D/2/A/D2A2FC8B-0447-491C-A5EF-E8AA3A74FB98/AccessRuntime.exe 571811b7536e97cf4e4e53bbf8260cddd69f9b2d cd "$W_CACHE"/art2kmin - w_try $WINE AccessRuntime.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" AccessRuntime.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -3874,18 +4453,36 @@ load_atmlib() #---------------------------------------------------------------- +w_metadata avifil32 dlls \ + title="MS avifil32" \ + publisher="Microsoft" \ + year="2004" \ + media="download" \ + file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/avifil32.dll" + +load_avifil32() +{ + helper_xpsp3 i386/avifil32.dl_ + w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/avifil32.dl_ + + w_override_dlls native avifil32 +} + +#---------------------------------------------------------------- + w_metadata cabinet dlls \ title="Microsoft cabinet.dll" \ publisher="Microsoft" \ year="2002" \ - media="manual_download" \ + media="download" \ file1="mdac_typ.exe" \ installed_file1="$W_SYSTEM32_DLLS_WIN/cabinet.dll" load_cabinet() { # http://www.microsoft.com/downloads/en/details.aspx?FamilyId=9AD000F2-CAE7-493D-B0F3-AE36C570ADE8&displaylang=en - w_download_manual http://download.cnet.com/Microsoft-Data-Access-Components-MDAC-2-7-Service-Pack-1-Refresh/3000-10250_4-10729498.html mdac_typ.exe f68594d1f578c3b47bf0639c46c11c5da161feee + w_download http://web.archive.org/web/20080731135848/http://download.microsoft.com/download/3/b/f/3bf74b01-16ba-472d-9a8c-42b2b4fa0d76/mdac_typ.exe f68594d1f578c3b47bf0639c46c11c5da161feee w_try_cabextract --directory="$W_TMP" "$W_CACHE"/cabinet/$file1 w_try cp "$W_TMP"/cabinet.dll "$W_SYSTEM32_DLLS"/cabinet.dll @@ -3926,9 +4523,9 @@ load_comctl32() #w_download http://download.microsoft.com/download/platformsdk/redist/5.80.2614.3600/w9xnt4/en-us/cc32inst.exe 94c3c494258cc54bd65d2f0153815737644bffde w_download $WINETRICKS_SOURCEFORGE/pocmin/Win%2095_98%20Controls/Win%2095_98%20Controls/CC32inst.exe 94c3c494258cc54bd65d2f0153815737644bffde cc32inst.exe - w_try $WINE "$W_CACHE"/comctl32/cc32inst.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q - w_try_unzip -d "$W_TMP" "$W_TMP"/comctl32.exe - w_try $WINE "$W_TMP"/x86/50ComUpd.Exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q + w_try "$WINE" "$W_CACHE"/comctl32/cc32inst.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q + w_try_unzip "$W_TMP" "$W_TMP"/comctl32.exe + w_try "$WINE" "$W_TMP"/x86/50ComUpd.Exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q w_try cp "$W_TMP"/comcnt.dll "$W_SYSTEM32_DLLS"/comctl32.dll w_override_dlls native,builtin comctl32 @@ -3947,18 +4544,25 @@ w_metadata comctl32ocx dlls \ year="2009" \ media="download" \ file1="VisualBasic6-KB896559-v1-ENU.exe" \ - installed_file1="$W_SYSTEM32_DLLS_WIN/comctl32.ocx" + file2="mscomct2.cab" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/mscomctl.ocx" load_comctl32ocx() { # http://www.microsoft.com/downloads/details.aspx?FamilyID=25437D98-51D0-41C1-BB14-64662F5F62FE w_download http://download.microsoft.com/download/3/a/5/3a5925ac-e779-4b1c-bb01-af67dc2f96fc/VisualBasic6-KB896559-v1-ENU.exe f52cf2034488235b37a1da837d1c40eb2a1bad84 + # More ActiveX controls. See https://support.microsoft.com/kb/297381 + w_download https://web.archive.org/web/20141012205821/http://activex.microsoft.com/controls/vb6/mscomct2.cab 766f9ccf8849a04d757faee379da54d635c8ac71 w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comctl32ocx/VisualBasic6-KB896559-v1-ENU.exe w_try cp "$W_TMP"/mscomctl.ocx "$W_SYSTEM32_DLLS"/mscomctl.ocx w_try cp "$W_TMP"/comctl32.ocx "$W_SYSTEM32_DLLS"/comctl32.ocx w_try_regsvr comctl32.ocx w_try_regsvr mscomctl.ocx + + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comctl32ocx/mscomct2.cab + w_try cp "$W_TMP"/mscomct2.ocx "$W_SYSTEM32_DLLS"/mscomct2.ocx + w_try_regsvr mscomct2.ocx } #---------------------------------------------------------------- @@ -3968,14 +4572,14 @@ w_metadata comdlg32ocx dlls \ publisher="Microsoft" \ year="2009" \ media="download" \ - file1="comdlg32.cab" \ + file1="ComDlg32.cab" \ installed_file1="$W_SYSTEM32_DLLS_WIN/comdlg32.ocx" load_comdlg32ocx() { # By analogy with vb5 version in http://support.microsoft.com/kb/168917 - w_download http://activex.microsoft.com/controls/vb6/comdlg32.cab d4f3e193c6180eccd73bad53a8500beb5b279cbf - w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comdlg32ocx/comdlg32.cab + w_download https://web.archive.org/web/20141227220748/http://activex.microsoft.com/controls/vb6/ComDlg32.cab d4f3e193c6180eccd73bad53a8500beb5b279cbf + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comdlg32ocx/${file1} w_try cp "$W_TMP"/comdlg32.ocx "$W_SYSTEM32_DLLS"/comdlg32.ocx w_try_regsvr comdlg32.ocx } @@ -3987,14 +4591,14 @@ w_metadata crypt32 dlls \ publisher="Microsoft" \ year="2004" \ media="download" \ - file1="../xpsp2/WindowsXP-KB835935-SP2-ENU.exe" \ + file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \ installed_file1="$W_SYSTEM32_DLLS_WIN/crypt32.dll" load_crypt32() { w_call msasn1 - helper_xpsp2 i386/crypt32.dl_ + helper_xpsp3 i386/crypt32.dl_ w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/crypt32.dl_ w_override_dlls native crypt32 @@ -4002,6 +4606,32 @@ load_crypt32() #---------------------------------------------------------------- +w_metadata binkw32 dlls \ + title="RAD Game Tools binkw32.dll" \ + publisher="RAD Game Tools, Inc." \ + year="2000" \ + media="download" \ + file1="__32-binkw32.dll3.0.0.0.zip" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/binkw32.dll" + +load_binkw32() +{ + # Mirror: http://www.dlldump.com/download-dll-files_new.php/dllfiles/B/binkw32.dll/1.0q/download.html + # Sha1sum of the decompressed file: 613f81f82e12131e86ae60dd318941f40db2200f + # + # Zip sha1sum: + # 2015-03-28: 991f77e8df513ccb8663dc4a2753fbf90338ef5c + # 2015-12-27: 6a30900885390ef361dbb67444a7944143db36bf + w_download http://www.down-dll.com/dll/b/__32-binkw32.dll3.0.0.0.zip 6a30900885390ef361dbb67444a7944143db36bf + + 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_override_dlls native binkw32 +} + +#---------------------------------------------------------------- + w_metadata d3dcompiler_43 dlls \ title="MS d3dcompiler_43.dll" \ publisher="Microsoft" \ @@ -4022,12 +4652,40 @@ load_d3dcompiler_43() do 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 + fi w_override_dlls native $dllname } #---------------------------------------------------------------- +w_metadata d3drm dlls \ + title="MS d3drm.dll" \ + publisher="Microsoft" \ + year="2010" \ + media="download" \ + file1="../directx9/directx_feb2010_redist.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/d3drm.dll" + +load_d3drm() +{ + helper_directx_dl + + w_try_cabextract -d "$W_TMP" -L -F "dxnt.cab" "$W_CACHE"/directx9/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "d3drm.dll" "$W_TMP/dxnt.cab" + + w_override_dlls native d3drm +} + +#---------------------------------------------------------------- + w_metadata d3dx9 dlls \ title="MS d3dx9_??.dll from DirectX 9 redistributable" \ publisher="Microsoft" \ @@ -4046,6 +4704,14 @@ load_d3dx9() do 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 + fi # For now, not needed, but when Wine starts preferring our builtin dll over native it will be. w_override_dlls native d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 @@ -4179,6 +4845,14 @@ load_d3dx9_43() do 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 + fi w_override_dlls native $dllname } @@ -4204,6 +4878,14 @@ load_d3dx11_42() do 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 + fi w_override_dlls native $dllname } @@ -4229,6 +4911,14 @@ load_d3dx11_43() do 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 + fi w_override_dlls native $dllname } @@ -4240,12 +4930,12 @@ w_metadata d3dx10 dlls \ publisher="Microsoft" \ year="2010" \ media="download" \ - file1="../directx9/directx_feb2010_redist.exe" \ + file1="../directx9/directx_Jun2010_redist.exe" \ installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx10_33.dll" load_d3dx10() { - helper_directx_dl + helper_directx_Jun2010 # 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 @@ -4253,10 +4943,18 @@ load_d3dx10() do 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 + fi # For now, not needed, but when Wine starts preferring our builtin dll over native it will be. w_override_dlls native d3dx10_33 d3dx10_34 d3dx10_35 d3dx10_36 d3dx10_37 - w_override_dlls native d3dx10_38 d3dx10_39 d3dx10_40 d3dx10_41 d3dx10_42 + w_override_dlls native d3dx10_38 d3dx10_39 d3dx10_40 d3dx10_41 d3dx10_42 d3dx10_43 } #---------------------------------------------------------------- @@ -4281,6 +4979,25 @@ load_d3dxof() #---------------------------------------------------------------- +w_metadata dbghelp dlls \ + title="MS dbghelp" \ + publisher="Microsoft" \ + year="2008" \ + media="download" \ + file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/dbghelp.dll" + +load_dbghelp() +{ + helper_xpsp3 i386/dbghelp.dll + + w_try cp -f "$W_TMP"/i386/dbghelp.dll "$W_SYSTEM32_DLLS" + + w_override_dlls native dbghelp +} + +#---------------------------------------------------------------- + w_metadata devenum dlls \ title="MS devenum.dll from DirectX user redistributable" \ publisher="Microsoft" \ @@ -4406,13 +5123,14 @@ load_directplay() w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dplayx.dll' "$W_TMP/dxnt.cab" w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpnet.dll' "$W_TMP/dxnt.cab" w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpnhpast.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpnsvr.exe' "$W_TMP/dxnt.cab" w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpwsockx.dll' "$W_TMP/dxnt.cab" + w_override_dlls native dplayx dpnet dpnhpast dpnsvr.exe dpwsockx + w_try_regsvr dplayx.dll w_try_regsvr dpnet.dll w_try_regsvr dpnhpast.dll - - w_override_dlls native dplayx dpnet dpnhpast dpwsockx } #---------------------------------------------------------------- @@ -4445,7 +5163,7 @@ load_directx9() cd "$W_CACHE"/directx9 WINEDLLOVERRIDES="wintrust=b,mscoree=,ddraw,d3d8,d3d9,dsound,dinput=n" \ - w_try $WINE $DIRECTX_NAME /t:"$W_TMP_WIN" $W_UNATTENDED_SLASH_Q + w_try "$WINE" $DIRECTX_NAME /t:"$W_TMP_WIN" $W_UNATTENDED_SLASH_Q # How many of these do we really need? # We should probably remove most of these...? @@ -4458,28 +5176,60 @@ load_directx9() w_override_dlls native dxdiag.exe w_override_dlls builtin d3d8 d3d9 dinput dinput8 dsound - w_try $WINE "$W_TMP_WIN"\\DXSETUP.exe $W_UNATTENDED_SLASH_SILENT + w_try "$WINE" "$W_TMP_WIN"\\DXSETUP.exe $W_UNATTENDED_SLASH_SILENT } #---------------------------------------------------------------- -w_metadata dx8sdk dlls \ - title="MS DirectX 8 SDK (developers only)" \ +w_metadata dpvoice dlls \ + title="Microsoft dpvoice dpvvox dpvacm Audio dlls" \ publisher="Microsoft" \ - year="2001" \ + year="2002" \ media="download" \ - file1="dx81sdk_full.exe" \ - installed_file1="c:/DXSDK/include/d3dx8math.h" + file1="../directx9/directx_feb2010_redist.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/dpvoice.dll" \ + installed_file2="$W_SYSTEM32_DLLS_WIN/dpvvox.dll" \ + installed_file2="$W_SYSTEM32_DLLS_WIN/dpvacm.dll" -load_dx8sdk() +load_dpvoice() { - # http://download.microsoft.com/download/whistler/dx/8.1/w982kmexp/en-us/DX81SDK_FULL.exe - w_download http://www.darwinbots.com/numsgil/dx81sdk_full.exe 61b5733209205e942f37431ee40da712e1f50e6a + helper_directx_dl - cd "$W_TMP" - w_try_unzip "$W_CACHE"/dx8sdk/dx81sdk_full.exe - cd DXF - w_try $WINE setup.exe # /S/v/qn for silent mode, but it's broken? + 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" + done + w_try_regsvr dpvoice.dll + w_try_regsvr dpvvox.dll + w_try_regsvr dpvacm.dll + w_override_dlls native dpvoice + w_override_dlls native dpvvox + w_override_dlls native dpvacm +} + +#---------------------------------------------------------------- + +w_metadata dsdmo dlls \ + title="MS dsdmo.dll" \ + publisher="Microsoft" \ + year="2010" \ + media="download" \ + file1="../directx9/directx_feb2010_redist.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/dsdmo.dll" + +load_dsdmo() +{ + helper_directx_dl + mkdir "$W_CACHE"/dsdmo # kludge so test -f $file1 works + + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dsdmo.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dsdmoprp.dll' "$W_TMP/dxnt.cab" + w_try_regsvr dsdmo.dll + w_try_regsvr dsdmoprp.dll } #---------------------------------------------------------------- @@ -4499,10 +5249,10 @@ load_dxsdk_nov2006() # dxview.dll uses mfc42u while registering w_call mfc42 - cd "$W_TMP" w_try_cabextract "$W_CACHE"/dxsdk_nov2006/dxsdk_aug2006.exe - w_try_unzip dxsdk.exe - w_try $WINE msiexec /i Microsoft_DirectX_SDK.msi $W_UNATTENDED_SLASH_Q + w_try_unzip "$W_TMP" dxsdk.exe + cd "$W_TMP" + w_try "$WINE" msiexec /i Microsoft_DirectX_SDK.msi $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -4523,7 +5273,7 @@ load_dxsdk_jun2010() w_call dotnet20 cd "$W_TMP" - w_try $WINE "$W_CACHE"/dxsdk_jun2010/DXSDK_Jun10.exe ${W_OPT_UNATTENDED:+/U} + w_try "$WINE" "$W_CACHE"/dxsdk_jun2010/DXSDK_Jun10.exe ${W_OPT_UNATTENDED:+/U} } #---------------------------------------------------------------- @@ -4551,13 +5301,13 @@ load_dmsynth() #---------------------------------------------------------------- w_metadata dotnet11 dlls \ - title="MS .NET 1.1 (broken on wine)" \ + title="MS .NET 1.1" \ publisher="Microsoft" \ year="2003" \ media="download" \ + conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet30 dotnet30sp1 dotnet35 dotnet35sp1 vjrun20" \ file1="dotnetfx.exe" \ - installed_file1="c:/windows/Microsoft.NET/Framework/v1.1.4322/ndpsetup.ico" \ - wine_showstoppers="25120" + installed_file1="c:/windows/Microsoft.NET/Framework/v1.1.4322/ndpsetup.ico" load_dotnet11() { @@ -4566,80 +5316,100 @@ load_dotnet11() w_die "This package does not work on a 64-bit installation" fi - w_call fontfix - # http://www.microsoft.com/downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3 w_download http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe 16a354a2207c4c8846b617cbc78f7b7c1856340e - # Remove bits of Wine that conflict with native .net 11 - rm -rf "$W_WINDIR_UNIX/Microsoft.NET/Framework/v1.1.4322" - $WINE reg delete "HKLM\Software\Microsoft\.NETFramework\policy\v2.0" /f || true - $WINE reg delete "HKLM\Software\Microsoft\.NETFramework" /v InstallRoot /f || true - - # need corefonts, else installer crashes + w_call remove_mono w_call corefonts + w_call fontfix - # Use builtin regsvcs.exe to work around http://bugs.winehq.org/show_bug.cgi?id=25120 + w_try cd "$W_CACHE/dotnet11" + # Use builtin regsvcs.exe to work around https://bugs.winehq.org/show_bug.cgi?id=25120 if test $W_OPT_UNATTENDED then - WINEDLLOVERRIDES="regsvcs.exe=b" w_try $WINE "$W_CACHE"/dotnet11/dotnetfx.exe /q /C:"install /q" + WINEDLLOVERRIDES="regsvcs.exe=b" w_ahk_do " + SetTitleMatchMode, 2 + run, dotnetfx.exe /q /C:\"install /q\" + + Loop + { + sleep 1000 + ifwinexist, Fatal error, Failed to delay load library + { + WinClose, Fatal error, Failed to delay load library + continue + } + Process, exist, dotnetfx.exe + dotnet_pid = %ErrorLevel% ; Save the value immediately since ErrorLevel is often changed. + if dotnet_pid = 0 + { + break + } + } + " else - WINEDLLOVERRIDES="regsvcs.exe=b" w_try $WINE "$W_CACHE"/dotnet11/dotnetfx.exe + WINEDLLOVERRIDES="regsvcs.exe=b" w_try "$WINE" dotnetfx.exe fi + + W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v1.1.4322/ngen.exe executequeueditems" +} + +verify_dotnet11() +{ + w_dotnet_verify dotnet11 } #---------------------------------------------------------------- w_metadata dotnet11sp1 dlls \ - title="MS .NET 1.1 SP1 (broken in wine)" \ + title="MS .NET 1.1 SP1" \ publisher="Microsoft" \ year="2004" \ media="download" \ file1="NDP1.1sp1-KB867460-X86.exe" \ - installed_file1="c:/windows/Microsoft.NET/Framework/v1.1.4322/CONFIG/web_hightrust.config.default" \ - wine_showstoppers="25120" + installed_file1="c:/windows/Microsoft.NET/Framework/v1.1.4322/CONFIG/web_hightrust.config.default" -# fixme: sometimes security.config is missing after install, see -# http://blogs.msdn.com/b/shawnfa/archive/2006/02/09/527688.aspx -# If this happens often, we may need to change the install check. load_dotnet11sp1() { - w_call dotnet11 w_download http://download.microsoft.com/download/8/b/4/8b4addd8-e957-4dea-bdb8-c4e00af5b94b/NDP1.1sp1-KB867460-X86.exe 74a5b25d65a70b8ecd6a9c301a0aea10d8483a23 + w_call remove_mono + w_call dotnet11 + + w_try cd "$W_CACHE/dotnet11sp1" + # Use builtin regsvcs.exe to work around http://bugs.winehq.org/show_bug.cgi?id=25120 if test $W_OPT_UNATTENDED then - WINEDLLOVERRIDES="regsvcs.exe=b" $WINE "$W_CACHE"/dotnet11sp1/NDP1.1sp1-KB867460-X86.exe /q /C:"install /q" - else - WINEDLLOVERRIDES="regsvcs.exe=b" $WINE "$W_CACHE"/dotnet11sp1/NDP1.1sp1-KB867460-X86.exe - fi - status=$? + WINEDLLOVERRIDES="regsvcs.exe=b" w_ahk_do " + SetTitleMatchMode, 2 + run, NDP1.1sp1-KB867460-X86.exe /q /C:"install /q" - case $status in - 0) ;; - 105|194) echo "exit status $status - normal, system needs simulated reboot" ;; - *) w_die "exit status $status - $W_PACKAGE installation failed" ;; - esac + Loop + { + sleep 1000 + ifwinexist, Fatal error, Failed to delay load library + { + WinClose, Fatal error, Failed to delay load library + continue + } + Process, exist, dotnetfx.exe + dotnet_pid = %ErrorLevel% ; Save the value immediately since ErrorLevel is often changed. + if dotnet_pid = 0 + { + break + } + } + " + else + WINEDLLOVERRIDES="regsvcs.exe=b" w_try "$WINE" "$W_CACHE"/dotnet11sp1/NDP1.1sp1-KB867460-X86.exe + fi + + W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v1.1.4322/ngen.exe executequeueditems" } -#---------------------------------------------------------------- - -w_metadata dotnet_verifier dlls \ - title="MS .NET Verifier" \ - publisher="Microsoft" \ - year="2012" \ - media="download" \ - file1="netfx_5F00_setupverifier_5F00_new.zip" \ - installed_file1="$W_SYSTEM32_DLLS_WIN/netfx_setupverifier.exe" - -load_dotnet_verifier() +verify_dotnet11sp1() { - # http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx - w_download http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-08-99-90-04/netfx_5F00_setupverifier_5F00_new.zip 0eba832a0733cd47b7639463dd5a22a41e95ee6e - - cd "$W_CACHE"/dotnet_verifier - - w_try_unzip -d "$W_SYSTEM32_DLLS" netfx_5F00_setupverifier_5F00_new.zip netfx_setupverifier.exe + w_dotnet_verify dotnet11sp1 } #---------------------------------------------------------------- @@ -4649,11 +5419,15 @@ w_metadata dotnet20 dlls \ publisher="Microsoft" \ year="2006" \ media="download" \ + conflicts="dotnet11" \ file1="dotnetfx.exe" \ installed_file1="c:/windows/Microsoft.NET/Framework/v2.0.50727/Microsoft .NET Framework 2.0/install.exe" load_dotnet20() { + # http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5 + w_download http://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkvantage_en/dotnetfx.exe a3625c59d7a2995fb60877b5f5324892a1693b2a + w_call remove_mono w_call fontfix @@ -4661,39 +5435,18 @@ load_dotnet20() # and http://bugs.winehq.org/show_bug.cgi?id=30845#c10 w_set_winver win2k - if test ! -f "$W_CACHE"/dotnet20/l_intl.nls && w_workaround_wine_bug 10467 "Install l_intl.nls" 1.1.44, + # FIXME: verify on pristine windows XP: + if w_workaround_wine_bug 34803 then - # See http://kegel.com/wine/l_intl-sh.txt for how l_intl.nls was generated - # Use zip rather than naked file to get past strange web proxies - w_download http://kegel.com/wine/l_intl.zip 5cc2665e9a518a2e560d3aeac6758d0cd8ec3a2a - # FIXME: w_download changes current directory - cd "$W_CACHE"/dotnet20 - - w_try_unzip -d "$W_SYSTEM32_DLLS" l_intl.zip - fi - - # Hans' workaround to avoid winehq nonbug 26464, crash in servicemodelreg.exe - if test -d "$W_WINDIR_UNIX"/Microsoft.NET/Framework/v2.0.50727 - then - rm -rf "$W_WINDIR_UNIX"/Microsoft.NET/Framework/v2.0.50727 - fi - - # http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5 - w_download http://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkvantage_en/dotnetfx.exe a3625c59d7a2995fb60877b5f5324892a1693b2a - - # A bug that popped up in 1.5.3 was fixed in 1.5.7; until then a - # crappy workaround helps - if w_workaround_wine_bug 30845 "Adding .NETFramework registry key. Ignore fatal error dialog if it pops up." ,1.5.3 1.5.7, - then - $WINE reg add 'HKLM\Software\Microsoft\.NETFramework' /v InstallRoot /d 'C:\Windows\Microsoft.NET\Framework\' /f + "$WINE" reg delete 'HKLM\Software\Microsoft\.NETFramework\v2.0.50727\SBSDisabled' fi cd "$W_CACHE"/dotnet20 if w_workaround_wine_bug 30845 "Using native fusion while installing..." 1.5.8, then - w_try env WINEDLLOVERRIDES=mscoree,fusion=n $WINE dotnetfx.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} + w_try env WINEDLLOVERRIDES=mscoree,fusion=n "$WINE" dotnetfx.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} else - w_try $WINE dotnetfx.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} + w_try "$WINE" dotnetfx.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} fi w_unset_winver @@ -4709,6 +5462,82 @@ load_dotnet20() then w_killall "mscorsvw.exe" fi + + W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v2.0.50727/ngen.exe executequeueditems" +} + +verify_dotnet20() +{ + w_dotnet_verify dotnet20 +} + +#---------------------------------------------------------------- + +w_metadata dotnet20sdk dlls \ + title="MS .NET 2.0 SDK" \ + publisher="Microsoft" \ + year="2006" \ + media="download" \ + conflicts="dotnet11 dotnet20sp1 dotnet20sp2 dotnet30 dotnet40" \ + file1="setup.exe" \ + installed_file1="$W_PROGRAMS_X86_WIN/Microsoft.NET/SDK/v2.0/Bin/cordbg.exe" + +load_dotnet20sdk() +{ + # http://www.microsoft.com/en-us/download/details.aspx?id=19988 + w_download http://download.microsoft.com/download/c/4/b/c4b15d7d-6f37-4d5a-b9c6-8f07e7d46635/setup.exe 4e4b1072b5e65e855358e2028403f2dc52a62ab4 + + w_call remove_mono + + w_call dotnet20 + + cd "$W_CACHE"/dotnet20sdk + w_ahk_do " + SetTitleMatchMode, 2 + run, setup.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} + + Loop + { + sleep 1000 + ifwinexist, Microsoft Document Explorer, Application Data folder + { + WinClose, Microsoft Document Explorer, Application Data folder + continue + } + ifwinexist, Microsoft CLR Debugger, Application Data folder + { + WinClose, Microsoft CLR Debugger, Application Data folder + continue + } + ; FIXME: only appears if dotnet30sp1 is run first? + ifwinexist, Microsoft .NET Framework 2.0 SDK Setup, This wizard will guide + { + ControlClick, Button22, Microsoft .NET Framework 2.0 SDK Setup + Winwait, Microsoft .NET Framework 2.0 SDK Setup, By clicking + sleep 100 + ControlClick, Button21 + sleep 100 + ControlClick, Button18 + WinWait, Microsoft .NET Framework 2.0 SDK Setup, Select from + sleep 100 + ControlClick, Button12 + WinWait, Microsoft .NET Framework 2.0 SDK Setup, Type the path + sleep 100 + ControlClick, Button8 + WinWait, Microsoft .NET Framework 2.0 SDK Setup, successfully installed + sleep 100 + ControlClick, Button2 + sleep 100 + } + Process, exist, setup.exe + dotnet_pid = %ErrorLevel% + if dotnet_pid = 0 + { + break + } + } + " + } #---------------------------------------------------------------- @@ -4718,15 +5547,16 @@ w_metadata dotnet20sp1 dlls \ publisher="Microsoft" \ year="2008" \ media="download" \ + conflicts="dotnet11 dotnet20sp2 dotnet35sp1" \ file1="NetFx20SP1_x86.exe" \ installed_file1="c:/windows/winsxs/manifests/x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1433_x-ww_5cf844d2.cat" load_dotnet20sp1() { - if w_workaround_wine_bug 16956 "wine version too old" 1.3.22, - then - w_die "wine-1.3.22 or later required to install dotnet20sp1 properly" - fi + # FIXME: URL? + w_download http://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe eef5a36924cdf0c02598ccf96aa4f60887a49840 + + w_call remove_mono w_call dotnet20 @@ -4741,12 +5571,12 @@ load_dotnet20sp1() WINEDLLOVERRIDES=ngen.exe,regsvcs.exe,mscorsvw.exe=b export WINEDLLOVERRIDES + # FIXME: still needed? # Workaround Wine/Mono integration: - $WINE reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727" /v Version /t REG_SZ /d "2.0.50727" /f + "$WINE" reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727" /v Version /t REG_SZ /d "2.0.50727" /f - w_download http://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe eef5a36924cdf0c02598ccf96aa4f60887a49840 cd "$W_CACHE"/dotnet20sp1 - $WINE NetFx20SP1_x86.exe ${W_OPT_UNATTENDED:+/q} + "$WINE" NetFx20SP1_x86.exe ${W_OPT_UNATTENDED:+/q} status=$? case $status in @@ -4765,6 +5595,13 @@ load_dotnet20sp1() rm -f "$W_SYSTEM32_DLLS"/msvc?80.dll w_unset_winver + + W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v2.0.50727/ngen.exe executequeueditems" +} + +verify_dotnet20sp1() +{ + w_dotnet_verify dotnet20sp1 } #---------------------------------------------------------------- @@ -4774,14 +5611,16 @@ w_metadata dotnet20sp2 dlls \ publisher="Microsoft" \ year="2009" \ media="download" \ - file1="NetFx20SP2_x86.exe" + conflicts="dotnet11" \ + file1="NetFx20SP2_x86.exe" \ + installed_file1="c:/windows/winsxs/manifests/x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca.cat" load_dotnet20sp2() { - if w_workaround_wine_bug 22521 "wine version too old" 1.3.18, - then - w_die "wine-1.3.18 or later required to install dotnet20sp2" - fi + # http://www.microsoft.com/downloads/details.aspx?familyid=5B2C0358-915B-4EB5-9B1D-10E506DA9D0F + w_download http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe 22d776d4d204863105a5db99e8b8888be23c61a7 + + w_call remove_mono w_call dotnet20 @@ -4789,7 +5628,7 @@ load_dotnet20sp2() if w_workaround_wine_bug 22521 "Adding registry key, setting windows version so installer works" then # Recipe from http://bugs.winehq.org/show_bug.cgi?id=22521 - $WINE reg add "HKLM\Software\Microsoft\Net Framework Setup\NDP\v2.0.50727" /v Version /d "2.0.50727" /f + "$WINE" reg add "HKLM\Software\Microsoft\Net Framework Setup\NDP\v2.0.50727" /v Version /d "2.0.50727" /f # Stop services # Recipe from http://bugs.winehq.org/show_bug.cgi?id=16956 $WINESERVER -k @@ -4800,10 +5639,33 @@ load_dotnet20sp2() export WINEDLLOVERRIDES fi - # http://www.microsoft.com/downloads/details.aspx?familyid=5B2C0358-915B-4EB5-9B1D-10E506DA9D0F - w_download http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe 22d776d4d204863105a5db99e8b8888be23c61a7 + # FIXME: verify on pristine windows XP: + if w_workaround_wine_bug 34803 + then + "$WINE" reg delete 'HKLM\Software\Microsoft\.NETFramework\v2.0.50727\SBSDisabled' + fi + cd "$W_CACHE"/dotnet20sp2 - $WINE NetFx20SP2_x86.exe ${W_OPT_UNATTENDED:+ /q /c:"install.exe /q"} + w_ahk_do " + SetTitleMatchMode, 2 + run, NetFx20SP2_x86.exe ${W_OPT_UNATTENDED:+ /q /c:"install.exe /q"} + + Loop + { + sleep 1000 + ifwinexist,, cannot be uninstalled + { + WinClose,, cannot be uninstalled + continue + } + Process, exist, NetFx20SP2_x86.exe + dotnet_pid = %ErrorLevel% + if dotnet_pid = 0 + { + break + } + } + " status=$? case $status in @@ -4814,6 +5676,13 @@ load_dotnet20sp2() esac w_unset_winver + + W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v2.0.50727/ngen.exe executequeueditems" +} + +verify_dotnet20sp2() +{ + w_dotnet_verify dotnet20sp2 } #---------------------------------------------------------------- @@ -4822,12 +5691,18 @@ w_metadata dotnet30 dlls \ title="MS .NET 3.0" \ publisher="Microsoft" \ year="2006" \ - media="manual_download" \ - file1="netframework3.exe" \ + media="download" \ + conflicts="dotnet11 dotnet20sp1 dotnet20sp2 dotnet30sp1 dotnet35 dotnet35sp1 dotnet45" \ + file1="dotnetfx3.exe" \ installed_file1="c:/windows/Microsoft.NET/Framework/v3.0/Microsoft .NET Framework 3.0/logo.bmp" load_dotnet30() { + # http://msdn.microsoft.com/en-us/netframework/bb264589.aspx + w_download http://web.archive.org/web/20120509084326/http://download.microsoft.com/download/3/F/0/3F0A922C-F239-4B9B-9CB0-DF53621C57D9/dotnetfx3.exe f3d2c3c7e4c0c35450cf6dab1f9f2e9e7ff50039 + + w_call remove_mono + if test -f /proc/sys/kernel/yama/ptrace_scope then case `cat /proc/sys/kernel/yama/ptrace_scope` in @@ -4845,18 +5720,9 @@ load_dotnet30() ;; esac - # dotnet20 does this: - # w_call remove_mono w_call dotnet20 - # Delete files and registry keys related to .net 3.x - # Breaks .net 3.5 installation, so don't do this yet - #rm -rf "$W_WINDIR_UNIX"/Microsoft.NET/Framework/v3.0 - #$WINE reg delete "HKLM\\Software\Microsoft\NET Framework Setup\NDP\v3.0" - w_warn "Installing .net 3.0 runtime takes 3 minutes on a very fast machine, and the Finished dialog may hide in the taskbar." - # http://msdn.microsoft.com/en-us/netframework/bb264589.aspx - w_download_manual http://www.oldversion.com/download-.Net-Framework-3.0.html netframework3.exe f3d2c3c7e4c0c35450cf6dab1f9f2e9e7ff50039 # AF's workaround to avoid long pause LANGPACKS_BASE_PATH="${W_WINDIR_UNIX}/SYSMSICache/Framework/v3.0" @@ -4871,7 +5737,7 @@ load_dotnet30() # Delete FontCache 3.0 service, it's in Wine for Mono, breaks native .NET # OK if this fails, that just means you have an older wine. - $WINE sc delete "FontCache3.0.0.0" + "$WINE" sc delete "FontCache3.0.0.0" if w_workaround_wine_bug 30845 "Using native fusion..." ,1.5.6 then @@ -4885,7 +5751,15 @@ load_dotnet30() WINEDLLOVERRIDES="ngen.exe,mscorsvw.exe=b;$WINEDLLOVERRIDES" cd "$W_CACHE"/dotnet30 - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ /q /c:"install.exe /q"} + w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /q /c:"install.exe /q"} + + # Doesn't install any ngen.exe + # W_NGEN_CMD="" +} + +verify_dotnet30() +{ + w_dotnet_verify dotnet30 } #---------------------------------------------------------------- @@ -4895,37 +5769,42 @@ w_metadata dotnet30sp1 dlls \ publisher="Microsoft" \ year="2007" \ media="download" \ + conflicts="dotnet11 dotnet20sdk dotnet20sp1 dotnet20sp2" \ file1="NetFx30SP1_x86.exe" \ installed_file1="c:/windows/system32/XpsFilt.dll" # we're cheating a bit here load_dotnet30sp1() { - case "$OS" in - "Windows_NT") ;; - *) w_warn "dotnet30sp1 does not yet fully work or install on wine. Caveat emptor." ;; - esac + # FIXME: URL? + w_download http://download.microsoft.com/download/8/F/E/8FEEE89D-9E4F-4BA3-993E-0FFEA8E21E1B/NetFx30SP1_x86.exe 8d779e337920b097aa0c01859912950606e9fc12 + # Recipe from http://bugs.winehq.org/show_bug.cgi?id=25060#c10 + w_download http://download.microsoft.com/download/2/5/2/2526f55d-32bc-410f-be18-164ba67ae07d/XPSEP%20XP%20and%20Server%202003%2032%20bit.msi 5d332ebd1025e294adafe72030fe33db707b2c82 "XPSEP XP and Server 2003 32 bit.msi" - # dotnet20 does this, which is called by dotnet30: - # w_call remove_mono + w_call remove_mono w_call dotnet30 $WINESERVER -w w_call dotnet20sp1 $WINESERVER -w - w_download http://download.microsoft.com/download/8/F/E/8FEEE89D-9E4F-4BA3-993E-0FFEA8E21E1B/NetFx30SP1_x86.exe 8d779e337920b097aa0c01859912950606e9fc12 cd "$W_CACHE/$W_PACKAGE" - $WINE reg add "HKLM\\Software\\Microsoft\\Net Framework Setup\\NDP\\v3.0" /v Version /t REG_SZ /d "3.0" /f - $WINE reg add "HKLM\\Software\\Microsoft-\\Net Framework Setup\\NDP\\v3.0" /v SP /t REG_DWORD /d 0001 /f + "$WINE" reg add "HKLM\\Software\\Microsoft\\Net Framework Setup\\NDP\\v3.0" /v Version /t REG_SZ /d "3.0" /f + "$WINE" reg add "HKLM\\Software\\Microsoft-\\Net Framework Setup\\NDP\\v3.0" /v SP /t REG_DWORD /d 0001 /f - # Recipe from http://bugs.winehq.org/show_bug.cgi?id=25060#c10 - w_download http://download.microsoft.com/download/2/5/2/2526f55d-32bc-410f-be18-164ba67ae07d/XPSEP%20XP%20and%20Server%202003%2032%20bit.msi 5d332ebd1025e294adafe72030fe33db707b2c82 - w_try $WINE msiexec /i "XPSEP XP and Server 2003 32 bit.msi" ${W_OPT_UNATTENDED:+/qb} - $WINE sc delete FontCache3.0.0.0 + w_try "$WINE" msiexec /i "XPSEP XP and Server 2003 32 bit.msi" ${W_OPT_UNATTENDED:+/qb} + "$WINE" sc delete FontCache3.0.0.0 - $WINE $file1 ${W_OPT_UNATTENDED:+/q} + "$WINE" $file1 ${W_OPT_UNATTENDED:+/q} status=$? w_info $file1 exited with status $status + + # Doesn't install any ngen.exe + # W_NGEN_CMD="" +} + +verify_dotnet30sp1() +{ + w_dotnet_verify dotnet30sp1 } #---------------------------------------------------------------- @@ -4935,6 +5814,7 @@ w_metadata dotnet35 dlls \ publisher="Microsoft" \ year="2007" \ media="download" \ + conflicts="dotnet11 dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2" \ file1="dotnetfx35.exe" \ installed_file1="c:/windows/Microsoft.NET/Framework/v3.5/MSBuild.exe" @@ -4945,6 +5825,11 @@ load_dotnet35() *) w_warn "dotnet35 does not yet fully work or install on wine. Caveat emptor." ;; esac + # http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6 + w_download http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe 0a271bb44531aadef902829f98dfad66e4a57586 + + w_call remove_mono + w_call dotnet30sp1 $WINESERVER -w @@ -4953,16 +5838,21 @@ load_dotnet35() w_call msxml3 fi - # http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6 - w_download http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe 0a271bb44531aadef902829f98dfad66e4a57586 - - $WINE reg delete "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5" + "$WINE" reg delete "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5" # See also http://blogs.msdn.com/astebner/archive/2008/07/17/8745415.aspx cd "$W_TMP" w_try_cabextract $W_UNATTENDED_DASH_Q "$W_CACHE"/dotnet35/dotnetfx35.exe cd wcu/dotNetFramework - $WINE dotNetFx35setup.exe /lang:ENU $W_UNATTENDED_SLASH_Q + "$WINE" dotNetFx35setup.exe /lang:ENU $W_UNATTENDED_SLASH_Q + + # Doesn't install any ngen.exe + # W_NGEN_CMD="" +} + +verify_dotnet35() +{ + w_dotnet_verify dotnet35 } #---------------------------------------------------------------- @@ -4972,6 +5862,7 @@ w_metadata dotnet35sp1 dlls \ publisher="Microsoft" \ year="2008" \ media="download" \ + conflicts="dotnet11 dotnet20sp1 dotnet20sp2" \ file1="dotnetfx35.exe" \ installed_file1="c:/windows/Microsoft.NET/Framework/v3.5/Microsoft .NET Framework 3.5 SP1/logo.bmp" @@ -4982,20 +5873,49 @@ load_dotnet35sp1() *) w_warn "dotnet35sp1 does not yet fully work or install on wine. Caveat emptor." ;; esac + # http://www.microsoft.com/download/en/details.aspx?id=25150 + w_download http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe 3dce66bae0dd71284ac7a971baed07030a186918 + + w_call remove_mono + w_call dotnet35 $WINESERVER -w w_call dotnet20sp2 $WINESERVER -w - # http://www.microsoft.com/download/en/details.aspx?id=25150 - w_download http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe 3dce66bae0dd71284ac7a971baed07030a186918 - # Work around hang in http://bugs.winehq.org/show_bug.cgi?id=25060#c19 WINEDLLOVERRIDES=ngen.exe,mscorsvw.exe=b export WINEDLLOVERRIDES cd "$W_CACHE"/dotnet35sp1 - $WINE dotnetfx35.exe /lang:ENU $W_UNATTENDED_SLASH_Q + w_ahk_do " + SetTitleMatchMode, 2 + run, dotnetfx35.exe /lang:ENU $W_UNATTENDED_SLASH_Q + + Loop + { + sleep 1000 + ifwinexist,, cannot be uninstalled + { + WinClose,, cannot be uninstalled + continue + } + Process, exist, dotnetfx35.exe + dotnet_pid = %ErrorLevel% + if dotnet_pid = 0 + { + break + } + } + " + + # Doesn't install any ngen.exe + # W_NGEN_CMD="" +} + +verify_dotnet35sp1() +{ + w_dotnet_verify dotnet35sp1 } #---------------------------------------------------------------- @@ -5004,12 +5924,18 @@ w_metadata dotnet40 dlls \ title="MS .NET 4.0" \ publisher="Microsoft" \ year="2011" \ - media="manual_download" \ + media="download" \ + conflicts="dotnet20sdk" \ file1="dotNetFx40_Full_x86_x64.exe" \ installed_file1="c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe" load_dotnet40() { + if [ $W_ARCH = win64 ] + then + w_die "This package does not work on a 64-bit installation" + fi + case "$OS" in "Windows_NT") ;; *) w_warn "dotnet40 does not yet fully work or install on wine. Caveat emptor." ;; @@ -5026,18 +5952,18 @@ load_dotnet40() w_call remove_mono # Remove Mono registry entry: - $WINE reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f + "$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll" cd "$W_CACHE/$W_PACKAGE" - WINEDLLOVERRIDES=fusion=b $WINE dotNetFx40_Full_x86_x64.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} || true + WINEDLLOVERRIDES=fusion=b "$WINE" dotNetFx40_Full_x86_x64.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} || true w_override_dlls native mscoree - $WINE reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full" /v Install /t REG_DWORD /d 0001 /f - $WINE reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full" /v Version /t REG_SZ /d "4.0.30319" /f + "$WINE" reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full" /v Install /t REG_DWORD /d 0001 /f + "$WINE" reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full" /v Version /t REG_SZ /d "4.0.30319" /f if w_workaround_wine_bug 30707 "Manually registering assemblies" 1.5.5, then @@ -5046,20 +5972,107 @@ load_dotnet40() for assembly in $W_WINDIR_UNIX/Microsoft.NET/Framework/v4.0.30319/*.[dD]ll do - $WINE "$W_TMP/gacutil.exe" /i "$(w_pathconv -w $assembly)" /f + "$WINE" "$W_TMP/gacutil.exe" /i "$(w_pathconv -w $assembly)" /f done for assembly in $W_WINDIR_UNIX/Microsoft.NET/Framework/v4.0.30319/WPF/*.[dD]ll do # Some of the dlls aren't assemblies. FIXME: Should filter them based on that.. - $WINE "$W_TMP/gacutil.exe" /i "$(w_pathconv -w $assembly)" /f || true + "$WINE" "$W_TMP/gacutil.exe" /i "$(w_pathconv -w $assembly)" /f || true done mkdir -p "$W_WINDIR_UNIX/Microsoft.NET/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a" cp "$W_WINDIR_UNIX/Microsoft.NET/Framework/v4.0.30319/System.EnterpriseServices.dll" "$W_WINDIR_UNIX/Microsoft.NET/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a" fi + + W_NGEN_CMD="$WINE $WINEPREFIX/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe executequeueditems" } +verify_dotnet40() +{ + w_dotnet_verify dotnet40 +} + +#---------------------------------------------------------------- + +w_metadata dotnet45 dlls \ + title="MS .NET 4.5" \ + publisher="Microsoft" \ + year="2012" \ + media="download" \ + conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet35sp1 dotnet40 vjrun20" \ + file1="dotnetfx45_full_x86_x64.exe" \ + installed_file1="c:/windows/Microsoft.NET/Framework/v4.0.30319/Microsoft.Windows.ApplicationServer.Applications.45.man" + +load_dotnet45() +{ + if [ $W_ARCH = win64 ] + then + w_warn "This package may not work on a 64-bit installation" + fi + + # http://www.microsoft.com/download/en/details.aspx?id=17718 + w_download http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe b2ff712ca0947040ca0b8e9bd7436a3c3524bb5d + + w_call remove_mono + + # Remove Mono registry entry: + "$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f + + w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll" + + # See https://appdb.winehq.org/objectManager.php?sClass=version&iId=25478 for Focht's recipe + w_call dotnet35 + w_call dotnet40 + w_set_winver win7 + + cd "$W_CACHE/$W_PACKAGE" + + WINEDLLOVERRIDES=fusion=b "$WINE" dotnetfx45_full_x86_x64.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} + status=$? + + case $status in + 0) ;; + 105) echo "exit status $status - normal, user selected 'restart now'" ;; + 194) echo "exit status $status - normal, user selected 'restart later'" ;; + *) w_die "exit status $status - $W_PACKAGE installation failed" ;; + esac + + w_override_dlls native mscoree + + w_warn "Setting Windows version to 2003, otherwise applications using .NET 4.5 will subtly fail" + w_set_winver win2k3 +} + +verify_dotnet45() +{ + w_dotnet_verify dotnet45 +} + +#---------------------------------------------------------------- + +w_metadata dotnet_verifier dlls \ + title="MS .NET Verifier" \ + publisher="Microsoft" \ + year="2012" \ + media="download" \ + file1="netfx_5F00_setupverifier_5F00_new.zip" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/netfx_setupverifier.exe" + +load_dotnet_verifier() +{ + # http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx + # 2013/03/28: sha1sum 0eba832a0733cd47b7639463dd5a22a41e95ee6e + # 2014/01/23: sha1sum 8818f3460826145e2a66bb91727afa7cd531037b + # 2014/11/22: sha1sum 47de0b849c4c3d354df23588c709108e7816d788 + # 2015/07/31: sha1sum 32f24526a5716737281dc260451b60a641b23c7e + # 2015/12/27: sha1sum b9712da2943e057668f21f68c473657a205c5cb8 + w_download http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-08-99-90-04/netfx_5F00_setupverifier_5F00_new.zip b9712da2943e057668f21f68c473657a205c5cb8 + + cd "$W_CACHE"/dotnet_verifier + + w_try_unzip "$W_SYSTEM32_DLLS" netfx_5F00_setupverifier_5F00_new.zip netfx_setupverifier.exe +} #---------------------------------------------------------------- @@ -5104,16 +6117,36 @@ load_dsound() #---------------------------------------------------------------- -# FIXME: update winetricks_is_installed to look at installed_file2 -w_metadata flash dlls \ - title="Flash Player 11" \ - publisher="Adobe" \ +w_metadata esent dlls \ + title="MS Extensible Storage Engine" \ + publisher="Microsoft" \ year="2011" \ media="download" \ + file1="../win7sp1/windows6.1-KB976932-X86.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/esent.dll" + +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_override_dlls native,builtin esent +} + +#---------------------------------------------------------------- + +# FIXME: update winetricks_is_installed to look at installed_file2..n +w_metadata flash dlls \ + title="Flash Player 14" \ + publisher="Adobe" \ + year="2014" \ + media="download" \ file1="install_flash_player.exe" \ file2="install_flash_player_ax.exe" \ - installed_file1="$W_SYSTEM32_DLLS_WIN/Macromed/Flash/FlashUtil32_11_7_700_224_Plugin.exe" \ - installed_file2="$W_SYSTEM32_DLLS_WIN/Macromed/Flash/FlashUtil32_11_7_700_224_ActiveX.exe" \ + file3="flashplayer_14_sa.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/Macromed/Flash/FlashUtil32_14_0_0_179_Plugin.exe" \ + installed_file2="$W_SYSTEM32_DLLS_WIN/Macromed/Flash/FlashUtil32_14_0_0_176_ActiveX.exe" \ + installed_file3="$W_SYSTEM32_DLLS_WIN/Macromed/Flash/flashplayer_14_sa.exe" \ homepage="http://www.adobe.com/products/flashplayer/" load_flash() @@ -5124,32 +6157,45 @@ load_flash() # See # http://blogs.adobe.com/psirt/ # http://get.adobe.com/de/flashplayer/otherversions/ - # In theory we could install older versions like 10.3 by using zipfiles at + # Now, we install older versions by using zipfiles at # http://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html - # They don't have installers, just raw files. Let's wait until we have - # a reason to do that. # Active X plugin # 2013-03-28 #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.6.602.180/install_flash_player_ax.exe 359f231d7007c17b419f777125e0f28fffc2e6a1 - # 2003-06-24 - w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.7.700.224/install_flash_player_ax.exe fdadce901fc7da7a175f71cc8f1f2dd0db78ec8e - cd "$W_CACHE"/flash + # 2013-06-24 + # w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.7.700.224/install_flash_player_ax.exe fdadce901fc7da7a175f71cc8f1f2dd0db78ec8e + # 2014-01-21 + #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/12.0.0.38/install_flash_player_ax.exe 8deb33bcbbbbecfcbcbeb0f861d2c7492599da2b + # 2014-08-17 + #w_download https://fpdownload.macromedia.com/get/flashplayer/pdc/14.0.0.176/install_flash_player_ax.exe 16231b509d8e689dc34ae36597d41c4fb1b3a67e + # 2014-10-02 + w_download http://download.macromedia.com/pub/flashplayer/installers/archive/fp_14.0.0.176_archive.zip 40df72ab2c22bcd4442aa35eb586000776129982 - w_try $WINE install_flash_player_ax.exe ${W_OPT_UNATTENDED:+ /install} + w_try_unzip "$W_TMP" "$W_CACHE"/flash/fp_14.0.0.176_archive.zip fp_14.0.0.176_archive/14_0_r0_176/flashplayer14_0r0_176_winax.exe + cd "$W_TMP"/fp_14.0.0.176_archive/14_0_r0_176 + w_try "$WINE" flashplayer14_0r0_176_winax.exe ${W_OPT_UNATTENDED:+ /install} # Mozilla / Firefox plugin # 2013-03-28 #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.6.602.180/install_flash_player.exe bf44990ade52aa92078495ec39035d8489ff6e05 - # 2003-06-24 - w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.7.700.224/install_flash_player.exe 9c519fd5a7202c43b5713f9f6b083d970810112e + # 2013-06-24 + #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.7.700.224/install_flash_player.exe 9c519fd5a7202c43b5713f9f6b083d970810112e + # 2014-01-21 + #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/12.0.0.43/install_flash_player.exe 5a68f7aa21c4217cf801a46616fe724d601f773a + # 2014-08-17 + #w_download https://fpdownload.macromedia.com/get/flashplayer/pdc/14.0.0.179/install_flash_player.exe 1d5725fd0d50eb1361213179ffae9ee24944755a + # 2014-10-02 + w_download http://download.macromedia.com/pub/flashplayer/installers/archive/fp_14.0.0.179_archive.zip b94860ca0eff3e1420c24f9647a5f9f5e610ce34 - w_try $WINE install_flash_player.exe ${W_OPT_UNATTENDED:+ /install} + w_try_unzip "$W_TMP" "$W_CACHE"/flash/fp_14.0.0.179_archive.zip fp_14.0.0.179_archive/14_0_r0_179/flashplayer14_0r0_179_win.exe + cd "$W_TMP"/fp_14.0.0.179_archive/14_0_r0_179 + w_try "$WINE" flashplayer14_0r0_179_win.exe ${W_OPT_UNATTENDED:+ /install} - if w_workaround_wine_bug 25966 "Flash11 still needs native visual c++ 2005 runtimes" 1.5.7, - then - w_call vcrun2005 - fi + # Projector (standalone player) + # 2015-07-06 + w_download http://download.macromedia.com/pub/flashplayer/updaters/14/flashplayer_14_sa.exe 62e5bc2e88b50091847408b9d473ee4a6c185167 + w_try cp "${W_CACHE}/${W_PACKAGE}/${file3}" "$W_SYSTEM32_DLLS/Macromed/Flash" # After updating the above, you should carry the following steps out by # hand to verify that plugin works. (Ideally you'd also do it on @@ -5167,7 +6213,7 @@ load_flash() # # cd ~/winetricks/src # rm -rf ~/.wine - # sh winetricks -q flash --no-isolate firefox + # sh winetricks -q flash firefox # cd ~/.wine/drive_c/Program\ Files/Mozilla\ Firefox # wine firefox.exe http://www.adobe.com/software/flash/about # Verify that the version of flash shows up and that you're not prompted @@ -5229,91 +6275,31 @@ load_glidewrapper() { w_download http://www.zeckensack.de/glide/archive/GlideWrapper084c.exe 7a9d60a18b660473742b476465e9aea7bd5ab6f8 cd "$W_CACHE/$W_PACKAGE" - # NSIS installer - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ /S} -} -#---------------------------------------------------------------- - -w_metadata gecko dlls \ - title="Gecko (usually installed by distro)" \ - publisher="WineHQ/Mozilla" - -load_gecko() -{ - if test -f /usr/share/wine/gecko/wine_gecko-1.0.0-x86.cab && test -f /usr/share/wine/gecko/wine_gecko-1.1.0-x86.cab && test -f /usr/share/wine/gecko/wine_gecko-1.2.0-x86.msi + # The installer opens its README in a web-browser, really annoying when doing make check/test: + # FIXME: maybe we should back up this key first? + if test ${W_OPT_UNATTENDED} then - w_warn "gecko is already installed in /usr/share/wine" - else - w_warn "Please install gecko in /usr/share/wine per http://wiki.winehq.org/Gecko. http://winezeug.googlecode.com/svn/trunk/install-gecko.sh is an easy script to do that. Then you should never need to do 'winetricks gecko' again." - fi -} - -#---------------------------------------------------------------- - -w_metadata gecko110 dlls \ - title="Gecko 1.1.0 (not normally needed)" \ - publisher="WineHQ/Mozilla" \ - year="2010" \ - media="download" \ - file1="wine_gecko-1.1.0-x86.cab" \ - installed_file1="$W_SYSTEM32_DLLS_WIN/gecko/1.1.0/wine_gecko/nspr4.dll" - -load_gecko110() -{ - w_skip_windows gecko110 && return - - w_warn "You should probably not be using the gecko110 verb, see http://wiki.winehq.org/Gecko" - case `$WINE --version` in - wine-1.3.[2-9]|wine-1.3.[2-9]-*|wine-1.3.1[0-5]*) - ;; - *) - w_die "This verb only supports wine-1.3.2 to wine-1.3.15" - ;; - esac - - w_download http://downloads.sourceforge.net/project/wine/Wine%20Gecko/1.1.0/wine_gecko-1.1.0-x86.cab 1b6c637207b6f032ae8a52841db9659433482714 - - mkdir -p "$W_SYSTEM32_DLLS/gecko/1.1.0" - cd "$W_SYSTEM32_DLLS/gecko/1.1.0" - w_try_cabextract $W_UNATTENDED_DASH_Q "$W_CACHE/gecko110/wine_gecko-1.1.0-x86.cab" - - cat > "$W_TMP"/geckopath.reg <<_EOF_ + cat > "$W_TMP"/disable-browser.reg <<_EOF_ REGEDIT4 -[HKEY_CURRENT_USER\Software\Wine\MSHTML\1.1.0] -"GeckoPath"="c:\\\\windows\\\\system32\\\\gecko\\\\1.1.0\\\\wine_gecko\\\\" +[HKEY_CURRENT_USER\Software\Wine\WineBrowser] +"Browsers"="" + _EOF_ - w_try_regedit "$W_TMP_WIN"\\geckopath.reg + w_try_regedit "$W_TMP_WIN"\\disable-browser.reg - w_try_regsvr mshtml + fi + + # NSIS installer + w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S} + + if test ${W_OPT_UNATTENDED} + then + "$WINE" reg delete "HKEY_CURRENT_USER\Software\Wine\WineBrowser" /v Browsers /f || true + fi } -w_metadata gecko120 dlls \ - title="Gecko 1.2.0 (not normally needed)" \ - publisher="WineHQ/Mozilla" \ - year="2011" \ - media="download" \ - file1="wine_gecko-1.2.0-x86.msi" \ - installed_file1="$W_SYSTEM32_DLLS_WIN/gecko/1.2.0/wine_gecko/nspr4.dll" - -load_gecko120() -{ - w_skip_windows gecko120 && return - - w_warn "You should probably not be using the gecko120 verb, see http://wiki.winehq.org/Gecko" - case `$WINE --version` in - wine-0*|wine-1.[012]*|wine-1.3|wine-1.3.[0-9]|wine-1.3.1[0-4]) - w_die "This verb only supports wine-1.3.15 and higher at the moment" - ;; - esac - - w_download http://downloads.sourceforge.net/project/wine/Wine%20Gecko/1.2.0/wine_gecko-1.2.0-x86.msi 6964d1877668ab7da07a60f6dcf23fb0e261a808 - - w_try $WINE msiexec /i "$W_CACHE"/gecko120/wine_gecko-1.2.0-x86.msi $W_UNATTENDED_SLASH_Q -} - - #---------------------------------------------------------------- w_metadata gfw dlls \ @@ -5332,7 +6318,7 @@ load_gfw() # FIXME: Depends on .Net 20, but is it really needed? For now, skip it. cd "$W_CACHE"/gfw - w_try $WINE gfwlivesetupmin.exe /nodotnet $W_UNATTENDED_SLASH_Q + w_try "$WINE" gfwlivesetupmin.exe /nodotnet $W_UNATTENDED_SLASH_Q w_call msasn1 } @@ -5349,12 +6335,38 @@ w_metadata glut dlls \ load_glut() { - w_download http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip fb4731885c05b3cf2c79e85aabe8fc9949616ef4 - w_try_unzip -d "$W_DRIVE_C" "$W_CACHE"/glut/glut-3.7.6-bin.zip + w_download http://press.liacs.nl/researchdownloads/glut.win32/glut-3.7.6-bin.zip fb4731885c05b3cf2c79e85aabe8fc9949616ef4 + # FreeBSD unzip rm -rf's inside the target dir 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_warn "If you want to compile glut programs, add c:/glut-3.7.6-bin to LIB and INCLUDE" } +#---------------------------------------------------------------- + +w_metadata gmdls dlls \ + title="General MIDI DLS Collection" \ + publisher="Microsoft / Roland" \ + year="1999" \ + media="download" \ + file1="../directx8/DX81Redist.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/drivers/gm.dls" + +load_gmdls() +{ + w_download_to directx8 http://web.archive.org/web/20070403193305/http://download.microsoft.com/download/whistler/Update/8.1/W982KMeXP/EN-US/DX81Redist.exe ea2345f602741343e97a5ece5d1d2c3cc44296c3 + + w_try_unzip "$W_TMP" "$W_CACHE"/directx8/DX81Redist.exe "*/*/DirectX.cab" + w_try_cabextract -d "$W_TMP" -F gm16.dls "$W_TMP"/*/*/DirectX.cab + w_try mv "$W_TMP"/gm16.dls "$W_SYSTEM32_DLLS"/drivers/gm.dls + if test "$W_ARCH" = "win64" + then + w_try cd "$W_SYSTEM64_DLLS"/drivers + w_try ln -s ../../syswow64/drivers/gm.dls + fi +} + #---------------------------------------------------------------- # um, codecs are kind of clustered here. They probably deserve their own real category. @@ -5427,7 +6439,7 @@ load_ffdshow() { w_download $WINETRICKS_SOURCEFORGE/ffdshow-tryout/ffdshow_beta7_rev3154_20091209.exe 8534c31489e51df70ee9583438d6211e6f0696d0 cd "$W_CACHE"/ffdshow - w_try $WINE ffdshow_beta7_rev3154_20091209.exe $W_UNATTENDED_SLASH_SILENT + w_try "$WINE" ffdshow_beta7_rev3154_20091209.exe $W_UNATTENDED_SLASH_SILENT } #---------------------------------------------------------------- @@ -5463,7 +6475,9 @@ load_icodecs() # Note: this codec is insecure, see # http://support.microsoft.com/kb/954157 # Original source, ftp://download.intel.com/support/createshare/camerapack/codinstl.exe, had same checksum - w_download "http://codec.alshow.co.kr/Down/codinstl.exe" 2c5d64f472abe3f601ce352dcca75b4f02996f8a + # 2010-11-14: http://codec.alshow.co.kr/Down/codinstl.exe + # 2014-04-11: http://www.cucusoft.com/codecdownload/codinstl.exe (linked from http://www.cucusoft.com/codec.asp) + w_download "http://www.cucusoft.com/codecdownload/codinstl.exe" 2c5d64f472abe3f601ce352dcca75b4f02996f8a cd "$W_CACHE"/icodecs @@ -5511,7 +6525,7 @@ load_jet40() # FIXME: "failed with error 2" w_download http://www.autoxplorer.com/exe/Jet40SP8_9xNT.exe 8cd25342030857969ede2d8fcc34f3f7bcc2d6d4 cd "$W_CACHE"/jet40 - w_try $WINE jet40sp8_9xnt.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" jet40sp8_9xnt.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -5519,23 +6533,22 @@ load_jet40() w_metadata kde apps \ title="KDE on Windows" \ publisher="various" \ - year="2011" \ + year="2013" \ media="download" \ - file1="kdewin-installer-gui-0.9.8-1.exe" \ + file1="kdewin-installer-gui-1.0.0.exe" \ installed_exe1="$W_PROGRAMS_WIN/kde/etc/installer.ini" \ homepage="http://windows.kde.org" \ unattended="no" load_kde() { - w_download http://www.winkde.org/pub/kde/ports/win32/installer/kdewin-installer-gui-0.9.8-1.exe b31aaf24d23b9f289bf56aa21e1571efc6bea58a - + w_download http://mirrors.mit.edu/kde/stable/kdewin/installer/kdewin-installer-gui-1.0.0.exe 0d798facb7fbf11529e7ecd067e875d76adb9d78 mkdir -p "$W_PROGRAMS_UNIX/kde" - w_try cp "$W_CACHE"/kde/kdewin-installer-gui-0.9.8-1.exe "$W_PROGRAMS_UNIX/kde" + w_try cp "$W_CACHE/kde/${file1}" "$W_PROGRAMS_UNIX/kde" cd "$W_PROGRAMS_UNIX/kde" # There's no unattended option, probably because there are so many choices, # it's like cygwin - w_try $WINE kdewin-installer-gui-0.9.8-1.exe + w_try "$WINE" "${file1}" } #---------------------------------------------------------------- @@ -5543,17 +6556,17 @@ load_kde() w_metadata kindle apps \ title="Amazon Kindle" \ publisher="Amazon" \ - year="2011" \ + year="2015" \ media="download" \ - file1="KindleForPC-installer.exe" \ + file1="KindleForPC-installer-1.13.42039.exe" \ installed_exe1="$W_PROGRAMS_WIN/Amazon/Kindle/Kindle.exe" \ homepage="http://www.amazon.com/gp/feature.html/?docId=1000426311" load_kindle() { - w_download http://kindleforpc.amazon.com/36154/KindleForPC-installer.exe aca576086de7abd1d82c211dbeeb810387e046f5 + w_download http://kindleforpc.amazon.com/42039/KindleForPC-installer-1.13.42039.exe 2316102823d295fb346062e03a8bb594b93cb536 cd "$W_CACHE"/kindle - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ /S} + w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S} w_declare_exe "$W_PROGRAMS_WIN\\Amazon\\Kindle" Kindle.exe } @@ -5587,17 +6600,22 @@ w_metadata mdac27 dlls \ title="Microsoft Data Access Components 2.7 sp1" \ publisher="Microsoft" \ year="2006" \ - media="manual_download" \ + media="download" \ file1="mdac_typ.exe" \ installed_file1="$W_COMMONFILES_X86_WIN/System/ADO/msado26.tlb" load_mdac27() { + if test $W_ARCH = win64 + then + w_die "Installer doesn't support 64-bit architecture." + fi + # http://www.microsoft.com/downloads/en/details.aspx?FamilyId=9AD000F2-CAE7-493D-B0F3-AE36C570ADE8&displaylang=en - w_download_manual http://download.cnet.com/Microsoft-Data-Access-Components-MDAC-2-7-Service-Pack-1-Refresh/3000-10250_4-10729498.html mdac_typ.exe f68594d1f578c3b47bf0639c46c11c5da161feee + w_download http://web.archive.org/web/20060202021126/http://download.microsoft.com/download/3/b/f/3bf74b01-16ba-472d-9a8c-42b2b4fa0d76/mdac_typ.exe f68594d1f578c3b47bf0639c46c11c5da161feee load_native_mdac w_set_winver nt40 - w_try $WINE "$W_CACHE"/mdac27/mdac_typ.exe ${W_OPT_UNATTENDED:+ /q /C:"setup /QNT"} + w_try "$WINE" "$W_CACHE"/mdac27/mdac_typ.exe ${W_OPT_UNATTENDED:+ /q /C:"setup /QNT"} w_unset_winver } @@ -5616,19 +6634,117 @@ load_mdac28() # http://www.microsoft.com/downloads/en/details.aspx?familyid=78cac895-efc2-4f8e-a9e0-3a1afbd5922e w_download http://download.microsoft.com/download/4/a/a/4aafff19-9d21-4d35-ae81-02c48dcbbbff/MDAC_TYP.EXE 4fbc272c79da59e38818924d8575accb0af776fb load_native_mdac - w_set_winver win98 + w_set_winver nt40 cd "$W_CACHE"/mdac28 if [ $W_UNATTENDED_SLASH_Q ] then - w_try $WINE mdac_typ.exe /q /C:"setup /QNT" + w_try "$WINE" mdac_typ.exe /q /C:"setup /QNT" else - w_try $WINE mdac_typ.exe + w_try "$WINE" mdac_typ.exe fi w_unset_winver } #---------------------------------------------------------------- +w_metadata mdx dlls \ + title="Managed DirectX" \ + publisher="Microsoft" \ + year="2006" \ + media="download" \ + file1="../directx9/directx_feb2010_redist.exe" \ + installed_file1="C:/windows/assembly/GAC/microsoft.directx/1.0.2902.0__31bf3856ad364e35/microsoft.directx.dll" + +load_mdx() +{ + helper_directx_dl + + cd "$W_TMP" + + w_try_cabextract -F "*MDX*" "$W_CACHE"/directx9/$DIRECTX_NAME + w_try_cabextract -F "*.cab" *Archive.cab + + # Install assemblies + w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/1.0.2902.0" -F "microsoft.directx*" *MDX1_x86.cab + for file in mdx_*.cab + do + ver="${file%%_x86.cab}" + ver="${ver##mdx_}" + w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/$ver" -F "microsoft.directx*" "$file" + done + w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/1.0.2911.0" -F "microsoft.directx.direct3dx*" *MDX1_x86.cab + + # Add them to GAC + cd "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code" + for ver in * + do + cd "$ver" + for asm in *.dll + do + name="${asm%%.dll}" + w_try mkdir -p "$W_WINDIR_UNIX/assembly/GAC/$name/${ver}__31bf3856ad364e35" + w_try cp "$asm" "$W_WINDIR_UNIX/assembly/GAC/$name/${ver}__31bf3856ad364e35" + done + cd - + done + + # AssemblyFolders + cat > "$W_TMP"/asmfolders.reg <<_EOF_ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2902.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2902.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2903.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2903.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2904.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2904.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2905.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2905.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2906.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2906.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2907.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2907.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2908.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2908.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2909.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2909.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2910.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2910.0\\\\" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2911.0] +@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2911.0\\\\" +_EOF_ + w_try_regedit "$W_TMP_WIN"\\asmfolders.reg +} + +#---------------------------------------------------------------- + +w_metadata mf dlls \ + title="MS Media Foundation" \ + publisher="Microsoft" \ + year="2011" \ + media="download" \ + file1="../win7sp1/windows6.1-KB976932-X86.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/mf.dll" + +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_override_dlls native,builtin mf +} + +#---------------------------------------------------------------- + w_metadata mfc40 dlls \ title="MS mfc40 (Microsoft Foundation Classes from Visual C++ 4.0)" \ publisher="Microsoft" \ @@ -5639,7 +6755,7 @@ w_metadata mfc40 dlls \ load_mfc40() { - w_download http://activex.microsoft.com/controls/vc/mfc40.cab 53c570e2c811674d6e4fa46cff5a3a04cd0ffc24 + w_download https://web.archive.org/web/20070316220826/http://activex.microsoft.com/controls/vc/mfc40.cab 53c570e2c811674d6e4fa46cff5a3a04cd0ffc24 w_try_cabextract -d "$W_TMP" "$W_CACHE"/mfc40/mfc40.cab w_try_cabextract -d "$W_SYSTEM32_DLLS" -F *40.dll "$W_TMP"/mfc40.exe } @@ -5649,17 +6765,17 @@ load_mfc40() w_metadata mozillabuild apps \ title="Mozilla build environment" \ publisher="The Mozilla Foundation" \ - year="2010" \ + year="2015" \ media="download" \ - file1="MozillaBuildSetup-1.5.1.exe" \ - installed_file1="c:/mozilla-build/start-l10n.bat" \ + file1="MozillaBuildSetup-2.0.0.exe" \ + installed_file1="c:/mozilla-build/moztools/bin/nsinstall.exe" \ homepage="https://wiki.mozilla.org/MozillaBuild" load_mozillabuild() { - w_download http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.5.1.exe 216c52eafe42df7559e8451f4e40a28e9c0f8133 + w_download http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-2.0.0.exe daba4bc03ae9014c68611fd36b05dcc4083c6fdb cd "$W_CACHE/$W_PACKAGE" - w_try $WINE MozillaBuildSetup-1.5.1.exe $W_UNATTENDED_SLASH_S + w_try "$WINE" MozillaBuildSetup-2.0.0.exe $W_UNATTENDED_SLASH_S } #---------------------------------------------------------------- @@ -5669,12 +6785,12 @@ w_metadata msacm32 dlls \ publisher="Microsoft" \ year="2003" \ media="download" \ - file1="../xpsp2/WindowsXP-KB835935-SP2-ENU.exe" \ + file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \ installed_file1="$W_SYSTEM32_DLLS_WIN/msacm32.dll" load_msacm32() { - helper_xpsp2 i386/msacm32.dl_ + helper_xpsp3 i386/msacm32.dl_ w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/msacm32.dl_ w_override_dlls native,builtin msacm32 } @@ -5702,35 +6818,57 @@ w_metadata msctf dlls \ publisher="Microsoft" \ year="2003" \ media="download" \ - file1="../xpsp2/WindowsXP-KB835935-SP2-ENU.exe" \ + file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \ installed_file1="$W_SYSTEM32_DLLS_WIN/msctf.dll" load_msctf() { - helper_xpsp2 i386/msctf.dl_ + helper_xpsp3 i386/msctf.dl_ w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/msctf.dl_ w_override_dlls native,builtin msctf } #---------------------------------------------------------------- +w_metadata msdxmocx dlls \ + title="MS Windows Media Player 2 ActiveX control for VB6" \ + publisher="Microsoft" \ + year="1999" \ + media="download" \ + file1="mpfull.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/msdxm.ocx" + +load_msdxmocx() +{ + # http://www.oldapps.com/windows_media_player.php?old_windows_media_player=3?download + # Iceweasel gives a security warning (!), but clamscan and virustotal.com report it as clean: + w_download http://download.oldapps.com/Windows_Media/mpfull.exe 44aef252a660612a01ee13271d84d2da3885e58d + + w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_CACHE/$W_PACKAGE/${file1}" + w_try_regsvr msdxm.ocx +} + +#---------------------------------------------------------------- + w_metadata msflxgrd dlls \ title="MS FlexGrid Control (msflxgrd.ocx)" \ publisher="Microsoft" \ year="2009" \ media="download" \ - file1="msflxgrd.cab" \ - installed_file1="$W_SYSTEM32_DLLS_WIN/MSFlxGrd.Ocx" + file1="MsFlxGrd.cab" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/MSFLXGRD.OCX" load_msflxgrd() { # http://msdn.microsoft.com/en-us/library/aa240864(VS.60).aspx # may 2011: f497c3b390cd80d5bcd1f13d5c0c68b206369aa7 - w_download http://activex.microsoft.com/controls/vb6/msflxgrd.cab f497c3b390cd80d5bcd1f13d5c0c68b206369aa7 + # 2015/11/09: Removed from Microsoft.com, archive.org has an older copy: + # 2015/11/09: 3d6c04e923781d4ce0d3ab62189b8de352ab25d5 + w_download https://web.archive.org/web/20070127040448/http://activex.microsoft.com/controls/vb6/MsFlxGrd.cab 3d6c04e923781d4ce0d3ab62189b8de352ab25d5 - w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msflxgrd/msflxgrd.cab + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msflxgrd/${file1} w_try cp -f "$W_TMP"/[Mm][Ss][Ff][Ll][Xx][Gg][Rr][Dd].[Oo][Cc][Xx] "$W_SYSTEM32_DLLS" - w_try_regsvr MSFlxGrd.Ocx + w_try_regsvr MSFLXGRD.OCX } #---------------------------------------------------------------- @@ -5741,7 +6879,7 @@ w_metadata mshflxgd dlls \ year="2009" \ media="download" \ file1="MSHFLXGD.CAB" \ - installed_file1="$W_SYSTEM32_DLLS_WIN/mshflxgd.ocx" + installed_file1="$W_SYSTEM32_DLLS_WIN/MSHFLXGD.OCX" load_mshflxgd() { @@ -5749,11 +6887,13 @@ load_mshflxgd() # orig: 5f9c7a81022949bfe39b50f2bbd799c448bb7377 # Jan 2009: 7ad74e589d5eefcee67fa14e65417281d237a6b6 # May 2009: bd8aa796e16e5f213414af78931e0379d9cbe292 - w_download http://activex.microsoft.com/controls/vb6/MSHFLXGD.CAB bd8aa796e16e5f213414af78931e0379d9cbe292 + # 2015/11/09: Removed from Microsoft.com, archive.org has the original copy: + # 2015/11/09: 5f9c7a81022949bfe39b50f2bbd799c448bb7377 + w_download https://web.archive.org/web/20061011041549/http://activex.microsoft.com/controls/vb6/MSHFLXGD.CAB 5f9c7a81022949bfe39b50f2bbd799c448bb7377 w_try_cabextract --directory="$W_TMP" "$W_CACHE"/mshflxgd/MSHFLXGD.CAB w_try cp -f "$W_TMP"/[Mm][Ss][Hh][Ff][Ll][Xx][Gg][Dd].[Oo][Cc][Xx] "$W_SYSTEM32_DLLS" - w_try_regsvr mshflxgd.ocx + w_try_regsvr MSHFLXGD.OCX } #---------------------------------------------------------------- @@ -5828,19 +6968,39 @@ load_msmask() # http://bugs.winehq.org/show_bug.cgi?id=2934 # old: 3c6b26f68053364ea2e09414b615dbebafb9d5c3 # May 2009: 30e55679e4a13fe4d9620404476f215f93239292 - w_download http://activex.microsoft.com/controls/vb6/MSMASK32.CAB 30e55679e4a13fe4d9620404476f215f93239292 + # 2015/11/09: Removed from Microsoft.com, archive.org has an older copy: + # 2015/11/09: bdd2bb3a32d18926a048f302aff18b1e6d250d9d + w_download https://web.archive.org/web/20061011040848/http://activex.microsoft.com/controls/vb6/MSMASK32.CAB bdd2bb3a32d18926a048f302aff18b1e6d250d9d w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msmask/MSMASK32.CAB w_try cp -f "$W_TMP"/[Mm][Ss][Mm][Aa][Ss][Kk]32.[Oo][Cc][Xx] "$W_SYSTEM32_DLLS"/msmask32.ocx w_try_regsvr msmask32.ocx } + #---------------------------------------------------------------- + +w_metadata msftedit dlls \ + title="Microsoft RichEdit Control" \ + publisher="Microsoft" \ + year="2011" \ + media="download" \ + file1="../win7sp1/windows6.1-KB976932-X86.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/msftedit.dll" + +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_override_dlls native,builtin mstfedit +} + #---------------------------------------------------------------- w_metadata msxml3 dlls \ title="MS XML Core Services 3.0" \ publisher="Microsoft" \ year="2005" \ - media="manual_download" \ + media="download" \ file1="msxml3.msi" \ installed_file1="$W_SYSTEM32_DLLS_WIN/msxml3.dll" @@ -5849,15 +7009,13 @@ load_msxml3() # Service Pack 5 #w_download http://download.microsoft.com/download/a/5/e/a5e03798-2454-4d4b-89a3-4a47579891d8/msxml3.msi # Service Pack 7 - #w_download http://download.microsoft.com/download/8/8/8/888f34b7-4f54-4f06-8dac-fa29b19f33dd/msxml3.msi d4c2178dfb807e1a0267fce0fd06b8d51106d913 - # Hmm. Anyone know of a better source? At least it has the right checksum. - w_download_manual http://download.cnet.com/Microsoft-XML-Parser-MSXML-3-0-Service-Pack-7-SP7/3000-7241_4-10731613.html msxml3.msi d4c2178dfb807e1a0267fce0fd06b8d51106d913 + w_download http://web.archive.org/web/20070314193356/http://download.microsoft.com/download/8/8/8/888f34b7-4f54-4f06-8dac-fa29b19f33dd/msxml3.msi d4c2178dfb807e1a0267fce0fd06b8d51106d913 # it won't install on top of wine's msxml3, which has a pretty high version number, so delete wine's fake dll rm "$W_SYSTEM32_DLLS"/msxml3.dll w_override_dlls native msxml3 cd "$W_CACHE"/msxml3 - w_try $WINE msiexec /i msxml3.msi $W_UNATTENDED_SLASH_Q + w_try "$WINE" msiexec /i msxml3.msi $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -5880,7 +7038,7 @@ load_msxml4() w_download http://download.microsoft.com/download/A/2/D/A2D8587D-0027-4217-9DAD-38AFDB0A177E/msxml.msi aa70c5c1a7a069af824947bcda1d9893a895318b w_override_dlls native,builtin msxml4 cd "$W_CACHE"/msxml4 - w_try $WINE msiexec /i msxml.msi $W_UNATTENDED_SLASH_Q + w_try "$WINE" msiexec /i msxml.msi $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -5897,10 +7055,44 @@ load_msxml6() { # Service Pack 1 # http://www.microsoft.com/downloads/details.aspx?familyid=D21C292C-368B-4CE1-9DAB-3E9827B70604 - w_download http://download.microsoft.com/download/e/a/f/eafb8ee7-667d-4e30-bb39-4694b5b3006f/msxml6_x86.msi 5125220e985b33c946bbf9f60e2b222c7570bfa2 + if [ $W_ARCH = win64 ] + then + w_download http://download.microsoft.com/download/e/a/f/eafb8ee7-667d-4e30-bb39-4694b5b3006f/msxml6_x64.msi ca0c0814a9c7024583edb997296aad7cb0a3cbf7 + else + w_download http://download.microsoft.com/download/e/a/f/eafb8ee7-667d-4e30-bb39-4694b5b3006f/msxml6_x86.msi 5125220e985b33c946bbf9f60e2b222c7570bfa2 + fi w_override_dlls native,builtin msxml6 rm -f "$W_SYSTEM32_DLLS/msxml6.dll" - w_try $WINE msiexec /i "$W_CACHE"/msxml6/msxml6_x86.msi $W_UNATTENDED_SLASH_Q + if [ $W_ARCH = win64 ] + then + rm -f "$W_SYSTEM64_DLLS/msxml6.dll" + w_try_msiexec64 /i "$W_CACHE"/msxml6/msxml6_x64.msi + else + w_try "$WINE" msiexec /i "$W_CACHE"/msxml6/msxml6_x86.msi $W_UNATTENDED_SLASH_Q + fi +} + +#---------------------------------------------------------------- + +w_metadata nuget dlls \ + title="NuGet Package manager" \ + publisher="Outercurve Foundation" \ + year="2013" \ + media="download" \ + file1="nuget.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/nuget.exe" \ + homepage="https://nuget.org" + +load_nuget() +{ + w_call dotnet40 + # 2014-01-22: d4082afc4f89df195fa1e83ee1cf02bce3dd2f13 + # 2014-02-26: 9bc98ced9c2d2b51ab687f86b5580913c025b8b0 + # 2014-04-17: 3210cc9a2e575384d59b0604c892bccce760e9b6 + # probably changes too rapidly to check + w_download https://nuget.org/nuget.exe + w_try cp "$W_CACHE/$W_PACKAGE"/nuget.exe "$W_SYSTEM32_DLLS" + w_warn "To run nuget, use the commandline \"$WINE nuget\"." } #---------------------------------------------------------------- @@ -5918,7 +7110,72 @@ load_ogg() { w_download http://downloads.xiph.org/releases/oggdsf/opencodecs_0.85.17777.exe 386cf7cd29ffcbf8705eff8c8233de448ecf33ab cd "$W_CACHE"/ogg - w_try $WINE $file1 $W_UNATTENDED_SLASH_S + w_try "$WINE" $file1 $W_UNATTENDED_SLASH_S +} + +#---------------------------------------------------------------- + +w_metadata ollydbg110 apps \ + title="OllyDbg" \ + publisher="ollydbg.de" \ + year="2004" \ + media="download" \ + file1="odbg110.zip" \ + installed_file1="c:/ollydbg110/OLLYDBG.EXE" \ + homepage="http://ollydbg.de" + +load_ollydbg110() +{ + # the graphical user interface is unreadable without having corefonts installed + w_call corefonts + + w_download http://www.ollydbg.de/odbg110.zip 8403d8049a0841887c16cf64889596ad52b84da8 + w_try_unzip "$W_DRIVE_C/ollydbg110" "$W_CACHE/$W_PACKAGE"/odbg110.zip +} + +#---------------------------------------------------------------- + +w_metadata ollydbg200 apps \ + title="OllyDbg" \ + publisher="ollydbg.de" \ + year="2010" \ + media="download" \ + file1="odbg200.zip" \ + installed_file1="c:/ollydbg200/ollydbg.exe" \ + homepage="http://ollydbg.de" + +load_ollydbg200() +{ + # the graphical user interface is unreadable without having corefonts installed + w_call corefonts + + w_download http://www.ollydbg.de/odbg200.zip 68e572d94a0555e8f14516b55b6b96b879900fe9 + w_try_unzip "$W_DRIVE_C/ollydbg200" "$W_CACHE/$W_PACKAGE"/odbg200.zip +} + +#---------------------------------------------------------------- + +w_metadata ollydbg201 apps \ + title="OllyDbg" \ + publisher="ollydbg.de" \ + year="2013" \ + media="download" \ + file1="odbg201.zip" \ + installed_file1="c:/ollydbg201/ollydbg.exe" \ + homepage="http://ollydbg.de" + +load_ollydbg201() +{ + # the graphical user interface is unreadable without having corefonts installed + w_call corefonts + + w_download http://www.ollydbg.de/odbg201.zip d41fe77a2801d38476f20468ab61ddce14c3abb8 + w_try_unzip "$W_DRIVE_C/ollydbg201" "$W_CACHE/$W_PACKAGE"/odbg201.zip + + # ollydbg201 is affected by wine bug 36012 if debug symbols are available. + # As a workaround native 'dbghelp' can be installed. We don't do this automatically + # because for some people it might work even without additional workarounds. + # Older versions of OllyDbg were not affected by this bug. } #---------------------------------------------------------------- @@ -5943,13 +7200,13 @@ load_openwatcom() # Pick smallest installation that supports 16 bit C and C++ cd "$W_TMP" cp "$W_CACHE"/openwatcom/open-watcom-c-win32-1.9.exe . - w_try_unzip open-watcom-c-win32-1.9.exe setup.inf + w_try_unzip . open-watcom-c-win32-1.9.exe setup.inf sed -i 's/tools16=.*/tools16=true/' setup.inf w_try zip -f open-watcom-c-win32-1.9.exe - w_try $WINE open-watcom-c-win32-1.9.exe -s + w_try "$WINE" open-watcom-c-win32-1.9.exe -s else cd "$W_CACHE/$W_PACKAGE" - w_try $WINE open-watcom-c-win32-1.9.exe + w_try "$WINE" open-watcom-c-win32-1.9.exe fi if test ! -f "$W_DRIVE_C"/WATCOM/binnt/wcc.exe @@ -5974,7 +7231,7 @@ load_pdh() w_download http://download.microsoft.com/download/platformsdk/Redist/5.0.2195.2668/NT4/EN-US/pdhinst.exe f42448660def8cd7f42b34aa7bc7264745f4425e w_try_cabextract --directory="$W_TMP" "$W_CACHE"/pdh/pdhinst.exe - w_try_unzip -d "$W_TMP" "$W_TMP"/pdh.exe + w_try_unzip "$W_TMP" "$W_TMP"/pdh.exe w_try cp -f "$W_TMP"/x86/Pdh.Dll "$W_SYSTEM32_DLLS"/pdh.dll } @@ -5983,19 +7240,17 @@ load_pdh() w_metadata physx dlls \ title="PhysX" \ publisher="NVidia" \ - year="2010" \ + year="2014" \ media="download" \ - file1="PhysX_9.10.0129_SystemSoftware.exe" \ + file1="PhysX-9.14.0702-SystemSoftware.msi" \ installed_file1="$W_PROGRAMS_WIN/NVIDIA Corporation/PhysX/Engine/v2.8.3/PhysXCore.dll" load_physx() { - # http://www.nvidia.com/object/physx_9.09.0814.html - # w_download http://us.download.nvidia.com/Windows/9.09.0814/PhysX_9.09.0814_SystemSoftware.exe e19f7c3385a4a68e7acb85301bb4d2d0d1eaa1e2 - # http://www.nvidia.com/object/physx_9.10.0129.html - w_download http://us.download.nvidia.com/Windows/9.10.0129/PhysX_9.10.0129_SystemSoftware.exe 33a8b54d842c7246946de15b1a48209c386c9c4b + # Has a minor issue, see bug report http://bugs.winehq.org/show_bug.cgi?id=34167 + w_download http://uk.download.nvidia.com/Windows/9.14.0702/PhysX-9.14.0702-SystemSoftware.msi 81e2d38e2356e807ad80cdf150ed5acfff839c8b cd "$W_CACHE"/physx - w_try $WINE PhysX_9.10.0129_SystemSoftware.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" msiexec /i PhysX-9.14.0702-SystemSoftware.msi $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -6018,6 +7273,28 @@ load_pngfilt() #---------------------------------------------------------------- +w_metadata qdvd dlls \ + title="qdvd.dll (from Directx 9 user redistributable)" \ + publisher="Microsoft" \ + year="2010" \ + media="download" \ + file1="../directx9/directx_feb2010_redist.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/qdvd.dll" + +load_qdvd() +{ + helper_directx_dl + + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F qdvd.dll "$W_TMP/dxnt.cab" + + w_try_regsvr qdvd.dll + + w_override_dlls native qdvd +} + +#---------------------------------------------------------------- + w_metadata quartz dlls \ title="quartz.dll (from Directx 9 user redistributable)" \ publisher="Microsoft" \ @@ -6073,7 +7350,7 @@ load_quicktime72() fi cd "$W_CACHE"/quicktime72 - w_try $WINE quicktimeplayer72.exe ALLUSERS=1 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No $QUICKTIME_QUIET > /dev/null 2>&1 + w_try "$WINE" quicktimeplayer72.exe ALLUSERS=1 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No $QUICKTIME_QUIET > /dev/null 2>&1 if w_workaround_wine_bug 11681 then @@ -6084,7 +7361,7 @@ load_quicktime72() w_warn "In Quicktime preferences, check Advanced / Safe Mode (gdi), or movies won't play." if test "$W_UNATTENDED_SLASH_Q" = "" then - w_try $WINE control "$W_PROGRAMS_WIN\\QuickTime\\QTSystem\\QuickTime.cpl" + w_try "$WINE" control "$W_PROGRAMS_WIN\\QuickTime\\QTSystem\\QuickTime.cpl" else # FIXME: script the control panel with autohotkey? # We could probably also overwrite QuickTime.qtp but @@ -6128,7 +7405,7 @@ load_quicktime76() fi cd "$W_CACHE"/quicktime76 - w_try $WINE QuickTimeInstaller.exe ALLUSERS=1 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No $QUICKTIME_QUIET > /dev/null 2>&1 + w_try "$WINE" QuickTimeInstaller.exe ALLUSERS=1 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No $QUICKTIME_QUIET > /dev/null 2>&1 if w_workaround_wine_bug 11681 then @@ -6139,7 +7416,7 @@ load_quicktime76() w_warn "In Quicktime preferences, check Advanced / Safe Mode (gdi), or movies won't play." if test "$W_UNATTENDED_SLASH_Q" = "" then - w_try $WINE control "$W_PROGRAMS_WIN\\QuickTime\\QTSystem\\QuickTime.cpl" + w_try "$WINE" control "$W_PROGRAMS_WIN\\QuickTime\\QTSystem\\QuickTime.cpl" else # FIXME: script the control panel with autohotkey? # We could probably also overwrite QuickTime.qtp but @@ -6152,6 +7429,7 @@ load_quicktime76() #---------------------------------------------------------------- w_metadata remove_mono settings \ + title_uk="Видалити вбудоване wine-mono" \ title="Remove builtin wine-mono" load_remove_mono() @@ -6161,7 +7439,7 @@ load_remove_mono() mono_uuid="`$WINE uninstaller --list | grep Mono | cut -f1 -d\|`" if test "$mono_uuid" then - $WINE uninstaller --remove $mono_uuid + "$WINE" uninstaller --remove $mono_uuid else w_warn "Mono does not appear to be installed." fi @@ -6214,7 +7492,7 @@ load_riched30() 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_override_dlls native,builtin riched30 + w_override_dlls native,builtin riched20 } #---------------------------------------------------------------- @@ -6229,7 +7507,7 @@ w_metadata richtx32 dlls \ load_richtx32() { - w_download http://activex.microsoft.com/controls/vb6/richtx32.cab da404b566df3ad74fe687c39404a36c3e7cadc07 + w_download https://web.archive.org/web/20150815181727/http://activex.microsoft.com/controls/vb6/richtx32.cab da404b566df3ad74fe687c39404a36c3e7cadc07 w_try_cabextract "$W_CACHE"/richtx32/richtx32.cab -d "$W_SYSTEM32_DLLS" -F RichTx32.ocx w_try_regsvr RichTx32.ocx } @@ -6248,7 +7526,7 @@ load_sdl() { # http://www.libsdl.org/download-1.2.php w_download http://www.libsdl.org/release/SDL-1.2.14-win32.zip d22c71d1c2bdf283548187c4b0bd7ef9d0c1fb23 - w_try_unzip "$W_CACHE"/sdl/SDL-1.2.14-win32.zip -d "$W_SYSTEM32_DLLS" SDL.dll + w_try_unzip "$W_SYSTEM32_DLLS" "$W_CACHE"/sdl/SDL-1.2.14-win32.zip SDL.dll } #---------------------------------------------------------------- @@ -6271,6 +7549,24 @@ load_secur32() #---------------------------------------------------------------- +w_metadata setupapi dlls \ + title="MS Setup API" \ + publisher="Microsoft" \ + year="2004" \ + media="download" \ + file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/setupapi.dll" + +load_setupapi() +{ + helper_xpsp3 i386/setupapi.dl_ + w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/setupapi.dl_ + + w_override_dlls native,builtin setupapi +} + +#---------------------------------------------------------------- + w_metadata shockwave dlls \ title="Shockwave" \ publisher="Adobe" \ @@ -6282,7 +7578,7 @@ w_metadata shockwave dlls \ load_shockwave() { # Not silent enough, use msi instead #w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/Shockwave_Installer_Full.exe 840e34e9b067cf247bfa9092665b8966158f38e3 - #w_try $WINE "$W_CACHE"/Shockwave_Installer_Full.exe $W_UNATTENDED_SLASH_S + #w_try "$WINE" "$W_CACHE"/Shockwave_Installer_Full.exe $W_UNATTENDED_SLASH_S # old sha1sum: 6a91a9da4b54c3fdc97130a15e1a173117e5f4ff # 2009-07-31 sha1sum: 0bb506ef67a268e8d3fb6c7ce556320ee10b9da5 # 2009-12-13 sha1sum: d35649883bf13cb1a86f5650e1050d15533ac0f4 @@ -6297,10 +7593,20 @@ load_shockwave() { # 2012-04-26 sha1sum: 48b1a44b2c12c486916d641f3b4e20abffb3d6e4 # 2012-08-08 sha1sum: 3c4d531ccf0bb5788f1c197c63e9c0aa89885ee6 # 2013-06-15 sha1sum: 9c02499deaf567bde7d827493705e5680833d02e + # 2014-01-22 sha1sum: c8f1b2c137a1373d591f7c1d48db9c6baa961caf + # 2014-02-26 sha1sum: ae2855b729bfaedc766f3addd8c2b74eac576909 + # 2014-04-15 sha1sum: c2ea56450fb4a5bac66cb7d70e3b522431521787 + # 2014-05-21 sha1sum: d95d1a14ee264235b29e093105bd2baa8b06eb12 + # 2014-11-22 sha1sum: 644d3228654ded798eabe40e7044b96b90e742f6 + # 2015-03-30 sha1sum: 9f2d4d929e7210ae9fb633881127b21586ffd8ce + # 2015-04-27 sha1sum: 244e6a5c5fa2dd26c136bc5b402f6cad588763d7 + # 2015-08-02 sha1sum: e2efa2eb7db0a6de08905cd61bb3efcf58fda994 + # 2015-11-09 sha1sum: d13420a6fdc4f8d9c45c5ee6767974f0f0054cdc + # 2015-12-27 sha1sum: 3ac6d85e54dffb2940c89fc10e63363a47ec96d0 - w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/sw_lic_full_installer.msi 9c02499deaf567bde7d827493705e5680833d02e + w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/sw_lic_full_installer.msi 3ac6d85e54dffb2940c89fc10e63363a47ec96d0 cd "$W_CACHE"/shockwave - w_try $WINE msiexec /i sw_lic_full_installer.msi $W_UNATTENDED_SLASH_Q + w_try "$WINE" msiexec /i sw_lic_full_installer.msi $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -6318,13 +7624,13 @@ load_speechsdk() # http://www.microsoft.com/download/en/details.aspx?id=10121 w_download http://download.microsoft.com/download/B/4/3/B4314928-7B71-4336-9DE7-6FA4CF00B7B3/SpeechSDK51.exe f69efaee8eb47f8c7863693e8b8265a3c12c4f51 - w_try_unzip -d "$W_TMP" "$W_CACHE"/speechsdk/SpeechSDK51.exe + w_try_unzip "$W_TMP" "$W_CACHE"/speechsdk/SpeechSDK51.exe # Otherwise it only installs the SDK and not the redistributable: w_set_winver win2k cd "$W_TMP" - w_try $WINE msiexec /i "Microsoft Speech SDK 5.1.msi" $W_UNATTENDED_SLASH_Q + w_try "$WINE" msiexec /i "Microsoft Speech SDK 5.1.msi" $W_UNATTENDED_SLASH_Q w_unset_winver } @@ -6336,22 +7642,40 @@ w_metadata tabctl32 dlls \ publisher="Microsoft" \ year="2009" \ media="download" \ - file1="tabctl32.cab" \ + file1="TABCTL32.CAB" \ installed_file1="$W_SYSTEM32_DLLS_WIN/tabctl32.ocx" load_tabctl32() { # http://msdn.microsoft.com/en-us/library/aa240864(VS.60).aspx # Nov 2012: tabctl32 - w_download http://activex.microsoft.com/controls/vb6/tabctl32.cab beca51d05924a5466ab80eb0f8d0cdf8bc1ac697 + w_download https://web.archive.org/web/20110818064708/http://activex.microsoft.com/controls/vb6/TABCTL32.CAB beca51d05924a5466ab80eb0f8d0cdf8bc1ac697 - w_try_cabextract --directory="$W_TMP" "$W_CACHE"/tabctl32/tabctl32.cab + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/tabctl32/${file1} w_try cp -f "$W_TMP"/[Tt][Aa][Bb][Cc][Tt][Ll][3][2].[Oo][Cc][Xx] "$W_SYSTEM32_DLLS" w_try_regsvr tabctl32.ocx } #---------------------------------------------------------------- +w_metadata updspapi dlls \ + title="Windows Update Service API" \ + publisher="Microsoft" \ + year="2004" \ + media="download" \ + file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/updspapi.dll" + +load_updspapi() +{ + helper_xpsp3 i386/update/updspapi.dll + w_try cp -f "$W_TMP"/i386/update/updspapi.dll "$W_SYSTEM32_DLLS" + + w_override_dlls native,builtin updspapi +} + +#---------------------------------------------------------------- + w_metadata usp10 dlls \ title="Uniscribe 1.325 " \ publisher="Microsoft" \ @@ -6384,8 +7708,10 @@ load_vb2run() { # Not referenced on MS web anymore, but the old Microsoft Software Library FTP still has it. # See ftp://ftp.microsoft.com/Softlib/index.txt - w_download ftp://$ftp_microsoft_com/Softlib/MSLFILES/VBRUN200.EXE ac0568b73ee375408778e9b505df995f79ab907e - w_try_unzip -d "$W_TMP" "$W_CACHE"/vb2run/VBRUN200.EXE + # 2014/05/31: Microsoft FTP is down ftp://$ftp_microsoft_com/Softlib/MSLFILES/VBRUN200.EXE + # 2015/08/10: chatnfiles is down, conradshome.com is up (and has a LOT of old MS installers archived!) + w_download http://www.conradshome.com/win31/archive/softlib/vbrun200.exe ac0568b73ee375408778e9b505df995f79ab907e + w_try_unzip "$W_TMP" "$W_CACHE"/vb2run/VBRUN200.EXE w_try cp -f "$W_TMP/VBRUN200.DLL" "$W_SYSTEM32_DLLS" } @@ -6403,7 +7729,7 @@ load_vb3run() { # See http://support.microsoft.com/kb/196285 w_download http://download.microsoft.com/download/vb30/utility/1/w9xnt4/en-us/vb3run.exe 518fcfefde9bf680695cadd06512efadc5ac2aa7 - w_try_unzip -d "$W_TMP" "$W_CACHE"/vb3run/vb3run.exe + w_try_unzip "$W_TMP" "$W_CACHE"/vb3run/vb3run.exe w_try cp -f "$W_TMP/Vbrun300.dll" "$W_SYSTEM32_DLLS" } @@ -6421,7 +7747,7 @@ load_vb4run() { # See http://support.microsoft.com/kb/196286 w_download http://download.microsoft.com/download/vb40ent/sample27/1/w9xnt4/en-us/vb4run.exe 83e968063272e97bfffd628a73bf0ff5f8e1023b - w_try_unzip -d "$W_TMP" "$W_CACHE"/vb4run/vb4run.exe + 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" } @@ -6440,7 +7766,7 @@ load_vb5run() { w_download http://download.microsoft.com/download/vb50pro/utility/1/win98/en-us/msvbvm50.exe 28bfaf09b8ac32cf5ffa81252f3e2fadcb3a8f27 cd "$W_CACHE"/vb5run - w_try $WINE msvbvm50.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" msvbvm50.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -6449,7 +7775,7 @@ w_metadata vb6run dlls \ title="MS Visual Basic 6 runtime sp6" \ publisher="Microsoft" \ year="2004" \ - media="manual_download" \ + media="download" \ file1="vbrun60sp6.exe" \ installed_file1="$W_SYSTEM32_DLLS_WIN/MSVBVM60.DLL" @@ -6458,9 +7784,9 @@ load_vb6run() # http://support.microsoft.com/kb/290887 if test ! -f "$W_CACHE"/vb6run/vbrun60sp6.exe then - w_download_manual "http://download.cnet.com/Service-Pack-6-for-Visual-Basic-6-0-Run-Time-Redistribution-Pack-vbrun60sp6-exe/3000-2206_4-10726557.html?tag=downloadRatingModule;summaryRatings" VB6.0-KB290887-X86.exe 73ef177008005675134d2f02c6f580515ab0d842 + w_download http://download.microsoft.com/download/5/a/d/5ad868a0-8ecd-4bb0-a882-fe53eb7ef348/VB6.0-KB290887-X86.exe 73ef177008005675134d2f02c6f580515ab0d842 - w_try $WINE "$W_CACHE"/vb6run/VB6.0-KB290887-X86.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q + w_try "$WINE" "$W_CACHE"/vb6run/VB6.0-KB290887-X86.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q if test ! -f "$W_TMP"/vbrun60sp6.exe then w_die vbrun60sp6.exe not found @@ -6476,7 +7802,7 @@ load_vb6run() cd "$W_CACHE"/vb6run # Exits with status 43 for some reason? - $WINE vbrun60sp6.exe $W_UNATTENDED_SLASH_Q + "$WINE" vbrun60sp6.exe $W_UNATTENDED_SLASH_Q status=$? case $status in @@ -6492,7 +7818,7 @@ winetricks_vcrun6_helper() { then w_download_to vcrun6 http://download.microsoft.com/download/vc60pro/Update/2/W9XNT4/EN-US/VC6RedistSetup_deu.exe a8c4dd33e281c166488846a10edf97ff0ce37044 - w_try $WINE "$W_CACHE"/vcrun6/vc6redistsetup_deu.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q + w_try "$WINE" "$W_CACHE"/vcrun6/vc6redistsetup_deu.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q if test ! -f "$W_TMP"/vcredist.exe then w_die vcredist.exe not found @@ -6520,7 +7846,7 @@ load_vcrun6() rm -f "$W_SYSTEM32_DLLS"/oleaut32.dll rm -f "$W_SYSTEM32_DLLS"/olepro32.dll rm -f "$W_SYSTEM32_DLLS"/stdole2.tlb - $WINE "$W_CACHE"/vcrun6/vcredist.exe + "$WINE" "$W_CACHE"/vcrun6/vcredist.exe status=$? case $status in @@ -6573,13 +7899,13 @@ w_metadata vcrun6sp6 dlls \ title="Visual C++ 6 sp6 libraries (with fixes in atl and mfc)" \ publisher="Microsoft" \ year="2004" \ - media="manual_download" \ + media="download" \ file1="Vs6sp6.exe" \ installed_file1="$W_SYSTEM32_DLLS_WIN/mfc42.dll" load_vcrun6sp6() { - w_download_manual "http://download.cnet.com/Service-Pack-6-for-Visual-Basic-6-0-Visual-C-6-0-with-Visual-Source-Safe-6-0d/3000-2206_4-10726553.html?tag=rb_content;contentBody" Vs6sp6.exe 2292437a8967349261c810ae8b456592eeb76620 + w_download http://download.microsoft.com/download/1/9/f/19fe4660-5792-4683-99e0-8d48c22eed74/Vs6sp6.exe 2292437a8967349261c810ae8b456592eeb76620 # No EULA is presented when passing command-line extraction arguments, # so we'll simplify extraction with cabextract. @@ -6593,7 +7919,7 @@ load_vcrun6sp6() w_try rm -f "$W_SYSTEM32_DLLS"/olepro32.dll w_try rm -f "$W_SYSTEM32_DLLS"/stdole2.tlb # vcredist still exits with status 43. Anyone know why? - $WINE vcredist.exe + "$WINE" vcredist.exe status=$? case $status in @@ -6623,7 +7949,7 @@ load_vcrun2003() # Sadly, I know of no Microsoft URL for these echo "Installing BZFlag (which comes with the Visual C++ 2003 runtimes)" w_download $WINETRICKS_SOURCEFORGE/bzflag/BZEditW32_1.6.5_Installer.exe bdd1b32c4202fd77e6513fd507c8236888b09121 - w_try $WINE "$W_CACHE"/vcrun2003/BZEditW32_1.6.5_Installer.exe $W_UNATTENDED_SLASH_S + w_try "$WINE" "$W_CACHE"/vcrun2003/BZEditW32_1.6.5_Installer.exe $W_UNATTENDED_SLASH_S w_try cp "$W_PROGRAMS_X86_UNIX/BZEdit1.6.5"/m*71* "$W_SYSTEM32_DLLS" } @@ -6653,7 +7979,7 @@ load_vcrun2005() cd "$W_CACHE"/vcrun2005 w_override_dlls native,builtin atl80 msvcm80 msvcp80 msvcr80 vcomp - w_try $WINE $file1 $W_UNATTENDED_SLASH_Q + w_try "$WINE" $file1 $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -6672,9 +7998,9 @@ load_vcrun2008() # http://www.microsoft.com/technet/security/bulletin/MS11-025.mspx or # http://support.microsoft.com/kb/2538242 w_download http://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe 470640aa4bb7db8e69196b5edb0010933569e98d - w_override_dlls native,builtin msvcm90 msvcp90 msvcr90 vcomp90 + w_override_dlls native,builtin atl90 msvcm90 msvcp90 msvcr90 vcomp90 cd "$W_CACHE"/vcrun2008 - w_try $WINE $file1 $W_UNATTENDED_SLASH_Q + w_try "$WINE" $file1 $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -6699,22 +8025,217 @@ load_vcrun2010() w_override_dlls native,builtin msvcp100 msvcr100 vcomp100 atl100 cd "$W_CACHE"/vcrun2010 - w_try $WINE vcredist_x86.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" vcredist_x86.exe $W_UNATTENDED_SLASH_Q case "$W_ARCH" in win64) - # See http://bugs.winehq.org/show_bug.cgi?id=30713 # Also install the 64 bit version # http://www.microsoft.com/en-us/download/details.aspx?id=13523 w_download http://download.microsoft.com/download/A/8/0/A80747C3-41BD-45DF-B505-E9710D2744E0/vcredist_x64.exe 027d0c2749ec5eb21b031f46aee14c905206f482 - w_try_cabextract --directory="$W_TMP" vcredist_x64.exe -F '*.cab' - w_try_cabextract --directory="$W_TMP" "$W_TMP"/vc_red.cab - cp "$W_TMP"/F_CENTRAL_mfc100_x64 "$W_SYSTEM64_DLLS"/mfc100.dll - cp "$W_TMP"/F_CENTRAL_mfc100u_x64 "$W_SYSTEM64_DLLS"/mfc100u.dll - cp "$W_TMP"/F_CENTRAL_msvcr100_x64 "$W_SYSTEM64_DLLS"/msvcr100.dll - cp "$W_TMP"/F_CENTRAL_msvcp100_x64 "$W_SYSTEM64_DLLS"/msvcp100.dll - cp "$W_TMP"/F_CENTRAL_vcomp100_x64 "$W_SYSTEM64_DLLS"/vcomp100.dll - cp "$W_TMP"/F_CENTRAL_atl100_x64 "$W_SYSTEM64_DLLS"/atl100.dll + if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls" + then + w_try_cabextract --directory="$W_TMP" vcredist_x64.exe -F '*.cab' + w_try_cabextract --directory="$W_TMP" "$W_TMP"/vc_red.cab + cp "$W_TMP"/F_CENTRAL_mfc100_x64 "$W_SYSTEM64_DLLS"/mfc100.dll + cp "$W_TMP"/F_CENTRAL_mfc100u_x64 "$W_SYSTEM64_DLLS"/mfc100u.dll + cp "$W_TMP"/F_CENTRAL_msvcr100_x64 "$W_SYSTEM64_DLLS"/msvcr100.dll + cp "$W_TMP"/F_CENTRAL_msvcp100_x64 "$W_SYSTEM64_DLLS"/msvcp100.dll + cp "$W_TMP"/F_CENTRAL_vcomp100_x64 "$W_SYSTEM64_DLLS"/vcomp100.dll + cp "$W_TMP"/F_CENTRAL_atl100_x64 "$W_SYSTEM64_DLLS"/atl100.dll + else + w_try "$WINE" vcredist_x64.exe $W_UNATTENDED_SLASH_Q + fi + ;; + esac +} + +#---------------------------------------------------------------- + +w_metadata vcrun2012 dlls \ + title="Visual C++ 2012 libraries (atl110,mfc110,mfc110u,msvcp110,msvcr110,vcomp110)" \ + publisher="Microsoft" \ + year="2012" \ + media="download" \ + file1="vcredist_x86.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/mfc110.dll" + +load_vcrun2012() +{ + # http://www.microsoft.com/download/details.aspx?id=30679 + w_download http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe 96b377a27ac5445328cbaae210fc4f0aaa750d3f + + w_override_dlls native,builtin atl110 msvcp110 msvcr110 vcomp110 + cd "$W_CACHE"/vcrun2012 + if w_workaround_wine_bug 17273 "Manually extracting dlls" + then + w_try_cabextract --directory="$W_TMP" vcredist_x86.exe + w_try_cabextract --directory="$W_TMP" "$W_TMP/a2" + w_try_cabextract --directory="$W_TMP" "$W_TMP/a3" + cp "$W_TMP"/F_CENTRAL_atl110_x86 "$W_SYSTEM32_DLLS"/atl110.dll + cp "$W_TMP"/F_CENTRAL_mfc110_x86 "$W_SYSTEM32_DLLS"/mfc110.dll + cp "$W_TMP"/F_CENTRAL_mfc110u_x86 "$W_SYSTEM32_DLLS"/mfc110u.dll + cp "$W_TMP"/F_CENTRAL_msvcp110_x86 "$W_SYSTEM32_DLLS"/msvcp110.dll + cp "$W_TMP"/F_CENTRAL_msvcr110_x86 "$W_SYSTEM32_DLLS"/msvcr110.dll + cp "$W_TMP"/F_CENTRAL_vcomp110_x86 "$W_SYSTEM32_DLLS"/vcomp110.dll + else + w_try "$WINE" vcredist_x86.exe $W_UNATTENDED_SLASH_Q + fi + + case "$W_ARCH" in + win64) + # Also install the 64 bit version + # 2015/10/19: 1a5d93dddbc431ab27b1da711cd3370891542797 + w_download http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe 1a5d93dddbc431ab27b1da711cd3370891542797 + if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls" + then + rm -f "$W_TMP"/* # Avoid permission error + w_try_cabextract --directory="$W_TMP" vcredist_x64.exe + w_try_cabextract --directory="$W_TMP" "$W_TMP/a2" + w_try_cabextract --directory="$W_TMP" "$W_TMP/a3" + cp "$W_TMP"/F_CENTRAL_atl110_x64 "$W_SYSTEM64_DLLS"/atl110.dll + cp "$W_TMP"/F_CENTRAL_mfc110_x64 "$W_SYSTEM64_DLLS"/mfc110.dll + cp "$W_TMP"/F_CENTRAL_mfc110u_x64 "$W_SYSTEM64_DLLS"/mfc110u.dll + cp "$W_TMP"/F_CENTRAL_msvcp110_x64 "$W_SYSTEM64_DLLS"/msvcp110.dll + cp "$W_TMP"/F_CENTRAL_msvcr110_x64 "$W_SYSTEM64_DLLS"/msvcr110.dll + cp "$W_TMP"/F_CENTRAL_vcomp110_x64 "$W_SYSTEM64_DLLS"/vcomp110.dll + else + w_try "$WINE" vcredist_x64.exe $W_UNATTENDED_SLASH_Q + fi + ;; + esac +} + +#---------------------------------------------------------------- + +w_metadata vcrun2013 dlls \ + title="Visual C++ 2013 libraries (mfc120,mfc120u,msvcp120,msvcr120,vcomp120)" \ + publisher="Microsoft" \ + year="2013" \ + media="download" \ + file1="vcredist_x86.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/mfc120.dll" + +load_vcrun2013() +{ + # http://www.microsoft.com/en-us/download/details.aspx?id=40784 + # 2014/07/26: 18f81495bc5e6b293c69c28b0ac088a96debbab2 + # 2015/01/14: df7f0a73bfa077e483e51bfb97f5e2eceedfb6a3 + w_download http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe df7f0a73bfa077e483e51bfb97f5e2eceedfb6a3 + + w_override_dlls native,builtin atl120 msvcp120 msvcr120 vcomp120 + cd "$W_CACHE"/vcrun2013 + if w_workaround_wine_bug 17273 "Manually extracting dlls" + then + w_try_cabextract --directory="$W_TMP" vcredist_x86.exe + w_try_cabextract --directory="$W_TMP" "$W_TMP/a2" + w_try_cabextract --directory="$W_TMP" "$W_TMP/a3" + cp "$W_TMP"/F_CENTRAL_mfc120_x86 "$W_SYSTEM32_DLLS"/mfc120.dll + cp "$W_TMP"/F_CENTRAL_mfc120u_x86 "$W_SYSTEM32_DLLS"/mfc120u.dll + cp "$W_TMP"/F_CENTRAL_msvcp120_x86 "$W_SYSTEM32_DLLS"/msvcp120.dll + cp "$W_TMP"/F_CENTRAL_msvcr120_x86 "$W_SYSTEM32_DLLS"/msvcr120.dll + cp "$W_TMP"/F_CENTRAL_vcomp120_x86 "$W_SYSTEM32_DLLS"/vcomp120.dll + else + w_try "$WINE" vcredist_x86.exe $W_UNATTENDED_SLASH_Q + fi + + case "$W_ARCH" in + win64) + # Also install the 64 bit version + # 2015/10/19: 8bf41ba9eef02d30635a10433817dbb6886da5a2 + w_download http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe 8bf41ba9eef02d30635a10433817dbb6886da5a2 + if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls" + then + rm -f "$W_TMP"/* # Avoid permission error + w_try_cabextract --directory="$W_TMP" vcredist_x64.exe + w_try_cabextract --directory="$W_TMP" "$W_TMP/a2" + w_try_cabextract --directory="$W_TMP" "$W_TMP/a3" + cp "$W_TMP"/F_CENTRAL_mfc120_x64 "$W_SYSTEM64_DLLS"/mfc120.dll + cp "$W_TMP"/F_CENTRAL_mfc120u_x64 "$W_SYSTEM64_DLLS"/mfc120u.dll + cp "$W_TMP"/F_CENTRAL_msvcp120_x64 "$W_SYSTEM64_DLLS"/msvcp120.dll + cp "$W_TMP"/F_CENTRAL_msvcr120_x64 "$W_SYSTEM64_DLLS"/msvcr120.dll + cp "$W_TMP"/F_CENTRAL_vcomp120_x64 "$W_SYSTEM64_DLLS"/vcomp120.dll + else + w_try "$WINE" vcredist_x64.exe $W_UNATTENDED_SLASH_Q + fi + ;; + esac +} + +#---------------------------------------------------------------- + +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)" \ + publisher="Microsoft" \ + year="2015" \ + media="download" \ + file1="vc_redist.x86.exe" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/mfc140.dll" + +load_vcrun2015() +{ + # https://www.microsoft.com/en-us/download/details.aspx?id=48145 + # 2015/10/12: bfb74e498c44d3a103ca3aa2831763fb417134d1 + w_download https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe bfb74e498c44d3a103ca3aa2831763fb417134d1 + + w_override_dlls native,builtin atl140 msvcp140 msvcr140 vcomp140 + cd "$W_CACHE"/vcrun2015 + if w_workaround_wine_bug 17273 "Manually extracting dlls" + then + w_try_cabextract --directory="$W_TMP" vc_redist.x86.exe + w_try_cabextract --directory="$W_TMP" "$W_TMP/a10" + w_try_cabextract --directory="$W_TMP" "$W_TMP/a11" + cp "$W_TMP"/concrt140.dll "$W_SYSTEM32_DLLS"/concrt140.dll + cp "$W_TMP"/mfc140.dll "$W_SYSTEM32_DLLS"/mfc140.dll + cp "$W_TMP"/mfc140u.dll "$W_SYSTEM32_DLLS"/mfc140u.dll + cp "$W_TMP"/mfcm140.dll "$W_SYSTEM32_DLLS"/mfcm140.dll + cp "$W_TMP"/mfcm140u.dll "$W_SYSTEM32_DLLS"/mfcm140u.dll + cp "$W_TMP"/msvcp140.dll "$W_SYSTEM32_DLLS"/msvcp140.dll + cp "$W_TMP"/vcamp140.dll "$W_SYSTEM32_DLLS"/vcamp140.dll + cp "$W_TMP"/vccorlib140.dll "$W_SYSTEM32_DLLS"/vccorlib140.dll + cp "$W_TMP"/vcomp140.dll "$W_SYSTEM32_DLLS"/vcomp140.dll + cp "$W_TMP"/vcruntime140.dll "$W_SYSTEM32_DLLS"/vcruntime140.dll + + w_override_dlls native,builtin api-ms-win-crt-heap-l1-1-0 api-ms-win-crt-locale-l1-1-0 api-ms-win-crt-runtime-l1-1-0 api-ms-win-crt-stdio-l1-1-0 ucrtbase vcruntime140 + cp "$W_TMP"/api_ms_win_crt_heap_l1_1_0.dll "$W_SYSTEM32_DLLS"/api-ms-win-crt-heap-l1-1-0.dll + cp "$W_TMP"/api_ms_win_crt_locale_l1_1_0.dll "$W_SYSTEM32_DLLS"/api-ms-win-crt-locale-l1-1-0.dll + cp "$W_TMP"/api_ms_win_crt_runtime_l1_1_0.dll "$W_SYSTEM32_DLLS"/api-ms-win-crt-runtime-l1-1-0.dll + cp "$W_TMP"/api_ms_win_crt_stdio_l1_1_0.dll "$W_SYSTEM32_DLLS"/api-ms-win-crt-stdio-l1-1-0.dll + cp "$W_TMP"/ucrtbase.dll "$W_SYSTEM32_DLLS"/ucrtbase.dll + else + w_try "$WINE" vc_redist.x86.exe $W_UNATTENDED_SLASH_Q + fi + + case "$W_ARCH" in + win64) + # Also install the 64 bit version + # 2015/10/12: 3155cb0f146b927fcc30647c1a904cd162548c8c + w_download https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe 3155cb0f146b927fcc30647c1a904cd162548c8c + if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls" + then + rm -f "$W_TMP"/* # Avoid permission error + w_try_cabextract --directory="$W_TMP" vc_redist.x64.exe + w_try_cabextract --directory="$W_TMP" "$W_TMP/a10" + w_try_cabextract --directory="$W_TMP" "$W_TMP/a11" + cp "$W_TMP"/concrt140.dll "$W_SYSTEM64_DLLS"/concrt140.dll + cp "$W_TMP"/mfc140.dll "$W_SYSTEM64_DLLS"/mfc140.dll + cp "$W_TMP"/mfc140u.dll "$W_SYSTEM64_DLLS"/mfc140u.dll + cp "$W_TMP"/mfcm140.dll "$W_SYSTEM64_DLLS"/mfcm140.dll + cp "$W_TMP"/mfcm140u.dll "$W_SYSTEM64_DLLS"/mfcm140u.dll + cp "$W_TMP"/msvcp140.dll "$W_SYSTEM64_DLLS"/msvcp140.dll + cp "$W_TMP"/vcamp140.dll "$W_SYSTEM64_DLLS"/vcamp140.dll + cp "$W_TMP"/vccorlib140.dll "$W_SYSTEM64_DLLS"/vccorlib140.dll + cp "$W_TMP"/vcomp140.dll "$W_SYSTEM64_DLLS"/vcomp140.dll + cp "$W_TMP"/vcruntime140.dll "$W_SYSTEM64_DLLS"/vcruntime140.dll + + w_override_dlls native,builtin api-ms-win-crt-heap-l1-1-0 api-ms-win-crt-locale-l1-1-0 api-ms-win-crt-runtime-l1-1-0 api-ms-win-crt-stdio-l1-1-0 ucrtbase vcruntime140 + cp "$W_TMP"/api_ms_win_crt_heap_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-heap-l1-1-0.dll + cp "$W_TMP"/api_ms_win_crt_locale_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-locale-l1-1-0.dll + cp "$W_TMP"/api_ms_win_crt_runtime_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-runtime-l1-1-0.dll + cp "$W_TMP"/api_ms_win_crt_stdio_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-stdio-l1-1-0.dll + cp "$W_TMP"/ucrtbase.dll "$W_SYSTEM64_DLLS"/ucrtbase.dll + else + w_try "$WINE" vc_redist.x64.exe $W_UNATTENDED_SLASH_Q + fi ;; esac } @@ -6726,6 +8247,7 @@ w_metadata vjrun20 dlls \ publisher="Microsoft" \ year="2007" \ media="download" \ + conflicts="dotnet11 dotnet20sp1 dotnet20sp2" \ file1="vjredist.exe" \ installed_file1="c:/windows/Microsoft.NET/Framework/VJSharp/VJSharpSxS10.dll" @@ -6744,9 +8266,9 @@ load_vjrun20() if [ $W_UNATTENDED_SLASH_Q ] then - w_try $WINE "$W_CACHE"/vjrun20/vjredist.exe /q /C:"install /QNT" + w_try "$WINE" "$W_CACHE"/vjrun20/vjredist.exe /q /C:"install /QNT" else - w_try $WINE "$W_CACHE"/vjrun20/vjredist.exe + w_try "$WINE" "$W_CACHE"/vjrun20/vjredist.exe fi } @@ -6780,7 +8302,7 @@ load_windowscodecs() else TASKSET="" fi - w_try $TASKSET $WINE wic_x86_enu.exe /passive + w_try $TASKSET "$WINE" wic_x86_enu.exe /passive } #---------------------------------------------------------------- @@ -6842,7 +8364,7 @@ load_wmi() w_override_dlls native,builtin wbemprox wmiutils # Note: there is a crash in the background towards the end, doesn't seem to hurt; see http://bugs.winehq.org/show_bug.cgi?id=7920 cd "$W_CACHE"/wmi - w_try $WINE wmi9x.exe $W_UNATTENDED_SLASH_S + w_try "$WINE" wmi9x.exe $W_UNATTENDED_SLASH_S w_unset_winver } @@ -6866,7 +8388,7 @@ load_wsh56js() w_override_dlls native,builtin jscript # setupapi looks at the versions in new and original jscript.dll, and wine's original is newer than wsh56js's, so have to nuke the original w_try rm "$W_SYSTEM32_DLLS/jscript.dll" - w_try $WINE Windows2000-KB917344-56-x86-enu.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" Windows2000-KB917344-56-x86-enu.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -6889,7 +8411,7 @@ load_wsh56vb() w_override_dlls native,builtin vbscript # setupapi looks at the versions in new and original vbscript.dll, and wine's original is newer than wsh56vb's, so have to nuke the original w_try rm "$W_SYSTEM32_DLLS/vbscript.dll" - w_try $WINE vbs56men.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" vbs56men.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -6939,12 +8461,31 @@ load_xact() w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'x3daudio*.dll' "$x" w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xapofx*.dll' "$x" done + if test "$W_ARCH" = "win64" + then + w_try_cabextract -d "$W_TMP" -L -F '*_xact_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME + w_try_cabextract -d "$W_TMP" -L -F '*_x3daudio_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME + w_try_cabextract -d "$W_TMP" -L -F '*_xaudio_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME + for x in "$W_TMP"/*x64.cab + do + w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xactengine*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xaudio*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'x3daudio*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xapofx*.dll' "$x" + done + fi - # Register xactengine?_?.dll, xaudio?_?.dll - for x in "$W_SYSTEM32_DLLS"/xactengine* "$W_SYSTEM32_DLLS"/xaudio* + # Register xactengine?_?.dll + for x in "$W_SYSTEM32_DLLS"/xactengine* do w_try_regsvr `basename "$x"` done + + # and xaudio?_?.dll, but not xaudio2_8 (unsupported) + for x in 0 1 2 3 4 5 6 7 + do + w_try_regsvr `basename "$W_SYSTEM32_DLLS/xaudio2_${x}"` + done } #---------------------------------------------------------------- @@ -6972,12 +8513,31 @@ load_xact_jun2010() w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'x3daudio*.dll' "$x" w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xapofx*.dll' "$x" done + if test "$W_ARCH" = "win64" + then + w_try_cabextract -d "$W_TMP" -L -F '*_xact_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME + w_try_cabextract -d "$W_TMP" -L -F '*_x3daudio_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME + w_try_cabextract -d "$W_TMP" -L -F '*_xaudio_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME + for x in "$W_TMP"/*x64.cab + do + w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xactengine*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xaudio*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'x3daudio*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xapofx*.dll' "$x" + done + fi - # Register xactengine?_?.dll, xaudio?_?.dll - for x in "$W_SYSTEM32_DLLS"/xactengine* "$W_SYSTEM32_DLLS"/xaudio* + # Register xactengine?_?.dll + for x in "$W_SYSTEM32_DLLS"/xactengine* do w_try_regsvr `basename "$x"` done + + # and xaudio?_?.dll, but not xaudio2_8 (unsupported) + for x in 0 1 2 3 4 5 6 7 + do + w_try_regsvr `basename "$W_SYSTEM32_DLLS/xaudio2_${x}"` + done } #---------------------------------------------------------------- @@ -6999,10 +8559,14 @@ load_xinput() do w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xinput*.dll' "$x" done - w_try_regsvr xinput1_1.dll - w_try_regsvr xinput1_2.dll - w_try_regsvr xinput1_3.dll - w_try_regsvr xinput9_1_0.dll + 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 + fi w_override_dlls native xinput1_1 w_override_dlls native xinput1_2 w_override_dlls native xinput1_3 @@ -7024,13 +8588,18 @@ load_xmllite() case $LANG in en*) w_download http://download.microsoft.com/download/f/9/6/f964059a-3747-4ed8-9326-ba1e639031b1/WindowsXP-KB915865-v11-x86-ENU.exe 226d246a1c64e693791de5c727509002d089b0d5 ;; fr*) w_download http://download.microsoft.com/download/4/1/d/41de58a0-6715-4d3e-99e7-ff0c11283d1b/WindowsXP-KB915865-v11-x86-FRA.exe abb70b6a96be7dce453b00877739e90c6f3efba0 ;; + de*) w_download http://download.microsoft.com/download/9/b/6/9b67efdb-cce3-4247-a2e0-386673859a1b/WindowsXP-KB915865-v11-x86-DEU.exe a03a325815acf9d624db58ab94a140a5586e64c8 ;; + ja*) w_download http://download.microsoft.com/download/f/5/c/f5cf73b7-4dc4-4042-815d-29d2fd24ae6f/WindowsXP-KB915865-v11-x86-JPN.exe eaf443d04d9b13cb86f927f8a7fe372268386395 ;; *) w_die "sorry, xmllite install not yet implemented for language $LANG" ;; esac + # Doesn't install in newer versions: + w_set_winver winxp + if w_workaround_wine_bug 16013 then # Find instructions to create this file in dlls/wintrust/tests/crypt.c - w_download http://winezeug.googlecode.com/svn/trunk/winetricks_files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f + w_download https://github.com/Winetricks/winetricks/raw/master/files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f # Put a dummy catalog file in place mkdir -p "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\} w_try cp -f "$W_CACHE"/xmllite/winetest.cat "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}/oem0.cat @@ -7043,9 +8612,13 @@ load_xmllite() cd "$W_CACHE"/xmllite w_override_dlls native xmllite case $LANG in - en*) w_try $WINE WindowsXP-KB915865-v11-x86-ENU.exe $W_UNATTENDED_SLASH_Q ;; - fr*) w_try $WINE WindowsXP-KB915865-v11-x86-FRA.exe $W_UNATTENDED_SLASH_Q ;; + en*) w_try "$WINE" WindowsXP-KB915865-v11-x86-ENU.exe $W_UNATTENDED_SLASH_Q ;; + fr*) w_try "$WINE" WindowsXP-KB915865-v11-x86-FRA.exe $W_UNATTENDED_SLASH_Q ;; + de*) w_try "$WINE" WindowsXP-KB915865-v11-x86-DEU.exe $W_UNATTENDED_SLASH_Q ;; + ja*) w_try "$WINE" WindowsXP-KB915865-v11-x86-JPN.exe $W_UNATTENDED_SLASH_Q ;; esac + + w_unset_winver } #---------------------------------------------------------------- @@ -7063,7 +8636,7 @@ load_xna31() w_call dotnet20sp2 w_download http://download.microsoft.com/download/5/9/1/5912526C-B950-4662-99B6-119A83E60E5C/xnafx31_redist.msi bdd33b677c9576a63ff2a6f65e12c0563cc116e6 cd "$W_CACHE"/xna31 - w_try $WINE msiexec ${W_OPT_UNATTENDED:+/quiet} /i $file1 + w_try "$WINE" msiexec ${W_OPT_UNATTENDED:+/quiet} /i $file1 } #---------------------------------------------------------------- @@ -7083,7 +8656,7 @@ load_xna40() # http://www.microsoft.com/en-us/download/details.aspx?id=20914 w_download http://download.microsoft.com/download/A/C/2/AC2C903B-E6E8-42C2-9FD7-BEBAC362A930/xnafx40_redist.msi 49efdc29f65fc8263c196338552c7009fc96c5de cd "$W_CACHE"/xna40 - w_try $WINE msiexec ${W_OPT_UNATTENDED:+/quiet} /i $file1 + w_try "$WINE" msiexec ${W_OPT_UNATTENDED:+/quiet} /i $file1 } #---------------------------------------------------------------- @@ -7105,7 +8678,7 @@ load_xvid() then w_call vcrun2008 fi - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ --mode unattended --decode_divx 1 --decode_3ivx 1 --decode_other 1} + w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ --mode unattended --decode_divx 1 --decode_3ivx 1 --decode_other 1} } #---------------------------------------------------------------- @@ -7152,6 +8725,50 @@ load_cjkfonts() #---------------------------------------------------------------- +w_metadata cambria fonts \ + title="MS Cambria font" \ + publisher="Microsoft" \ + year="2009" \ + media="download" \ + file1="PowerPointViewer.exe" \ + installed_file1="$W_FONTSDIR_WIN/cambria.ttc" + +load_cambria() +{ + # http://www.microsoft.com/en-us/download/details.aspx?id=13 + w_download_to consolas http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe ab48a8ebac88219c84f293c6c1e81f1a0f420da6 + w_try_cabextract -d "$W_TMP" -L -F ppviewer.cab "$W_CACHE"/consolas/PowerPointViewer.exe + w_try_cabextract -d "$W_FONTSDIR_UNIX" -L -F 'CAMBRIA*.TT*' "$W_TMP"/ppviewer.cab + w_register_font cambria.ttc "Cambria" + w_register_font cambriab.ttf "Cambria Bold" + w_register_font cambriai.ttf "Cambria Italic" + w_register_font cambriaz.ttf "Cambria Bold Italic" +} + +#---------------------------------------------------------------- + +w_metadata constantia fonts \ + title="MS Constantia font" \ + publisher="Microsoft" \ + year="2009" \ + media="download" \ + file1="PowerPointViewer.exe" \ + installed_file1="$W_FONTSDIR_WIN/constan.ttf" + +load_constantia() +{ + # http://www.microsoft.com/en-us/download/details.aspx?id=13 + w_download_to consolas http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe ab48a8ebac88219c84f293c6c1e81f1a0f420da6 + w_try_cabextract -d "$W_TMP" -L -F ppviewer.cab "$W_CACHE"/consolas/PowerPointViewer.exe + w_try_cabextract -d "$W_FONTSDIR_UNIX" -L -F 'CONSTAN*.TTF' "$W_TMP"/ppviewer.cab + w_register_font constan.ttf "Constantia" + w_register_font constanb.ttf "Constantia Bold" + w_register_font constani.ttf "Constantia Italic" + w_register_font constanz.ttf "Constantia Bold Italic" +} + +#---------------------------------------------------------------- + w_metadata consolas fonts \ title="MS Consolas Console font" \ publisher="Microsoft" \ @@ -7184,25 +8801,18 @@ w_metadata corefonts fonts \ load_corefonts() { - # See http://corefonts.sf.net - # TODO: let user pick mirror, - # see http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec for how - # TODO: add more fonts - - # Added More Fonts (see msttcorefonts) - # [*] Pointed w_download to sites that actually contained the - # fonts to w_download of 04-03-2008) - #w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/andale32.exe c4db8cbe42c566d12468f5fdad38c43721844c69 - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/arial32.exe 6d75f8436f39ab2da5c31ce651b7443b4ad2916e - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/arialb32.exe d45cdab84b7f4c1efd6d1b369f50ed0390e3d344 - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/comic32.exe 2371d0327683dcc5ec1684fe7c275a8de1ef9a51 - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/courie32.exe 06a745023c034f88b4135f5e294fece1a3c1b057 - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/georgi32.exe 90e4070cb356f1d811acb943080bf97e419a8f1e - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/impact32.exe 86b34d650cfbbe5d3512d49d2545f7509a55aad2 - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/times32.exe 20b79e65cdef4e2d7195f84da202499e3aa83060 - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/trebuc32.exe 50aab0988423efcc9cf21fac7d64d534d6d0a34a - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/verdan32.exe f5b93cedf500edc67502f116578123618c64a42a - w_download $WINETRICKS_SOURCEFORGE/project/corefonts/the%20fonts/final/webdin32.exe 2fb4a42c53e50bc70707a7b3c57baf62ba58398f + # FIXME: why is this commented out? Should be removed or enabled. + #w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/andale32.exe c4db8cbe42c566d12468f5fdad38c43721844c69 + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/arial32.exe 6d75f8436f39ab2da5c31ce651b7443b4ad2916e + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/arialb32.exe d45cdab84b7f4c1efd6d1b369f50ed0390e3d344 + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/comic32.exe 2371d0327683dcc5ec1684fe7c275a8de1ef9a51 + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/courie32.exe 06a745023c034f88b4135f5e294fece1a3c1b057 + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/georgi32.exe 90e4070cb356f1d811acb943080bf97e419a8f1e + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/impact32.exe 86b34d650cfbbe5d3512d49d2545f7509a55aad2 + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/times32.exe 20b79e65cdef4e2d7195f84da202499e3aa83060 + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/trebuc32.exe 50aab0988423efcc9cf21fac7d64d534d6d0a34a + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/verdan32.exe f5b93cedf500edc67502f116578123618c64a42a + w_download http://ftp.netbsd.org/pub/pkgsrc/distfiles/ms-ttf/webdin32.exe 2fb4a42c53e50bc70707a7b3c57baf62ba58398f # Natively installed versions of these fonts will cause the installers # to exit silently. Because there are apps out there that depend on the @@ -7213,7 +8823,7 @@ load_corefonts() # w_try_cabextract --directory="$W_TMP" "$W_CACHE"/corefonts/andale32.exe # Display EULA - test x"$W_UNATTENDED_SLASH_Q" = x"" || w_try $WINE "$W_CACHE"/corefonts/arial32.exe $W_UNATTENDED_SLASH_Q + test x"$W_UNATTENDED_SLASH_Q" = x"" || w_try "$WINE" "$W_CACHE"/corefonts/arial32.exe $W_UNATTENDED_SLASH_Q w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/arial32.exe w_try cp -f "$W_TMP"/Arial*.TTF "$W_FONTSDIR_UNIX" @@ -7295,17 +8905,19 @@ load_droid() { # See http://en.wikipedia.org/wiki/Droid_(font) # Old url was http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/' - DROID_URL='https://github.com/android/platform_frameworks_base/blob/master/data/fonts/' + # Then it was https://github.com/android/platform_frameworks_base/blob/master/data/fonts/ + # but the fonts are no longer in master. Using an older commit instead: + DROID_URL='https://github.com/android/platform_frameworks_base/blob/feef9887e8f8eb6f64fc1b4552c02efb5755cdc1/data/fonts/' do_droid DroidSans-Bold.ttf "Droid Sans Bold" 560e4bcafdebaf29645fbf92633a2ae0d2f9801f do_droid DroidSansFallback.ttf "Droid Sans Fallback" c5e4f11e2f1d0b84e5f268a7ebfd28b54dc6bcdc do_droid DroidSansJapanese.ttf "Droid Sans Japanese" b3a248c11692aa88a30eb25df425b8910fe05dc5 do_droid DroidSansMono.ttf "Droid Sans Mono" 133fb6cf26ea073b456fb557b94ce8c46143b117 do_droid DroidSans.ttf "Droid Sans" 62f2841f61e4be66a0303cd1567ed2d300b4e31c - do_droid DroidSerif-BoldItalic.ttf "Droid Serif Bold Italic" b7f2d37c3a062be671774ff52f4fd95cbef813ce - do_droid DroidSerif-Bold.ttf "Droid Serif Bold" 294fa99ceaf6077ab633b5a7c7db761e2f76cf8c - do_droid DroidSerif-Italic.ttf "Droid Serif Italic" bdd8aad5e6ac546d11e7378bdfabeac7ccbdadfc - do_droid DroidSerif-Regular.ttf "Droid Serif" 805c5f975e02f488fa1dd1dd0d44ed4f93b0fab4 + do_droid DroidSerif-BoldItalic.ttf "Droid Serif Bold Italic" 41ce5fef1bd0164caed6958885d7285c841c95f1 + do_droid DroidSerif-Bold.ttf "Droid Serif Bold" 2775e9b8e96a3e9593acb5cf6923abb2e6008187 + do_droid DroidSerif-Italic.ttf "Droid Serif Italic" e91cc6c1ae9a6699683bcee024551cb58d1be790 + do_droid DroidSerif-Regular.ttf "Droid Serif" a689ce25a4063cf501c12d616f832f2235b5b93b } #---------------------------------------------------------------- @@ -7353,14 +8965,19 @@ load_fakechinese() { w_call wenquanyi # Loads Wenquanyi fonts and sets aliases for Microsoft Chinese fonts - # Aliases to set: - # Microsoft JhengHei --> WenQuanYi Micro Hei - # Microsoft YaHei --> WenQuanYi Micro Hei - # SimHei --> WenQuanYi Micro Hei + # Reference : http://en.wikipedia.org/wiki/List_of_Microsoft_Windows_fonts w_register_font_replacement "Microsoft JhengHei" "WenQuanYi Micro Hei" w_register_font_replacement "Microsoft YaHei" "WenQuanYi Micro Hei" w_register_font_replacement "SimHei" "WenQuanYi Micro Hei" + w_register_font_replacement "DFKai-SB" "WenQuanYi Micro Hei" + w_register_font_replacement "FangSong" "WenQuanYi Micro Hei" + w_register_font_replacement "KaiTi" "WenQuanYi Micro Hei" + w_register_font_replacement "PMingLiU" "WenQuanYi Micro Hei" + w_register_font_replacement "MingLiU" "WenQuanYi Micro Hei" + w_register_font_replacement "NSimSun" "WenQuanYi Micro Hei" + w_register_font_replacement "SimKai" "WenQuanYi Micro Hei" + w_register_font_replacement "SimSun" "WenQuanYi Micro Hei" } #---------------------------------------------------------------- @@ -7373,15 +8990,17 @@ w_metadata fakejapanese fonts \ load_fakejapanese() { w_call takao - # Loads Takao fonts and sets aliases for MS Gothic and MS PGothic, mainly for Japanese language support + # Loads Takao fonts and sets aliases for MS Gothic, MS UI Gothic, and MS PGothic, mainly for Japanese language support # Aliases to set: # MS Gothic --> TakaoGothic + # MS UI Gothic --> TakaoGothic # MS PGothic --> TakaoPGothic # MS Mincho --> TakaoMincho # MS PMincho --> TakaoPMincho # These aliases were taken from what was listed in Ubuntu's fontconfig definitions. w_register_font_replacement "MS Gothic" "TakaoGothic" + w_register_font_replacement "MS UI Gothic" "TakaoGothic" w_register_font_replacement "MS PGothic" "TakaoPGothic" w_register_font_replacement "MS Mincho" "TakaoMincho" w_register_font_replacement "MS PMincho" "TakaoPMincho" @@ -7389,6 +9008,40 @@ load_fakejapanese() #---------------------------------------------------------------- +w_metadata fakejapanese_ipamona fonts \ + title="Creates aliases for Japanese fonts using IPAMona fonts" \ + publisher="Jun Kobayashi" \ + year="2008" + +load_fakejapanese_ipamona() +{ + w_call ipamona + + # Aliases to set: + # MS UI Gothic --> IPAMonaUIGothic + # MS Gothic (MS ゴシック) --> IPAMonaGothic + # MS PGothic (MS Pゴシック) --> IPAMonaPGothic + # MS Mincho (MS 明朝) --> IPAMonaMincho + # MS PMincho (MS P明朝) --> IPAMonaPMincho + + jpname_msgothic="$(echo "MS ゴシック" | iconv -f utf8 -t cp932)" + jpname_mspgothic="$(echo "MS Pゴシック" | iconv -f utf8 -t cp932)" + jpname_msmincho="$(echo "MS 明朝" | iconv -f utf8 -t cp932)" + jpname_mspmincho="$(echo "MS P明朝" | iconv -f utf8 -t cp932)" + + w_register_font_replacement "MS UI Gothic" "IPAMonaUIGothic" + w_register_font_replacement "MS Gothic" "IPAMonaGothic" + w_register_font_replacement "MS PGothic" "IPAMonaPGothic" + w_register_font_replacement "MS Mincho" "IPAMonaMincho" + w_register_font_replacement "MS PMincho" "IPAMonaPMincho" + w_register_font_replacement "$jpname_msgothic" "IPAMonaGothic" + w_register_font_replacement "$jpname_mspgothic" "IPAMonaPGothic" + w_register_font_replacement "$jpname_msmincho" "IPAMonaMincho" + w_register_font_replacement "$jpname_mspmincho" "IPAMonaPMincho" +} + +#---------------------------------------------------------------- + w_metadata fakekorean fonts \ title="Creates aliases for Korean fonts using Baekmuk fonts" \ publisher="Wooderart Inc. / kldp.net" \ @@ -7416,38 +9069,29 @@ load_fakekorean() #---------------------------------------------------------------- -w_metadata fontfix fonts \ - title="Updated Arphic fonts" \ - publisher="Arphic" \ - year="2007" \ - media="download" \ - file1="ttf-arphic-ukai_0.1.20060108.orig.tar.gz" +w_metadata fontfix settings \ + title="Check for broken fonts" load_fontfix() { # some versions of ukai.ttf and uming.ttf crash .net and picasa # See http://bugs.winehq.org/show_bug.cgi?id=7098#c9 - # Could fix globally, but that needs root, so just fix for wine + # Very unlikely to still be around, so downgrade to fatal warning if test -f /usr/share/fonts/truetype/arphic/ukai.ttf then - gotsum=`$SHA1SUM < /usr/share/fonts/truetype/arphic/ukai.ttf | sed 's/ .*//'` - # FIXME: do all affected versions of the font have same sha1sum as Gutsy? Seems unlikely. - if [ "$gotsum"x = "96e1121f89953e5169d3e2e7811569148f573985"x ] + w_get_sha1sum /usr/share/fonts/truetype/arphic/ukai.ttf + if [ "$_W_gotsum"x = "96e1121f89953e5169d3e2e7811569148f573985"x ] then - w_download https://launchpadlibrarian.net/1499628/ttf-arphic-ukai_0.1.20060108.orig.tar.gz 92e577602d71454a108968e79ab667451f3602a2 - gunzip -dc "$W_CACHE/fontfix/ttf-arphic-ukai_0.1.20060108.orig.tar.gz" | (cd "$W_TMP"; tar -xf -) - w_try mv "$W_TMP"/ttf-arphic-ukai-0.1.20060108/*.ttf "$W_FONTSDIR_UNIX" + w_die "Your installed ukai.ttf is known to be broken. Upgrade your ttf-arphic font package!" fi fi if test -f /usr/share/fonts/truetype/arphic/uming.ttf then - gotsum=`$SHA1SUM < /usr/share/fonts/truetype/arphic/uming.ttf | sed 's/ .*//'` - if [ "$gotsum"x = "2a4f4a69e343c21c24d044b2cb19fd4f0decc82c"x ] + w_get_sha1sum /usr/share/fonts/truetype/arphic/uming.ttf + if [ "$_W_gotsum"x = "2a4f4a69e343c21c24d044b2cb19fd4f0decc82c"x ] then - w_download https://launchpadlibrarian.net/1564410/ttf-arphic-uming_0.1.20060108.orig.tar.gz 1439cdd731906e9e5311f320c2cb33262b24ef91 - gunzip -dc "$W_CACHE/fontfix/ttf-arphic-uming_0.1.20060108.orig.tar.gz" | (cd "$W_TMP"; tar -xf -) - w_try mv "$W_TMP"/ttf-arphic-uming-0.1.20060108/*.ttf "$W_FONTSDIR_UNIX" + w_die "Your installed uming.ttf is known to be broken. Upgrade your ttf-uming font package!" fi fi @@ -7456,7 +9100,7 @@ load_fontfix() # SDKSetup encountered an error: The type initializer for 'Microsoft.WizardFramework.WizardSettings' threw an exception # and WINEDEBUG=+relay,+seh shows an exception very quickly after # Call KERNEL32.CreateFileW(0c83b36c L"Z:\\USR\\SHARE\\FONTS\\TRUETYPE\\TTF-ORIYA-FONTS\\SAMYAK-ORIYA.TTF",80000000,00000001,00000000,00000003,00000080,00000000) ret=70d44091 - if xlsfonts 2>/dev/null | egrep -i "samyak|oriya" + if xlsfonts 2>/dev/null | egrep -i "samyak.*oriya" then w_die "Please uninstall the Samyak/Oriya font, e.g. 'sudo dpkg -r ttf-oriya-fonts', then log out and log in again. That font causes strange crashes in .net programs." fi @@ -7464,6 +9108,33 @@ load_fontfix() #---------------------------------------------------------------- +w_metadata ipamona fonts \ + title="IPAMona Japanese fonts" \ + publisher="Jun Kobayashi" \ + year="2008" \ + media="download" \ + file1="opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8.tar.gz" \ + installed_file1="$W_FONTSDIR_WIN/ipag-mona.ttf" \ + homepage="http://www.geocities.jp/ipa_mona/" + +load_ipamona() +{ + w_download http://www.geocities.jp/ipa_mona/$file1 57dd13ab58c0005d3ee2932539e4987ab0242bc7 + + cd "$W_TMP" + + gunzip -dc "$W_CACHE/$W_PACKAGE/$file1" | tar -xf - + w_try mv *IPAMonaFonts*/fonts/*.ttf "$W_FONTSDIR_UNIX" + + w_register_font ipagui-mona.ttf "IPAMonaUIGothic" + w_register_font ipag-mona.ttf "IPAMonaGothic" + w_register_font ipagp-mona.ttf "IPAMonaPGothic" + w_register_font ipam-mona.ttf "IPAMonaMincho" + w_register_font ipamp-mona.ttf "IPAMonaPMincho" +} + +#---------------------------------------------------------------- + w_metadata liberation fonts \ title="Red Hat Liberation fonts (Sans, Serif, Mono)" \ publisher="Red Hat" \ @@ -7515,7 +9186,7 @@ w_metadata lucida fonts \ load_lucida() { - w_download ftp://$ftp_microsoft_com/bussys/winnt/winnt-public/fixes/usa/NT40TSE/hotfixes-postSP3/Euro-fix/eurofixi.exe 64c47ad92265f6f10b0fd909a703d4fd1b05b2d5 + w_download ftp://ftp.fu-berlin.de/pc/security/ms-patches/winnt/usa/NT40TSE/hotfixes-postSP3/Euro-fix/eurofixi.exe 64c47ad92265f6f10b0fd909a703d4fd1b05b2d5 w_try_cabextract -d "$W_FONTSDIR_UNIX" -L -F 'lucon.ttf' "$W_CACHE"/lucida/eurofixi.exe w_register_font lucon.ttf "Lucida Console" } @@ -7558,7 +9229,7 @@ load_tahoma() { # The tahoma and tahomabd fonts are needed by e.g. Steam - w_download ftp://$ftp_microsoft_com/Softlib/MSLFILES/tahoma32.exe 888ce7b7ab5fd41f9802f3a65fd0622eb651a068 + w_download http://download.microsoft.com/download/office97pro/fonts/1/w95/en-us/tahoma32.exe 888ce7b7ab5fd41f9802f3a65fd0622eb651a068 w_try_cabextract --directory="$W_TMP" "$W_CACHE"/tahoma/tahoma32.exe w_try cp -f "$W_TMP"/Tahoma.TTF "$W_FONTSDIR_UNIX"/tahoma.ttf w_try cp -f "$W_TMP"/Tahomabd.TTF "$W_FONTSDIR_UNIX"/tahomabd.ttf @@ -7585,9 +9256,9 @@ load_takao() { # The Takao font provides Japanese glyphs. May also be needed with fakejapanese function above. # See http://launchpad.net/takao-fonts for project page - w_download http://launchpad.net/takao-fonts/003.02/003.02.01/+download/takao-fonts-ttf-003.02.01.zip 4f636d5c7c1bc16b96ea723adb16838cfb6df059 + w_download http://launchpad.net/takao-fonts/trunk/003.02.01/+download/takao-fonts-ttf-003.02.01.zip 4f636d5c7c1bc16b96ea723adb16838cfb6df059 cp -f "$W_CACHE"/takao/takao-fonts-ttf-003.02.01.zip "$W_TMP" - w_try_unzip -d "$W_TMP" "$W_TMP"/takao-fonts-ttf-003.02.01.zip + w_try_unzip "$W_TMP" "$W_TMP"/takao-fonts-ttf-003.02.01.zip w_try cp -f "$W_TMP"/takao-fonts-ttf-003.02.01/*.ttf "$W_FONTSDIR_UNIX" w_register_font TakaoGothic.ttf "TakaoGothic" @@ -7613,7 +9284,7 @@ load_uff() { w_download http://font.ubuntu.com/download/ubuntu-font-family-0.70.1.zip efbab0d5d8cb5cff091307d2360dcb1bfe1ae6e1 cd "$W_TMP" - w_try_unzip "$W_CACHE"/uff/ubuntu-font-family-0.70.1.zip + w_try_unzip . "$W_CACHE"/uff/ubuntu-font-family-0.70.1.zip mv ubuntu-font-family-0.70.1/*.ttf "$W_FONTSDIR_UNIX" w_register_font Ubuntu-R.ttf "Ubuntu" @@ -7659,7 +9330,7 @@ load_unifont() # See http://unifoundry.com/unifont.html for project page w_download http://unifoundry.com/unifont-5.1.20080907.zip bb8a3960dc0a96aa305de28312ea8a0ab64123d2 cp -f "$W_CACHE"/unifont/unifont-5.1.20080907.zip "$W_TMP" - w_try_unzip -d "$W_TMP" "$W_TMP"/unifont-5.1.20080907.zip + w_try_unzip "$W_TMP" "$W_TMP"/unifont-5.1.20080907.zip w_try cp -f "$W_TMP"/unifont-5.1.20080907.ttf "$W_FONTSDIR_UNIX/unifont.ttf" w_register_font unifont.ttf "Unifont" @@ -7691,21 +9362,39 @@ load_allfonts() # Apps #---------------------------------------------------------------- -w_metadata 7zip apps \ - title="7-Zip" \ - publisher="Igor Pavlov" \ - year="1999" \ +w_metadata 3m_library apps \ + title="3M Cloud Library" \ + publisher="3M Company" \ + year="2015" \ media="download" \ - file1="7z465.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/7-Zip/7z.exe" + file1="3M-TM-Cloud-Library-PC-App-LIVE-Installer-1.51.735677.exe" \ + installed_exe1="$W_PROGRAMS_X86_WIN/3M(TM) Cloud Library PC App/3MCloudLibrary.exe" + homepage="http://www.3m.com/us/library/eBook/index.html" + +load_3m_library() +{ + w_download http://www.3m.com/us/library/eBook/docs/3M-TM-Cloud-Library-PC-App-LIVE-Installer-1.51.735677.exe 810dc5f6b74ab7b34893288ee44ef7dc563a4ee7 + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" 3M-TM-Cloud-Library-PC-App-LIVE-Installer-1.51.735677.exe $W_UNATTENDED_SLASH_S + w_declare_exe "$W_PROGRAMS_X86_WIN\\3M(TM) Cloud Library PC App" "3MCloudLibrary.exe" +} + +#---------------------------------------------------------------- + +w_metadata 7zip apps \ + title="7-Zip 15.05 beta" \ + publisher="Igor Pavlov" \ + year="2015" \ + media="download" \ + file1="7z1505.exe" \ + installed_exe1="$W_PROGRAMS_X86_WIN/7-Zip/7zFM.exe" load_7zip() { - # FIXME: use more up to date version - w_download http://downloads.sourceforge.net/project/sevenzip/7-Zip/4.65/7z465.exe c36012e960fa3932cd23f30ac5b0fe722740243a - cd "$W_CACHE"/7zip - w_try $WINE 7z465.exe $W_UNATTENDED_SLASH_S - w_declare_exe "$W_PROGRAMS_X86_WIN\\7-Zip" "7z.exe" + w_download http://www.7-zip.org/a/7z1505.exe ece8bbd4c8903095d44e99196219c953a1d47bfd + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" 7z1505.exe $W_UNATTENDED_SLASH_S + w_declare_exe "$W_PROGRAMS_X86_WIN\\7-Zip" "7zFM.exe" } #---------------------------------------------------------------- @@ -7722,14 +9411,14 @@ load_abiword() { w_download http://www.abisource.com/downloads/abiword/2.8.6/Windows/abiword-setup-2.8.6.exe a91acd3f60e842d23556032d34f1600602768318 cd "$W_CACHE"/abiword - w_try $WINE abiword-setup-2.8.6.exe $W_UNATTENDED_SLASH_S + w_try "$WINE" abiword-setup-2.8.6.exe $W_UNATTENDED_SLASH_S w_declare_exe "$W_PROGRAMS_X86_WIN\\AbiWord\\bin" AbiWord.exe } #---------------------------------------------------------------- w_metadata adobe_diged apps \ - title="Adobe Digital Editions" \ + title="Adobe Digital Editions 1.7" \ publisher="Adobe" \ year="2011" \ media="download" \ @@ -7741,13 +9430,50 @@ load_adobe_diged() { w_download http://kb2.adobe.com/cps/403/kb403051/attachments/setup.exe 4c79685408fa6ca12ef8bb0e0eaa4a846e21f915 # NSIS installer - w_try $WINE "$W_CACHE"/$W_PACKAGE/setup.exe ${W_OPT_UNATTENDED:+ /S} + w_try "$WINE" "$W_CACHE"/$W_PACKAGE/setup.exe ${W_OPT_UNATTENDED:+ /S} w_declare_exe "$W_PROGRAMS_X86_WIN\\Adobe\\Adobe Digital Editions" \ digitaleditions.exe } #---------------------------------------------------------------- +w_metadata adobe_diged4 apps \ + title="Adobe Digital Editions 4.5" \ + publisher="Adobe" \ + year="2015" \ + media="download" \ + file1="ADE_4.5_Installer.exe" \ + installed_exe1="$W_PROGRAMS_X86_WIN/Adobe/Adobe Digital Editions 4.5/DigitalEditions.exe" \ + homepage="http://www.adobe.com/products/digitaleditions/" + +load_adobe_diged4() +{ + w_download http://download.adobe.com/pub/adobe/digitaleditions/ADE_4.5_Installer.exe + + if w_workaround_wine_bug 32323 + then + w_call corefonts + fi + if [ ! -x "`which winbindd 2>/dev/null`" ] + then + w_warn "Adobe Digital Editions 4.5 requires winbind (part of samba) to be installed, but winbind was not detected." + fi + + w_call dotnet40 + + #w_call win7 + cd "$W_CACHE/$W_PACKAGE" + w_ahk_do " + SetTitleMatchMode, 2 + run, ${file1} ${W_OPT_UNATTENDED:+ /S} + winwait, Installing Adobe Digital Editions + ControlClick, Button1 ; Don't install Norton Internet Security + ControlClick, Static19 ; Next + " +} + +#---------------------------------------------------------------- + w_metadata audible apps \ title="Audible.com Manager / Player" \ publisher="Audible" \ @@ -7827,26 +9553,7 @@ load_autohotkey() W_BROWSERAGENT=1 \ w_download http://www.autohotkey.com/download/AutoHotkey104805_Install.exe 13e5a9ca6d5b7705f1cd02560c3af4d38b1904fc cd "$W_CACHE"/autohotkey - w_try $WINE AutoHotkey104805_Install.exe $W_UNATTENDED_SLASH_S -} - -#---------------------------------------------------------------- - -w_metadata kobo apps \ - title="Kobo e-book reader" \ - publisher="Kobo" \ - year="2011" \ - media="download" \ - file1="KoboSetup.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/Kobo/Kobo.exe" \ - homepage="http://www.borders.com/online/store/MediaView_ereaderapps" - -load_kobo() -{ - w_download http://download.kobobooks.com/desktop/1/KoboSetup.exe 31a5f5583edf4b716b9feacb857d2170104cabd9 - cd "$W_CACHE"/kobo - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ /S} - w_declare_exe "$W_PROGRAMS_X86_WIN\\Kobo" "Kobo.exe" + w_try "$WINE" AutoHotkey104805_Install.exe $W_UNATTENDED_SLASH_S } #---------------------------------------------------------------- @@ -7854,16 +9561,16 @@ load_kobo() w_metadata cmake apps \ title="CMake 2.8" \ publisher="Kitware" \ - year="2011" \ + year="2013" \ media="download" \ - file1="cmake-2.8.6-win32-x86.exe" \ + file1="cmake-2.8.11.2-win32-x86.exe" \ installed_exe1="$W_PROGRAMS_X86_WIN/CMake 2.8/bin/cmake-gui.exe" load_cmake() { - w_download http://www.cmake.org/files/v2.8/cmake-2.8.6-win32-x86.exe 47172b78e5d5f99cf5dc623db309781234153d56 + w_download http://www.cmake.org/files/v2.8/cmake-2.8.11.2-win32-x86.exe d79af5715c0ad48d78bb731cce93b5ad89b16512 cd "$W_CACHE"/cmake - w_try $WINE cmake-2.8.6-win32-x86.exe $W_UNATTENDED_SLASH_S + w_try "$WINE" cmake-2.8.11.2-win32-x86.exe $W_UNATTENDED_SLASH_S w_declare_exe "$W_PROGRAMS_X86_WIN\\CMake 2.8\\bin" "cmake-gui.exe" } @@ -7881,7 +9588,7 @@ w_metadata colorprofile apps \ load_colorprofile() { w_download http://download.microsoft.com/download/whistler/hwdev1/1.0/wxp/en-us/ColorProfile.exe 6b72836b32b343c82d0760dff5cb51c2f47170eb - w_try_unzip -d "$W_TMP" "$W_CACHE"/colorprofile/ColorProfile.exe + w_try_unzip "$W_TMP" "$W_CACHE"/colorprofile/ColorProfile.exe # It's in system32 for both win32/win64 mkdir -p "$W_WINDIR_UNIX"/system32/spool/drivers/color @@ -7912,7 +9619,7 @@ load_controlpad() "") quiet="" ;; *) quiet="/qt" esac - w_try $WINE setup $quiet + w_try "$WINE" setup $quiet if ! test -f "$W_SYSTEM32_DLLS"/FM20.DLL then @@ -7924,36 +9631,19 @@ load_controlpad() #---------------------------------------------------------------- -w_metadata cygwin apps \ - title="cygwin" \ - publisher="Red Hat" \ - year="2009" \ +w_metadata controlspy apps \ + title="Control Spy 2.0 " \ + publisher="Microsoft" \ + year="2005" \ media="download" \ - file1="setup.exe" \ - installed_exe1="C:/cygwin/bin/sh.exe" + file1="ControlSpy.msi" \ + installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft/ControlSpy/ControlSpyV6.exe" -load_cygwin() +load_controlspy() { - if w_workaround_wine_bug 24018 - then - # Wine can't handle current cygwin, so use some random verison of cygwin's setup from mid-2009 - w_download http://kegel.com/cygwin/1.5/setup.exe 5cfb8ebe4f385b0fcffa04d22d607ec75ea05180 - w_warn "Paste in ftp://www.fruitbat.org/pub/cygwin/circa/2009/09/08/111037 as the repo url for now, until bug 21206 is fixed" - # -X option is insecure, but we have to use it because fruitbat.org didn't archive .sig files :-( - _W_cygopts="-X" - else - w_download http://cygwin.com/setup.exe 9a24bcbcf58d8ab25d9e915399c9be51ac1837c3 - _W_cygopts= - fi - - mkdir -p "$W_DRIVE_C"/cygpkgs - # If you happen to have saved your cygpkgs directory, unpack it now - test -f "$W_CACHE/cygwin/cygpkgs.tgz" && (cd "$W_DRIVE_C"; gunzip -dc "$W_CACHE/cygwin/cygpkgs.tgz" | tar -xf -) - # FIXME: automate the base installation - cp "$W_CACHE/cygwin/setup.exe" "$W_DRIVE_C"/cygpkgs - cd "$W_DRIVE_C"/cygpkgs - w_try $WINE setup.exe $_W_cygopts - unset _W_cygopts + w_download http://download.microsoft.com/download/a/3/1/a315b133-03a8-4845-b428-ec585369b285/ControlSpy.msi efe33701f78b5853ba73353f028b777b4c849e77 + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" msiexec /i ControlSpy.msi ${W_OPT_UNATTENDED:+/qb} } #---------------------------------------------------------------- @@ -7972,6 +9662,8 @@ load_dxdiag() { helper_directx_dl + w_call gmdls + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "dxdiag.exe" "$W_TMP/dxnt.cab" mkdir -p "$W_WINDIR_UNIX/help" @@ -7982,11 +9674,15 @@ load_dxdiag() then w_call dxdiagn fi - if w_workaround_wine_bug 25715 + if w_workaround_wine_bug 9027 + then + w_call directmusic + fi + if w_workaround_wine_bug 25715 "" 1.7.28, then w_call quartz fi - if w_workaround_wine_bug 25716 + if w_workaround_wine_bug 25716 "" 1.7.29, then w_call devenum fi @@ -7994,101 +9690,42 @@ load_dxdiag() #---------------------------------------------------------------- -w_metadata firefox35 apps \ - title="Firefox 3.5" \ - publisher="Mozilla" \ - year="2011" \ +w_metadata emu8086 apps \ + title="emu8086" \ + publisher="emu8086.com" \ + year="2013" \ media="download" \ - file1="Firefox Setup 3.5.19.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/Mozilla Firefox/firefox.exe" + file1="emu8086.zip" \ + installed_exe1="c:/emu8086/emu8086.exe" -load_firefox35() +load_emu8086() { - w_download "ftp://archive.mozilla.org/pub/mozilla.org/firefox/releases/3.5.19/win32/en-US/Firefox%20Setup%203.5.19.exe" 14c3852e9693b5f17982fa01a0d29f9d1422be79 "$file1" - cd "$W_CACHE"/firefox35 - w_try $WINE "$file1" ${W_OPT_UNATTENDED:+ -ms} - - w_declare_exe "$W_PROGRAMS_X86_WIN\\Mozilla Firefox" firefox.exe -} - -#---------------------------------------------------------------- - -w_metadata firefox36 apps \ - title="Firefox 3.6" \ - publisher="Mozilla" \ - year="2012" \ - media="download" \ - file1="Firefox Setup 3.6.28.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/Mozilla Firefox/firefox.exe" - -load_firefox36() -{ - w_download "ftp://ftp.mozilla.org/pub/firefox/releases/3.6.28/win32/en-US/Firefox%20Setup%203.6.28.exe" 3657287c2cff34f5edc237de954a9cc6f2ca465a "$file1" - cd "$W_CACHE"/firefox36 - w_try $WINE "$file1" ${W_OPT_UNATTENDED:+ -ms} - - if w_workaround_wine_bug 29077 - then - w_warn "Visit about:config, search for dom.ipc, and set those booleans false if you want to use flash." - fi - - w_declare_exe "$W_PROGRAMS_X86_WIN\\Mozilla Firefox" firefox.exe -} - -#---------------------------------------------------------------- - -w_metadata firefox5 apps \ - title="Firefox 5" \ - publisher="Mozilla" \ - year="2011" \ - media="download" \ - file1="Firefox Setup 5.0.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/Mozilla Firefox/firefox.exe" - -load_firefox5() -{ - if w_workaround_wine_bug 22972 "" 1.3.0, - then - w_die "Requires wine-1.3.0 or later to install" - fi - - if w_workaround_wine_bug 29077 - then - w_warn "Visit about:config, search for dom.ipc, and set those booleans false if you want to use flash." - fi - - w_download "ftp://ftp.mozilla.org/pub/firefox/releases/5.0/win32/en-US/Firefox%20Setup%205.0.exe" 288895db0a58b91801c5c1dfc0017131300dba00 "$file1" - cd "$W_CACHE"/firefox5 - w_try $WINE "$file1" ${W_OPT_UNATTENDED:+ -ms} - - w_declare_exe "$W_PROGRAMS_X86_WIN\\Mozilla Firefox" firefox.exe + w_download https://web.archive.org/web/20140209022335/http://emu8086.com/emu8086.zip fa3b2451cbc46fd2e3aa2670fa4d81ae8e75c7db + w_try_unzip "$W_TMP" "$W_CACHE/$W_PACKAGE"/$file1 + w_try "$WINE" "$W_TMP/Setup.exe" $W_UNATTENDED_SLASH_SILENT + w_declare_exe "c:\\emu8086" "emu8086.exe" } #---------------------------------------------------------------- w_metadata firefox apps \ - title="Firefox 11" \ + title="Firefox 39.0" \ publisher="Mozilla" \ - year="2012" \ + year="2015" \ media="download" \ - file1="Firefox Setup 11.0.exe" \ + file1="FirefoxSetup39.0.exe" \ installed_exe1="$W_PROGRAMS_X86_WIN/Mozilla Firefox/firefox.exe" load_firefox() { - if w_workaround_wine_bug 22972 "" 1.3.0, - then - w_die "Requires wine-1.3.0 or later to install" - fi - - if w_workaround_wine_bug 29077 + if w_workaround_wine_bug 29077 "" 1.7.25, then w_warn "Visit about:config, search for dom.ipc, and set those booleans false if you want to use flash." fi - w_download "http://download.mozilla.org/?product=firefox-11.0&os=win&lang=en-US" f6b5d4dfa6f9f16758c6aee0dcb0a20ba0bb27e9 "$file1" + w_download "https://download.mozilla.org/?product=firefox-39.0-SSL&os=win&lang=en-US" 75eccbd9b2d44210b551c9a5045f03f01e899528 "$file1" cd "$W_CACHE"/firefox - w_try $WINE "$file1" ${W_OPT_UNATTENDED:+ -ms} + w_try "$WINE" "$file1" ${W_OPT_UNATTENDED:+ -ms} w_declare_exe "$W_PROGRAMS_X86_WIN\\Mozilla Firefox" firefox.exe } @@ -8109,25 +9746,64 @@ load_fontxplorer() w_download http://www.moonsoftware.com/files/legacy/Font_Xplorer_122_Free.exe 22feb63be28730cbfad5458b139464490a25a68d cd "$W_CACHE/fontxplorer" - w_try $WINE Font_Xplorer_122_Free.exe $W_UNATTENDED_SLASH_S + w_try "$WINE" Font_Xplorer_122_Free.exe $W_UNATTENDED_SLASH_S w_declare_exe "$W_PROGRAMS_X86_WIN\\Font Xplorer" "FXplorer.exe" } +#---------------------------------------------------------------- + +w_metadata foobar2000 apps \ + title="foobar2000 v1.3.6" \ + publisher="Peter Pawlowski" \ + year="2014" \ + media="manual_download" \ + file1="foobar2000_v1.3.6.exe" \ + installed_exe1="$W_PROGRAMS_X86_WIN/foobar2000/foobar2000.exe" + +load_foobar2000() +{ + w_download_manual http://www.foobar2000.org/download foobar2000_v1.3.6.exe 77d1c3aa766853701d29e46b3018aaf1e1b5dd39 + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" $file1 $W_UNATTENDED_SLASH_S + w_declare_exe "$W_PROGRAMS_X86_WIN\\foobar2000" "foobar2000.exe" +} + +#---------------------------------------------------------------- + +w_metadata iceweasel apps \ + title="GNU Icecat 31.7.0" \ + publisher="GNU Foundation" \ + year="2015" \ + media="download" \ + file1="icecat-31.7.0.en-US.win32.zip" \ + installed_exe1="$W_PROGRAMS_X86_WIN/icecat/icecat.exe" + +load_iceweasel() +{ + if w_workaround_wine_bug 29077 "" 1.7.25, + then + w_warn "Visit about:config, search for dom.ipc, and set those booleans false if you want to use flash." + fi + + w_download https://ftp.gnu.org/gnu/gnuzilla/31.7.0/icecat-31.7.0.en-US.win32.zip cf52a728c1af29065b7dc7bdddc9265a79eb5328 + w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/${file1}" +} + + #---------------------------------------------------------------- w_metadata irfanview apps \ title="Irfanview" \ publisher="Irfan Skiljan" \ - year="2012" \ - media="manual_download" \ - file1="iview433_setup.exe" \ + year="2014" \ + media="download" \ + file1="iview438_setup.exe" \ installed_file1="$W_PROGRAMS_X86_WIN/IrfanView/i_view32.exe" \ homepage="http://www.irfanview.com/" load_irfanview() { - w_download_manual http://download.cnet.com/IrfanView/3000-2192_4-10021962.html iview433_setup.exe 79a7ebe2325ad204712761aa3c3a072025b07784 - + w_download http://fossies.org/windows/misc/iview438_setup.exe c55c2fd91ac1af03e8063442b110ba771357d42e if w_workaround_wine_bug 657 "Installing mfc42" then w_call mfc42 @@ -8142,38 +9818,43 @@ load_irfanview() run $file1 winwait, Setup, This program will install winactivate, Setup, This program will install - winwaitactive, Setup, This program will install - send !a ; set up for all users - send n ; next - winwait, Setup, new in this version - winactivate, Setup, new in this version - winwaitactive, Setup, new in this version - send n ; skip release notes - winwait, Setup, Do you want to associate extensions - winactivate, Setup, Do you want to associate extensions - winwaitactive, Setup, Do you want to associate extensions - send n ; don't associate any extensions (default) - Loop - { - ifWinExist, Setup, Ready to install - { - break - } - ifWinExist, Setup, Google Chrome - { - winactivate, Setup, Google Chrome - winwaitactive, Setup, Google Chrome - send !c ; decline Chrome - send !n - continue - } - sleep 500 - } - winwait, Setup, Ready to install - send n ; default .ini folder - WinWait, IrfanView Setup, successfull ; sic - send !s ; do not launch - send d ; done + Sleep 900 + ControlClick, Button7 ; Uncheck All + Sleep 900 + ControlClick, Button11 ; Next + Sleep 900 + winwait, Setup, version + Sleep 900 + ControlClick, Button11 ; Next + Sleep 900 + winwait, Setup, associate extensions + Sleep 900 + ControlClick, Button1 ; Images Only associations + Sleep 900 + ControlClick, Button16 ; Next + Sleep 900 + winwait, Setup, Search + Sleep 900 + ControlClick, Button1 ; deselect chrome googsrch + Sleep 900 + ControlClick, Button18 ; Next + Sleep 1000 + winwait, Setup, INI + Sleep 1000 + ControlClick, Button23 ; Next + Sleep 1000 + winwait, Setup, You want to change + winactivate, Setup, really + Sleep 900 + ControlClick, Button1 ; Yes + Sleep 900 + winwait, Setup, successful + winactivate, Setup, successful + Sleep 900 + ControlClick, Button2 ; no start irfanview + Sleep 900 + ControlClick, Button27 ; done + Sleep 900 winwaitclose " else @@ -8205,22 +9886,22 @@ load_ie6() w_download_manual http://www.oldversion.com/download-Internet-Explorer-6.0.html msie60.exe 8e483db28ff01a7cabd39147ab6c59753ea1f533 cd "$W_TMP" - $WINE "$W_CACHE"/ie6/$file1 + "$WINE" "$W_CACHE"/ie6/$file1 w_call msls31 # Unregister Wine IE if [ ! -f "$W_SYSTEM32_DLLS"/plugin.ocx ] then - w_try $WINE iexplore -unregserver + w_try "$WINE" iexplore -unregserver fi # Change the override to the native so we are sure we use and register them - w_override_dlls native,builtin iexplore.exe inetcpl.cpl itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi urlmon + w_override_dlls native,builtin iexplore.exe inetcpl.cpl itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi # 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 urlmon + for dll in itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi do test -f "$W_SYSTEM32_DLLS"/$dll.dll && mv "$W_SYSTEM32_DLLS"/$dll.dll "$W_SYSTEM32_DLLS"/$dll.dll.bak @@ -8244,9 +9925,9 @@ load_ie6() cd "$W_TMP/IE 6.0 Full" if [ $W_UNATTENDED_SLASH_Q ] then - $WINE IE6SETUP.EXE /q:a /r:n /c:"ie6wzd /S:""#e"" /q:a /r:n" + "$WINE" IE6SETUP.EXE /q:a /r:n /c:"ie6wzd /S:""#e"" /q:a /r:n" else - $WINE IE6SETUP.EXE + "$WINE" IE6SETUP.EXE fi # IE6 exits with 194 to signal a reboot @@ -8266,11 +9947,11 @@ load_ie6() msoeacct.dll msrating.dll mstime.dll msxml3.dll occache.dll \ ole32.dll oleaut32.dll olepro32.dll pngfilt.dll quartz.dll \ rpcrt4.dll rsabase.dll rsaenh.dll scrobj.dll scrrun.dll \ - shdocvw.dll shell32.dll urlmon.dll vbscript.dll webcheck.dll \ + shdocvw.dll shell32.dll vbscript.dll webcheck.dll \ wshcon.dll wshext.dll asctrls.ocx hhctrl.ocx mscomct2.ocx \ plugin.ocx proctexe.ocx tdc.ocx webcheck.dll wshom.ocx do - $WINE regsvr32 /i $i > /dev/null 2>&1 + "$WINE" regsvr32 /i $i > /dev/null 2>&1 done # Set windows version back to user's default. Leave at win2k for better rendering (is there a bug for that?) @@ -8292,14 +9973,19 @@ w_metadata ie7 dlls \ load_ie7() { + if w_workaround_wine_bug XX "ie7 install fails in wine-1.8.1+" 1.8.1, + then + w_warn "ie7 install fails in wine-1.8.1+, see https://github.com/Winetricks/winetricks/issues/582" + fi + # Unregister Wine IE if grep -q -i "wine placeholder" "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe" then - w_try $WINE iexplore -unregserver + w_try "$WINE" iexplore -unregserver fi # Change the override to the native so we are sure we use and register them - w_override_dlls native,builtin iexplore.exe itircl itss jscript mshtml msimtf shdoclc shdocvw shlwapi urlmon xmllite + w_override_dlls native,builtin iexplore.exe itircl itss jscript mshtml msimtf shdoclc shdocvw shlwapi urlmon wininet xmllite # Bundled updspapi cannot work on wine w_override_dlls builtin updspapi @@ -8313,12 +9999,21 @@ load_ie7() # See http://bugs.winehq.org/show_bug.cgi?id=16013 # Find instructions to create this file in dlls/wintrust/tests/crypt.c - w_download http://winezeug.googlecode.com/svn/trunk/winetricks_files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f + w_download https://github.com/Winetricks/winetricks/raw/master/files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f # Put a dummy catalog file in place mkdir -p "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\} w_try cp -f "$W_CACHE"/ie7/winetest.cat "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}/oem0.cat + # KLUDGE: if / is writable (as on MacOSX?), having a z: mapping to it + # causes ie7 to put temporary directories on Z:\ + # so hide it temporarily. This is not very robust! + if test -w / + then + rm -f "$WINEPREFIX/dosdevices/z:.bak_wt" + mv "$WINEPREFIX/dosdevices/z:" "$WINEPREFIX/dosdevices/z:.bak_wt" + fi + # Install w_download http://download.microsoft.com/download/3/8/8/38889DC1-848C-4BF2-8335-86C573AD86D9/IE7-WindowsXP-x86-enu.exe d39b89c360fbaa9706b5181ae4718100687a5326 if test "$W_UNATTENDED_SLASH_Q" = "" @@ -8329,22 +10024,23 @@ load_ie7() fi cd "$W_CACHE"/ie7 - # KLUDGE: if / is writable, having a z: mapping to it causes ie7 to put temporary directories on Z:\ - # so hide it temporarily. This is not very robust! - rm -f "$WINEPREFIX/dosdevices/z:.bak_wt" - mv "$WINEPREFIX/dosdevices/z:" "$WINEPREFIX/dosdevices/z:.bak_wt" + "$WINE" IE7-WindowsXP-x86-enu.exe $quiet - # FIXME: can't check status, as it always reports failure on wine? - if w_workaround_wine_bug 21947 + # IE7 exits with 194 to signal a reboot + status=$? + case $status in + 0) ;; + 105) echo "exit status $status - normal, user selected 'restart now'" ;; + 194) echo "exit status $status - normal, user selected 'restart later'" ;; + *) w_die "exit status $status - $W_PACKAGE installation failed" ;; + esac + + if test -w / then - WINEDEBUG=warn+heap $WINE IE7-WindowsXP-x86-enu.exe $quiet - else - $WINE IE7-WindowsXP-x86-enu.exe $quiet + # END KLUDGE: restore z:, assuming user didn't kill us + mv "$WINEPREFIX/dosdevices/z:.bak_wt" "$WINEPREFIX/dosdevices/z:" fi - # END KLUDGE: restore z:, assuming user didn't kill us - mv "$WINEPREFIX/dosdevices/z:.bak_wt" "$WINEPREFIX/dosdevices/z:" - # Work around DLL registration bug until ierunonce/RunOnce/wineboot is fixed # FIXME: whittle down this list cd "$W_SYSTEM32_DLLS" @@ -8359,17 +10055,17 @@ load_ie7() wshcon.dll wshext.dll asctrls.ocx hhctrl.ocx mscomct2.ocx \ plugin.ocx proctexe.ocx tdc.ocx webcheck.dll wshom.ocx do - $WINE regsvr32 /i $i > /dev/null 2>&1 + "$WINE" regsvr32 /i $i > /dev/null 2>&1 done # 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'" ;; *) - 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" http://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'" + "$WINE" "${W_PROGRAMS_WIN}\\Internet Explorer\\iexplore" http://www.microsoft.com/windows/internet-explorer/ie7/ > /dev/null 2>&1 & ;; esac } @@ -8390,19 +10086,19 @@ load_ie8() if grep -q -i "wine placeholder" "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe" #if [ ! -f "$W_SYSTEM32_DLLS"/plugin.ocx ] then - w_try $WINE iexplore -unregserver + w_try "$WINE" iexplore -unregserver fi w_call msls31 # Change the override to the native so we are sure we use and register them - w_override_dlls native,builtin iexplore.exe itircl itss jscript msctf mshtml shdoclc shdocvw shlwapi urlmon xmllite + w_override_dlls native,builtin iexplore.exe itircl itss jscript msctf mshtml shdoclc shdocvw shlwapi urlmon wininet xmllite # Bundled updspapi cannot work on wine w_override_dlls builtin updspapi # Remove the fake dlls from the existing WINEPREFIX - for dll in browseui.dll inseng.dll itircl itss jscript msctf mshtml shdoclc shdocvw shlwapi urlmon + for dll in browseui.dll inseng.dll itircl itss jscript msctf mshtml shdoclc shdocvw shlwapi urlmon do test -f "$W_SYSTEM32_DLLS"/$dll.dll && mv "$W_SYSTEM32_DLLS"/$dll.dll "$W_SYSTEM32_DLLS"/$dll.dll.bak @@ -8410,7 +10106,7 @@ load_ie8() # See http://bugs.winehq.org/show_bug.cgi?id=16013 # Find instructions to create this file in dlls/wintrust/tests/crypt.c - w_download http://winezeug.googlecode.com/svn/trunk/winetricks_files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f + w_download https://github.com/Winetricks/winetricks/raw/master/files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f # Put a dummy catalog file in place mkdir -p "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\} @@ -8433,7 +10129,7 @@ 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 $quiet + "$WINE" IE8-WindowsXP-x86-ENU.exe $quiet # END KLUDGE: restore z:, assuming user didn't kill us mv "$WINEPREFIX/dosdevices/z:.bak_wt" "$WINEPREFIX/dosdevices/z:" @@ -8451,7 +10147,7 @@ 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 + "$WINE" regsvr32 /i $i > /dev/null 2>&1 done if w_workaround_wine_bug 25648 "Setting TabProcGrowth=0 to avoid hang" @@ -8469,57 +10165,55 @@ _EOF_ # 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'" ;; *) - 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" http://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'" + "$WINE" "${W_PROGRAMS_WIN}\\Internet Explorer\\iexplore" http://www.microsoft.com/windows/internet-explorer > /dev/null 2>&1 & ;; esac } #---------------------------------------------------------------- +w_metadata kobo apps \ + title="Kobo e-book reader" \ + publisher="Kobo" \ + year="2011" \ + media="download" \ + file1="KoboSetup.exe" \ + installed_exe1="$W_PROGRAMS_X86_WIN/Kobo/Kobo.exe" \ + homepage="http://www.borders.com/online/store/MediaView_ereaderapps" + +load_kobo() +{ + w_download http://download.kobobooks.com/desktop/1/KoboSetup.exe 31a5f5583edf4b716b9feacb857d2170104cabd9 + cd "$W_CACHE"/kobo + w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S} + w_declare_exe "$W_PROGRAMS_X86_WIN\\Kobo" "Kobo.exe" +} + +#---------------------------------------------------------------- + w_metadata mingw apps \ title="Minimalist GNU for Windows, including GCC for Windows" \ publisher="GNU" \ - year="2010-2011" \ + year="2013" \ media="download" \ - file1="binutils-2.21-2-mingw32-bin.tar.lzma" \ + file1="mingw-get-setup.exe" \ installed_exe1="c:/MinGW/bin/gcc.exe" \ homepage="http://mingw.org/wiki/Getting_Started" load_mingw() { - w_download $WINETRICKS_SOURCEFORGE/mingw/files/binutils-2.21-2-mingw32-bin.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/gcc-core-4.5.2-1-mingw32-bin.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/libgcc-4.5.2-1-mingw32-dll-1.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/libgmpxx-5.0.1-1-mingw32-dll-4.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/mingwrt-3.18-mingw32-dev.tar.gz - w_download $WINETRICKS_SOURCEFORGE/mingw/files/mingwrt-3.18-mingw32-dll.tar.gz - w_download $WINETRICKS_SOURCEFORGE/mingw/files/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/libpthread-2.8.0-3-mingw32-dll-2.tar.lzma - w_download $WINETRICKS_SOURCEFORGE/mingw/files/w32api-3.15-1-mingw32-dev.tar.lzma + w_download "$WINETRICKS_SOURCEFORGE/mingw/files/mingw-get-setup.exe" 66f1355f16ac1e328243e877880eb6e45e8b30e2 - mkdir "$W_DRIVE_C"/MinGW - cd "$W_DRIVE_C"/MinGW - lzma -d -c "$W_CACHE"/mingw/binutils-2.21-2-mingw32-bin.tar.lzma | tar xf - - gzip -d -c "$W_CACHE"/mingw/mingwrt-3.18-mingw32-dev.tar.gz | tar xf - - gzip -d -c "$W_CACHE"/mingw/mingwrt-3.18-mingw32-dll.tar.gz | tar xf - - lzma -d -c "$W_CACHE"/mingw/w32api-3.15-1-mingw32-dev.tar.lzma | tar xf - - lzma -d -c "$W_CACHE"/mingw/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma | tar xf - - lzma -d -c "$W_CACHE"/mingw/libmpc-0.8.1-1-mingw32-dll-2.tar.lzma | tar xf - - lzma -d -c "$W_CACHE"/mingw/libgmpxx-5.0.1-1-mingw32-dll-4.tar.lzma | tar xf - - lzma -d -c "$W_CACHE"/mingw/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma | tar xf - - lzma -d -c "$W_CACHE"/mingw/libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma | tar xf - - lzma -d -c "$W_CACHE"/mingw/libpthread-2.8.0-3-mingw32-dll-2.tar.lzma | tar xf - - lzma -d -c "$W_CACHE"/mingw/libgcc-4.5.2-1-mingw32-dll-1.tar.lzma | tar xf - - lzma -d -c "$W_CACHE"/mingw/gcc-core-4.5.2-1-mingw32-bin.tar.lzma | tar xf - + cd "$W_CACHE/mingw" + w_try "$WINE" "$file1" w_append_path 'C:\MinGW\bin' + w_try "$WINE" mingw-get update + w_try "$WINE" mingw-get install gcc msys-base } #---------------------------------------------------------------- @@ -8527,21 +10221,17 @@ load_mingw() w_metadata mpc apps \ title="Media Player Classic - Home Cinema" \ publisher="doom9 folks" \ - year="2010" \ + year="2014" \ media="download" \ - file1="MPC-HomeCinema.1.4.2499.0.x86.zip" \ - installed_file1="$W_PROGRAMS_X86_WIN/Media Player Classic/mpc-hc.exe" \ + file1="MPC-HC.1.7.5.x86.exe" \ + installed_file1="$W_PROGRAMS_X86_WIN/MPC-HC/mpc-hc.exe" \ homepage="http://mpc-hc.sourceforge.net" load_mpc() { - w_download $WINETRICKS_SOURCEFORGE/project/mpc-hc/MPC%20HomeCinema%20-%20Win32/MPC-HC%20v1.4.2499.0_32%20bits/MPC-HomeCinema.1.4.2499.0.x86.zip 9f8c4a8e70fa36ffa68f878d13adc8b09b915ece - - mkdir -p "$W_PROGRAMS_X86_UNIX/Media Player Classic" - cd "$W_PROGRAMS_X86_UNIX/Media Player Classic" - w_try_unzip -j "$W_CACHE/mpc/MPC-HomeCinema.1.4.2499.0.x86.zip" - - w_declare_exe "$W_PROGRAMS_X86_WIN\Media Player Classic" mpc-hc.exe + w_download $WINETRICKS_SOURCEFORGE/project/mpc-hc/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.7.5_x86/MPC-HC.1.7.5.x86.exe 39f90869929007ae0576ae30dca6cd22ed5a59c2 + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" MPC-HC.1.7.5.x86.exe ${W_OPT_UNATTENDED:+ /VERYSILENT} } #---------------------------------------------------------------- @@ -8549,16 +10239,20 @@ load_mpc() w_metadata mspaint apps \ title="MS Paint" \ publisher="Microsoft" \ - year="2001" \ + year="2010" \ media="download" \ - file1="paintnt.exe" \ - installed_exe1="c:/windows/MSPAINT.EXE" + file1="WindowsXP-KB978706-x86-ENU.exe" \ + installed_file1="c:/windows/mspaint.exe" load_mspaint() { - # http://helpforlinux.blogspot.com/2008/12/run-ms-paint-in-linux.html - w_download http://download.microsoft.com/download/winntwks40/paint/1/nt4/en-us/paintnt.exe a22c4e367ef9d2cd23f0a8ae8d9ebff5bc1e8a0b - w_try_unzip "$W_CACHE"/mspaint/paintnt.exe -d "$W_WINDIR_UNIX" + if w_workaround_wine_bug 657 "Native mspaint.exe from XP requires mfc42.dll" + then + w_call mfc42 + fi + w_download http://download.microsoft.com/download/0/A/4/0A40DF5C-2BAE-4C63-802A-84C33B34AC98/WindowsXP-KB978706-x86-ENU.exe f4e076b3867c2f08b6d258316aa0e11d6822b8d7 + w_try $WINE "$W_CACHE"/mspaint/WindowsXP-KB978706-x86-ENU.exe /q /x:"$W_TMP"/WindowsXP-KB978706-x86-ENU + w_try cp -f "$W_TMP"/WindowsXP-KB978706-x86-ENU/SP3GDR/mspaint.exe "$W_WINDIR_UNIX"/mspaint.exe w_declare_exe "$W_WINDIR_UNIX" "mspaint.exe" } @@ -8582,13 +10276,30 @@ load_nook() # 7 Mar 2012 sha1sum e7060a63b9b303ddd820de762d9df254e1c931bc w_download http://images.barnesandnoble.com/PResources/download/eReader2/bndr2_setup_latest.exe e7060a63b9b303ddd820de762d9df254e1c931bc cd "$W_CACHE"/nook - $WINE $file1 ${W_OPT_UNATTENDED:+ /S} + "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S} # normally has exit status 199? w_declare_exe "$W_PROGRAMS_WIN\\Barnes & Noble\\BNDesktopReader" "BNDReader.exe" } #---------------------------------------------------------------- +w_metadata npp apps \ + title="Notepad++" \ + publisher="Don Ho" \ + year="2015" \ + media="download" \ + file1="npp.6.7.9.2.Installer.exe" \ + installed_exe1="$W_PROGRAMS_X86_WIN/Notepad++/notepad++.exe" + +load_npp() +{ + w_download https://notepad-plus-plus.org/repository/6.x/6.7.9.2/npp.6.7.9.2.Installer.exe 34574fb2e4e06ff941061bf444b57ce926ce23d7 + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" "${file1}" $W_UNATTENDED_SLASH_S +} + +#---------------------------------------------------------------- + w_metadata office2003pro apps \ title="Microsoft Office 2003 Professional" \ publisher="Microsoft" \ @@ -8681,7 +10392,7 @@ load_office2007pro() __EOF__ - $WINE ${W_ISO_MOUNT_LETTER}:setup.exe /config "$W_TMP_WIN"\\config.xml + "$WINE" ${W_ISO_MOUNT_LETTER}:setup.exe /config "$W_TMP_WIN"\\config.xml status=$? case $status in @@ -8697,7 +10408,7 @@ $W_CACHE/$W_PACKAGE/key.txt and rerun." esac else - w_try $WINE ${W_ISO_MOUNT_LETTER}:setup.exe + w_try "$WINE" ${W_ISO_MOUNT_LETTER}:setup.exe fi w_declare_exe "$W_PROGRAMS_X86_WIN\\Microsoft Office\\Office12" WINWORD.EXE word2007 @@ -8723,12 +10434,84 @@ load_opera() { w_download ftp://ftp.opera.com/pub/opera/win/1150/en/Opera_1150_en_Setup.exe df50c7aed50e92af858e8834f833dd0543014b46 cd "$W_CACHE"/$W_PACKAGE - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ /silent /launchopera 0 /allusers} + w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /silent /launchopera 0 /allusers} w_declare_exe "$W_PROGRAMS_X86_WIN\\Opera" opera.exe } #---------------------------------------------------------------- +w_metadata picasa39 apps \ + title="Picasa 3.9" \ + publisher="Google" \ + year="2014" \ + file1="picasa39-setup.exe" \ + installed_exe1="$W_PROGRAMS_X86_WIN/Google/Picasa3/Picasa3.exe" + +load_picasa39() +{ + # 2015/01/17: 39b2df46dbc423e250371e826026a2827f55b956 + # 2015/09/21: 55907fc84b1d9d6a450463869b16927f07737298 + w_download http://dl.google.com/picasa/picasa39-setup.exe 55907fc84b1d9d6a450463869b16927f07737298 + if w_workaround_wine_bug 29434 "Picasa 3.9 fails to authenticate with Google" + then + w_warn "Picasa 3.9 authentication to the Google account is currently broken under wine. See http://bugs.winehq.org/show_bug.cgi?id=29434 for more details." + fi + if w_workaround_wine_bug 37729 "Picasa updater crashes during install unless dotnet20 loaded" + then + w_call dotnet20 + fi + cd "$W_CACHE"/$W_PACKAGE + w_ahk_do " + SetTitleMatchMode, 2 + run picasa39-setup.exe + WinWait, Picasa 3 Setup + if ( w_opt_unattended > 0 ) { + Sleep 1000 + ControlClick Button2 ;I Agree - License + Sleep 1000 + WinWait, Picasa 3 Setup, Choose Install Location + ControlClick Button2 ;Install + Sleep 1000 + WinWait, Picasa 3 Setup, Picasa 3 has been installed on your computer + Sleep 500 + ControlClick Button5 ; Desktop Icon + Sleep 500 + ControlClick Button6 ; Quick Launch + Sleep 500 + ControlClick Button7 ; Default search off + Sleep 500 + ControlClick Button8 ; Usage statistics sent + Sleep 500 + ControlClick Button4 ; Run Picasa + Sleep 500 + ControlClick Button2 ; Finish + } + WinWaitClose + " + w_declare_exe "$W_PROGRAMS_X86_WIN\\Google\\Picasa3" "Picasa3.exe" +} + +#---------------------------------------------------------------- + +w_metadata protectionid apps \ + title="Protection ID" \ + publisher="CDKiLLER & TippeX" \ + year="2015" \ + media="download" \ + file1="ProtectionId.670.halloween.2015.rar" \ + installed_file1="$W_SYSTEM32_DLLS_WIN/protection_id.exe" + +load_protectionid() +{ + w_download http://pid.gamecopyworld.com/dl.php?f=ProtectionId.670.halloween.2015.rar a307e15f28d00959cffddd8fda073aac6df943c8 "$file1" + cd "$W_SYSTEM32_DLLS" + w_try_unrar "${W_CACHE}/${W_PACKAGE}/${file1}" + # ProtectionId.670.halloween.2015 has a different executable name than usual, this may need to be disabled on next update: + mv Protection_ID.eXe protection_id.exe +} + +#---------------------------------------------------------------- + w_metadata psdk2003 apps \ title="MS Platform SDK 2003" \ publisher="Microsoft" \ @@ -8748,14 +10531,14 @@ load_psdk2003() # Only the windows version of 7z can handle .img files? WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip cd "$W_PROGRAMS_X86_UNIX"/7-Zip - w_try $WINE 7z.exe x -y -o"$W_TMP_WIN" "$W_CACHE_WIN\\psdk2003\\5.2.3790.1830.15.PlatformSDK_Svr2003SP1_rtm.img" + w_try "$WINE" 7z.exe x -y -o"$W_TMP_WIN" "$W_CACHE_WIN\\psdk2003\\5.2.3790.1830.15.PlatformSDK_Svr2003SP1_rtm.img" cd "$W_TMP/Setup" # Sanity check... w_verify_sha1sum 6376ab5394226f426366d0646bf244d26156697b PSDK-x86.msi - w_try $WINE msiexec /i PSDK-x86.msi ${W_OPT_UNATTENDED:+/qb} + w_try "$WINE" msiexec /i PSDK-x86.msi ${W_OPT_UNATTENDED:+/qb} } #---------------------------------------------------------------- @@ -8786,7 +10569,7 @@ load_psdkwin7() then w_warn "When given a choice, select only C++ compilers and headers, the other options don't work yet. See http://bugs.winehq.org/show_bug.cgi?id=21596" fi - w_try $WINE winsdk_web.exe + w_try "$WINE" winsdk_web.exe if w_workaround_wine_bug 21362 then @@ -8811,7 +10594,70 @@ _EOF_ #---------------------------------------------------------------- -w_metadata python26 apps \ +w_metadata psdkwin71 apps \ + title="MS Windows 7.1 SDK" \ + publisher="Microsoft" \ + year="2010" \ + media="download" \ + file1="winsdk_web.exe" \ + installed_exe1="C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/SetEnv.Cmd" + +load_psdkwin71() +{ + w_call dotnet20 + w_call dotnet40 + w_call mfc42 # need mfc42u, or setup will abort + # http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en + w_download http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe a8717ebb20a69c7efa85232bcb9899b8b07f98cf + cd "$W_CACHE"/psdkwin71 + if w_workaround_wine_bug 21596 + then + w_warn "When given a choice, select only C++ compilers and headers, the other options don't work yet. See http://bugs.winehq.org/show_bug.cgi?id=21596" + fi + # don't have a working unattended recipe. Maybe we'll have to + # do an autohotkey script until msft gets its act together: + # http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/c053b616-7d5b-405d-9841-ec465a8e21d5 + w_try "$WINE" winsdk_web.exe + + if w_workaround_wine_bug 21362 + then + # Assume user installed in default location + cat > "$W_TMP"/set-psdk71.reg <<_EOF_ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows] +"CurrentVersion"="v7.1" +"CurrentInstallFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1] +"InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\" +"ProductVersion"="7.0.7600.0.30514" +"ProductName"="Microsoft Windows SDK for Windows 7 (7.0.7600.0.30514)" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKBuild] +"ComponentName"="Microsoft Windows SDK Headers and Libraries" +"InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\" +"ProductVersion"="7.0.7600.0.30514" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKTools] +"ComponentName"="Microsoft Windows SDK Headers and Libraries" +"InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\bin\\\" +"ProductVersion"="7.0.7600.0.30514" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKWin32Tools] +"ComponentName"="Microsoft Windows SDK Utilities for Win32 Development" +"InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\bin\\\" +"ProductVersion"="7.0.7600.0.30514" +_EOF_ + w_try_regedit "$W_TMP_WIN"\\set-psdk71.reg + fi +} + +#---------------------------------------------------------------- + +w_metadata python26 dlls \ title="Python Interpreter, version 2.6.2" \ publisher="Python Software Foundaton" \ year="2009" \ @@ -8823,8 +10669,14 @@ load_python26() { w_download http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi 2d1503b0e8b7e4c72a276d4d9027cf4856b208b8 w_download $WINETRICKS_SOURCEFORGE/project/pywin32/pywin32/Build%20214/pywin32-214.win32-py2.6.exe eca58f29b810d8e3e7951277ebb3e35ac35794a3 + + if [ "$WINETRICKS_WINE_VERSION" = "wine-1.4.1" ] + then + w_die "This installer is broken under $WINETRICKS_WINE_VERSION. Please upgrade Wine. See https://code.google.com/p/winetricks/issues/detail?id=347 for more info." + fi + cd "$W_CACHE"/python26 - w_try $WINE msiexec /i python-2.6.2.msi ALLUSERS=1 $W_UNATTENDED_SLASH_Q + w_try "$WINE" msiexec /i python-2.6.2.msi ALLUSERS=1 $W_UNATTENDED_SLASH_Q w_ahk_do " SetTitleMatchMode, 2 @@ -8845,25 +10697,47 @@ load_python26() #---------------------------------------------------------------- -w_metadata python26_comtypes apps \ - title="Comtypes 0.6.2 for Python 2.6" \ +w_metadata python26_comtypes dlls \ + title="Comtypes for Python 2.6" \ publisher="theller" \ - year="2010" \ + year="2014" \ media="download" \ - file1="comtypes-0.6.2.zip" \ - installed_file1="c:/Python26/Lib/site-packages/comtypes-0.6.2-py2.6.egg-info" \ - homepage="http://sourceforge.net/projects/comtypes" + file1="1.1.1.zip" \ + installed_file1="c:/Python26/Lib/site-packages/comtypes-1.1.1-py2.6.egg/EGG-INFO/PKG-INFO" \ + homepage="https://github.com/enthought/comtypes/releases" load_python26_comtypes() { w_call python26 + w_call python26_setuptools - w_download $WINETRICKS_SOURCEFORGE/comtypes/0.6.2/comtypes-0.6.2.zip b84f4e3050652d494e8c8d9d6d6f221c124ffba9 + w_download https://github.com/enthought/comtypes/archive/${file1} 080921ede048063a3be273f5dca3acc469dfe361 - cd "$W_TMP" - w_try_unzip "$W_CACHE/$W_PACKAGE"/comtypes-0.6.2.zip - cd comtypes-0.6.2 - w_try $WINE "C:\Python26\python.exe" setup.py install + w_try_unzip "$W_TMP" "${W_CACHE}/${W_PACKAGE}/${file1}" + cd "$W_TMP/comtypes-$(basename ${file1} .zip)" + w_try "$WINE" "C:\Python26\python.exe" setup.py install +} + +#---------------------------------------------------------------- + +w_metadata python26_setuptools dlls \ + title="Setuptools 18.0.1 for Python 2.6" \ + publisher="Python Packaging Authority" \ + year="2010" \ + media="download" \ + file1="ez_setup.py" \ + installed_file1="c:/Python26/Lib/site-packages/setuptools.pth" \ + homepage="https://pypi.python.org/pypi/setuptools" + +load_python26_setuptools() +{ + w_call python26 + + # Not checking sha1sum, script frequently updates and there aren't stable versions + w_download https://bootstrap.pypa.io/ez_setup.py + + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" "C:\Python26\python.exe" ${file1} } #---------------------------------------------------------------- @@ -8907,14 +10781,10 @@ load_spotify() WinClose } WinWaitClose + sleep 1000 + Process, Close, SpotifyWebHelper.exe " - # Kill the background task started if "Allow Spotify to be started from the Web" is specified - # or should we just do $WINESERVER -k, like fable_tlc does? - PID=`ps augxw | grep SpotifyWebHelper.exe | grep -v grep | awk '{print $2}'` - - kill $PID - w_declare_exe "c:\\users\\$LOGNAME\\Application Data\\Spotify" spotify.exe } @@ -8952,9 +10822,9 @@ _EOF_ if test $W_OPT_UNATTENDED then w_warn "Safari's silent install is broken under wine. See http://bugs.winehq.org/show_bug.cgi?id=23493. You should do a regular install if you want to use Safari." - w_try $WINE SafariSetup.exe /qn + w_try "$WINE" SafariSetup.exe /qn else - w_try $WINE SafariSetup.exe + w_try "$WINE" SafariSetup.exe fi w_declare_exe "$W_PROGRAMS_X86_WIN\\Safari" "Safari.exe" @@ -9019,27 +10889,6 @@ _EOF_ #---------------------------------------------------------------- -w_metadata songbird apps \ - title="Songbird" \ - publisher="POTI" \ - year="2010" \ - media="manual_download" \ - file1="Songbird_1.10.1-2160_windows-i686-msvc8.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/Songbird/songbird.exe" \ - homepage="http://getsongbird.com" - -load_songbird() -{ - w_download_manual \ - http://getsongbird.com/system-requirements.php Songbird_1.10.1-2160_windows-i686-msvc8.exe \ - 3939988180e1bfba3f28ff5720942cbbc20b7fbf - cd "$W_CACHE/songbird" - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ /S} - w_declare_exe "$W_PROGRAMS_X86_WIN\\Songbird" songbird.exe -} - -#---------------------------------------------------------------- - w_metadata steam apps \ title="Steam" \ publisher="Valve" \ @@ -9052,7 +10901,12 @@ load_steam() { # 18 Mar 2011 7f2fee9ffeaba8424a6c76d6c95b794735ac9959 # 29 Nov 2012 fa053c268b6285741d1a1392c25f92c5cb2a6ffb - w_download http://storefront.steampowered.com/download/SteamInstall.msi fa053c268b6285741d1a1392c25f92c5cb2a6ffb + # 17 Mar 2014 b2a3fdbe4a662f3bf751f5b8bfc61f8d35e050fe + # 11 Dec 2014 7ad8fbeffa6c963b821f80129c15c9d8e85f9a4a + # 6 Jan 2015 e04aefe8bc894f11f211edec8e8a008abe0147d2 + # 21 Jun 2015 0e8046d40c38d817338135ec73a5b217cc340cf5 + # 29 Dec 2015 728e3c82fd57c68cbbdb64965719081ffee6272c + w_download http://media.steampowered.com/client/installer/SteamSetup.exe 728e3c82fd57c68cbbdb64965719081ffee6272c cd "$W_CACHE"/steam # Install corefonts first, so if the user doesn't have cabextract/Wine with cab support, we abort before installing Steam. @@ -9063,7 +10917,30 @@ load_steam() w_call corefonts fi - w_try $WINE msiexec /i SteamInstall.msi $W_UNATTENDED_SLASH_Q + if test $W_OPT_UNATTENDED + then + w_ahk_do " + run, SteamSetup.exe + SetTitleMatchMode, 2 + WinWait, Steam, Using Steam + ControlClick, Button2 + WinWait, Steam, Please review + ControlClick, Button4 + sleep 1000 + ControlClick, Button2 + WinWait, Steam, Select the language + ControlClick, Button2 + WinWait, Steam, Choose the folder + ControlClick, Button2 + WinWait, Steam, Steam has been installed + ControlClick, Button4 + sleep 1000 + ControlClick, Button2 + WinWaitClose + " + else + w_try "$WINE" SteamSetup.exe + fi # Not all users need this disabled, but let's play it safe for now if w_workaround_wine_bug 22053 "Disabling gameoverlayrenderer to prevent game crashes on some machines." @@ -9093,11 +10970,15 @@ load_uplay() { # 4 June 2013 3.0.1 sha1sum fdb9e736b5b2211fb23b35d30d52deae6f4b32a4 # 1 July 2013 3.1.0 sha1sum 21a7f469534dd1463eaaab6b2be2fa9084bceea2 - w_download http://static3.cdn.ubi.com/orbit/launcher_installer/UplayInstaller.exe 21a7f469534dd1463eaaab6b2be2fa9084bceea2 + # 11 Nov 2013 4.0 sha1sum 52e287f9f78313e4713d2f070b15734410da0c5a + # 26 Dec 2013 4.2 sha1sum ada2c11ee62eee19f8b1661bd974862e336623c6 + # 16 Feb 2014 ? sha1sum 19f98632ad1ff330c647f8ff1a3a15b44238c709 + # Changes too frequently, don't check anymore + w_download http://static3.cdn.ubi.com/orbit/launcher_installer/UplayInstaller.exe cd "$W_CACHE"/uplay # NSIS installer - w_try $WINE UplayInstaller.exe ${W_OPT_UNATTENDED:+ /S} + w_try "$WINE" UplayInstaller.exe ${W_OPT_UNATTENDED:+ /S} if w_workaround_wine_bug 33742 "Using native crypt32 so uplay's autoupdater doesn't abort" then @@ -9168,7 +11049,7 @@ load_utorrent3() cd "$W_CACHE/$W_PACKAGE" # If you don't use /PERFORMINSTALL, it just runs uTorrent # FIXME: That's no longer a quiet option, though.. - $WINE $file1 /PERFORMINSTALL /NORUN + "$WINE" $file1 /PERFORMINSTALL /NORUN # dang installer exits with status 1 on success status=$? @@ -9204,22 +11085,22 @@ load_vc2005express() w_download http://download.microsoft.com/download/A/9/1/A91D6B2B-A798-47DF-9C7E-A97854B7DD18/VC.iso 1ae44e4eaf8c61c3a39e573fd6efd9889e940529 # Unpack ISO (how handy that 7z can do this!) - cd "$W_TMP" - w_try_7z x "$W_CACHE"/vc2005express/VC.iso + w_try_7z "$W_TMP" "$W_CACHE"/vc2005express/VC.iso + cd "$W_TMP" if [ $W_UNATTENDED_SLASH_Q ] then chmod +x Ixpvc.exe # Add /qn after ReallySuppress for a really silent install (but then you won't see any errors) - w_try $WINE Ixpvc.exe /t:"$W_TMP_WIN" /q:a /c:"msiexec /i vcsetup.msi VSEXTUI=1 ADDLOCAL=ALL REBOOT=ReallySuppress" + w_try "$WINE" Ixpvc.exe /t:"$W_TMP_WIN" /q:a /c:"msiexec /i vcsetup.msi VSEXTUI=1 ADDLOCAL=ALL REBOOT=ReallySuppress" else if w_workaround_wine_bug 25331 then w_warn "Install fails with wine older than 1.1.35. With wine-1.3.5 or higher, interactive install fails, but quiet mode (-q option) may work." fi - w_try $WINE setup.exe + w_try "$WINE" setup.exe w_ahk_do " SetTitleMatchMode, 2 WinWait, Visual C++ 2005 Express Edition Setup @@ -9232,6 +11113,28 @@ load_vc2005express() #---------------------------------------------------------------- +w_metadata vc2005expresssp1 apps \ + title="MS Visual C++ 2005 Express SP1" \ + publisher="Microsoft" \ + year="2007" \ + media="download" \ + file1="VS80sp1-KB926748-X86-INTL.exe" + +load_vc2005expresssp1() +{ + w_call vc2005express + + # http://www.microsoft.com/downloads/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E + if w_workaround_wine_bug 37375 + then + w_warn "Installer currently fails" + fi + w_download http://download.microsoft.com/download/7/7/3/7737290f-98e8-45bf-9075-85cc6ae34bf1/VS80sp1-KB926748-X86-INTL.exe 8b9a0172efad64774aa122f29e093ad2043b308d + w_try $WINE "$W_CACHE"/vc2005expresssp1/VS80sp1-KB926748-X86-INTL.exe +} + +#---------------------------------------------------------------- + w_metadata vc2005trial apps \ title="MS Visual C++ 2005 Trial" \ publisher="Microsoft" \ @@ -9268,7 +11171,7 @@ load_vc2005trial() # Only the windows version of 7z can handle .img files? WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip cd "$W_PROGRAMS_X86_UNIX"/7-Zip - w_try $WINE 7z.exe x -y -o"$W_TMP_WIN" "$W_CACHE_WIN\\vc2005trial\\En_vs_2005_vsts_180_Trial.img" + w_try "$WINE" 7z.exe x -y -o"$W_TMP_WIN" "$W_CACHE_WIN\\vc2005trial\\En_vs_2005_vsts_180_Trial.img" cd "$W_TMP" @@ -9319,32 +11222,78 @@ load_vc2008express() w_download http://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.iso 76c6d28274a67741da720744026ea991a70867d1 # Unpack ISO - cd "$W_TMP" - w_try_7z x "$W_CACHE"/vc2008express/VS2008ExpressENUX1397868.iso - cd VCExpress + w_try_7z "$W_TMP" "$W_CACHE"/vc2008express/VS2008ExpressENUX1397868.iso # See also http://blogs.msdn.com/b/astebner/archive/2008/04/25/8425198.aspx - w_try $WINE setup.exe $W_UNATTENDED_SLASH_Q + cd "$W_TMP"/VCExpress + w_try "$WINE" setup.exe $W_UNATTENDED_SLASH_Q w_declare_exe "$W_PROGRAMS_X86_WIN\\Microsoft Visual Studio 9.0\\Common7\\IDE" "VCExpress.exe" } #---------------------------------------------------------------- -w_metadata vlc apps \ - title="VLC media player" \ - publisher="videolan.org" \ +w_metadata vc2010express apps \ + title="MS Visual C++ 2010 Express" \ + publisher="Microsoft" \ year="2010" \ media="download" \ - file1="vlc-1.1.9-win32.exe" \ + file1="VS2010Express1.iso" \ + installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Visual Studio 10.0/Common7/IDE/VCExpress.exe" + +load_vc2010express() +{ + if w_workaround_wine_bug 32654 "Installing windows codecs to work around startup crash" + then + w_call windowscodecs + fi + if w_workaround_wine_bug 32280 "Replacing mono with dotnet40 to avoid fatal 'Unknown Error'" + then + # "w_call remove_mono" might suffice + w_call dotnet40 + fi + + w_download http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso adef5e361a1f64374f520b9a2d03c54ee43721c6 + + # Unpack ISO + w_try_7z "$W_TMP" "$W_CACHE"/vc2010express/VS2010Express1.iso + cd "$W_TMP"/VCExpress + + # dotnet40 leaves winver at win2k, which causes vc2010 to abort on + # start because it looks for c:\users\$LOGNAME\Application Data + w_set_winver winxp + + if w_workaround_wine_bug 12501 "Installing mspatcha to work around bug in SQL Server install" + then + w_call mspatcha + fi + + if w_workaround_wine_bug 34627 "Installing Visual C++ 2005 managed runtime to work around bug in SQL Server install" + then + w_call vcrun2005 + fi + + w_try $WINE setup.exe $W_UNATTENDED_SLASH_Q + + w_declare_exe "$W_PROGRAMS_X86_WIN\\Microsoft Visual Studio 10.0\\Common7\\IDE" "VCExpress.exe" +} + +#---------------------------------------------------------------- + +w_metadata vlc apps \ + title="VLC media player 2.2.1" \ + publisher="videolan.org" \ + year="2015" \ + media="download" \ + file1="vlc-2.2.1-win32.exe" \ installed_file1="$W_PROGRAMS_X86_WIN/VideoLAN/VLC/vlc.exe" \ homepage="http://www.videolan.org/vlc/" load_vlc() { - w_download $WINETRICKS_SOURCEFORGE/vlc/vlc-1.1.9-win32.exe 7128f6e43d6550fcc2574b9c82c5153ff47efcf6 + w_download http://get.videolan.org/vlc/2.2.1/win32/vlc-2.2.1-win32.exe 4cbcea9764b6b657d2147645eeb5b973b642530e cd "$W_CACHE"/vlc - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ /S} + w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S} w_declare_exe "$W_PROGRAMS_X86_WIN\\VideoLAN\\VLC" vlc.exe } @@ -9352,18 +11301,19 @@ load_vlc() w_metadata winamp apps \ title="Winamp" \ - publisher="AOL (Nullsoft)" \ - year="2011" \ + publisher="Radionomy (AOL (Nullsoft))" \ + year="2013" \ media="download" \ - file1="winamp5621_full_emusic-7plus_en-us.exe" \ + file1="winamp5666_full_all_redux.exe" \ installed_exe1="$W_PROGRAMS_X86_WIN/Winamp/winamp.exe" \ homepage="http://www.winamp.com" load_winamp() { w_info "may send information while installing, see http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?threatid=159633" - w_download \ - http://download.nullsoft.com/winamp/client/winamp5621_full_emusic-7plus_en-us.exe afc172039db52fdc202114bec7bcf8b5bf2468bb + # 2014 winamp5621_full_emusic-7plus_en-us.exe afc172039db52fdc202114bec7bcf8b5bf2468bb + + w_download http://winampplugins.co.uk/Winamp/winamp5666_full_all_redux.exe 136314be0da42ed399b88a106cb1f43093e2c0c2 cd "$W_CACHE/$W_PACKAGE" if test $W_OPT_UNATTENDED then @@ -9371,48 +11321,35 @@ load_winamp() SetWinDelay 500 SetTitleMatchMode, 2 Run $file1 - WinWait, Winamp Installer, Welcome to the Winamp installer - ControlClick, Button2 - WinWait, Winamp Installer, License Agreement - ControlClick, Button2 - WinWait, Winamp Installer, Choose Install Location - ControlClick, Button2 - WinWait, Winamp Installer, Choose Components - ControlClick, Button2 - WinWait, Winamp Installer, Choose Start Options - ControlClick, Button2 - WinWait, Winamp Installer, Get the Most Out of Winamp - ControlClick, Button4 ; decline Winamp toolbar - Sleep 200 - ControlClick, Button5 ; decline AOL Search - Sleep 200 - ControlClick, Button6 ; decline eMusic - Sleep 200 - ControlClick, Button2 - Loop - { - ifWinExist, Winamp Installer, Installation Complete - { - break - } - ifWinExist, Winamp Installer, Recommended - { - WinActivate, Winamp Installer, Recommended - WinWaitActive, Winamp Installer, Recommended - MouseClick, left, 32, 279 ; decline OpenCandy offers - Sleep 200 - ControlClick, Button2 - WinWaitClose, Winamp Installer, Recommended - continue - } - Sleep 200 - } - WinWait, Winamp Installer, Installation Complete - WinActivate, Winamp Installer, Installation Complete - WinWaitActive, Winamp Installer, Installation Complete - send {Tab}{Tab}{Tab}{Space} ; don't launch + WinWait, Installer Language, Please select Sleep 500 - send {Enter} ; Finish + ControlClick, Button1 ; OK + WinWait, Winamp Installer, Welcome to the Winamp installer + Sleep 500 + ControlClick, Button2 ; Next + WinWait, Winamp Installer, License Agreement + Sleep 500 + ControlClick, Button2 ; I Agree + WinWait, Winamp Installer, Choose Install Location + Sleep 500 + ControlClick, Button2 ; Next + WinWait, Winamp Installer, Choose Components + Sleep 500 + ControlClick, Button2 ; Next for Full install + WinWait, Winamp Installer, Choose Start Options + Sleep 500 + ControlClick, Button4 ; uncheck start menu entry + Sleep 500 + ControlClick, Button5 ; uncheck ql icon + Sleep 500 + ControlClick, Button6 ; uncheck deskto icon + Sleep 500 + ControlClick, Button2 ; Install + WinWait, Winamp Installer, Installation Complete + Sleep 500 + ControlClick, Button4 ; uncheck launch when complete + Sleep 500 + ControlClick, Button2 ; Finish WinWaitClose " else @@ -9441,7 +11378,7 @@ load_wme9() w_download http://download.microsoft.com/download/8/1/f/81f9402f-efdd-439d-b2a4-089563199d47/WMEncoder.exe 7a3f8781f3e5705651992ef0150ee30bc1295116 cd "$W_CACHE"/wme9 - w_try $WINE WMEncoder.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" WMEncoder.exe $W_UNATTENDED_SLASH_Q w_declare_exe "$W_PROGRAMS_X86_WIN\\Windows Media Components\\Encoder" "wmenc.exe" } @@ -9459,7 +11396,7 @@ load_wm9codecs() w_download_to wm9codecs http://birds.camden.rutgers.edu/WM9Codecs9x.exe 8b76bdcbea0057eb12b7966edab4b942ddacc253 cd "$W_CACHE/wm9codecs" w_set_winver win2k - w_try $WINE WM9Codecs9x.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" WM9Codecs9x.exe $W_UNATTENDED_SLASH_Q } w_metadata wmp9 dlls \ @@ -9482,11 +11419,6 @@ load_wmp9() w_die "Installer doesn't support 64-bit architecture." fi - if w_workaround_wine_bug 28994 "virtualprotect problem" ,1.3.31 1.3.35, - then - w_die "Please upgrade to wine-1.3.35 to install wmp9." - fi - w_call wsh57 w_set_winver win2k @@ -9494,8 +11426,11 @@ load_wmp9() # See also http://www.microsoft.com/windows/windowsmedia/player/9series/default.aspx w_download http://download.microsoft.com/download/1/b/c/1bc0b1a3-c839-4b36-8f3c-19847ba09299/MPSetup.exe 580536d10657fa3868de2869a3902d31a0de791b - # Wine's wmvcore crashes when the installer asks it to register itself? - w_override_dlls native wmvcore + # remove builtin placeholders to allow update + rm -f "$W_SYSTEM32_DLLS"/wmvcore.dll "$W_SYSTEM32_DLLS"/wmp.dll + # need native wmp override to allow update and later checks to succeed + w_override_dlls native wmp + # FIXME: should we override quartz? Builtin crashes when you play # anything, but maybe that's bug 30557 and only affects new systems? # Wine's pidgen is too stubby, crashes, see wine bug 31111 @@ -9503,11 +11438,11 @@ load_wmp9() # Have to run twice; see http://bugs.winehq.org/show_bug.cgi?id=1886 cd "$W_CACHE"/wmp9 - w_try $WINE MPSetup.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" MPSetup.exe $W_UNATTENDED_SLASH_Q if w_workaround_wine_bug 1886 "Re-installing since it does not work on the first try." 1.5.23, then - w_try $WINE MPSetup.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" MPSetup.exe $W_UNATTENDED_SLASH_Q fi load_wm9codecs @@ -9529,6 +11464,11 @@ w_metadata wmp10 dlls \ load_wmp10() { + if [ $W_ARCH = win64 ] + then + w_die "Installer doesn't support 64-bit architecture. Use a 32-bit WINEPREFIX instead." + fi + # FIXME: what versions of windows are really bundled with wmp10? w_skip_windows wmp10 && return @@ -9540,7 +11480,7 @@ load_wmp10() # Crashes on exit, but otherwise ok; see http://bugs.winehq.org/show_bug.cgi?id=12633 cd "$W_CACHE"/wmp10 - w_try $WINE MP10Setup.exe $W_UNATTENDED_SLASH_Q + w_try "$WINE" MP10Setup.exe $W_UNATTENDED_SLASH_Q # Disable WMP's services, since they depend on unimplemented stuff, they trigger the GUI debugger several times w_try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdr4_2K" @@ -9573,10 +11513,8 @@ load_3dmark2000() w_download http://www.ocinside.de/download/3dmark2000_v11_100308.exe b0400d59cfd45d8c8893d3d4edc58b6285ee1502 fi - cd "$W_TMP" - mkdir $W_PACKAGE - cd $W_PACKAGE - w_try_unzip "$W_CACHE/$W_PACKAGE"/3dmark2000_v11_100308.exe + w_try_unzip "$W_TMP/$W_PACKAGE" "$W_CACHE/$W_PACKAGE"/3dmark2000_v11_100308.exe + cd "$W_TMP/$W_PACKAGE" w_ahk_do " SetTitleMatchMode, 2 run Setup.exe @@ -9908,7 +11846,7 @@ w_metadata algodoo_demo games \ load_algodoo_demo() { - w_download http://www.algodoo.com/download/Algodoo_1_7_1-Win32.exe caa73e73669a8787652a6bed123bbe2682152f12 + w_download http://www.algodoo.com/download/Algodoo_1_7_1-Win32.exe caa73e73669a8787652a6bed123bbe2682152f12 cd "$W_CACHE/$W_PACKAGE" w_ahk_do " @@ -9969,45 +11907,30 @@ load_amnesia_tdd_demo() cd "$W_CACHE/$W_PACKAGE" w_ahk_do " - SetWinDelay 1000 SetTitleMatchMode, 2 - run amnesia_tdd_demo_1.0.1.exe - WinWait,Select Setup Language,language + Run, amnesia_tdd_demo_1.0.1.exe if ( w_opt_unattended > 0 ) { - WinActivate - ;ControlClick, TNewButton1; OK - send {Enter} ; OK - WinWait,Setup - Amnesia - The Dark Descent Demo,Welcome - ;ControlClick TNewButton1 ; Next - send {Enter} ; Next - WinWait,Setup - Amnesia - The Dark Descent Demo,License - ControlClick TNewRadioButton1 ; agree - Sleep 1000 - send !n ; Next - ;send {Enter} ; Next - ;ControlClick TNewButton2 ; Next - WinWait,Setup - Amnesia - The Dark Descent Demo,Destination - ;ControlClick TNewButton3 ; Next - send {Enter} ; Next - WinWait,Folder Does Not Exist,created - ;ControlClick Button1 ; OK - send {Enter} ; OK - WinWait,Setup - Amnesia - The Dark Descent Demo,shortcuts - ;ControlClick TNewButton4 ; Next - send {Enter} ; Next - WinWait,Setup - Amnesia - The Dark Descent Demo,additional tasks - ;ControlClick TNewButton4 ; Next - send {Enter} ; Next - WinWait,Setup - Amnesia - The Dark Descent Demo,installing - ;ControlClick TNewButton4 ; Install - send {Enter} ; Install + WinWait,Select Setup Language, language + ControlClick, TNewButton1 + WinWait, Amnesia - The Dark Descent Demo, Welcome + ControlClick, TNewButton1 + WinWait, Amnesia - The Dark Descent Demo, License + ControlClick, TNewRadioButton1 + ControlClick, TNewButton2 + WinWait, Amnesia - The Dark Descent Demo, installed? + ControlClick, TNewButton3 + WinWait, Folder Does Not Exist, created + ControlClick, Button1 + WinWait, Amnesia - The Dark Descent Demo, shortcuts + ControlClick, TNewButton4 + WinWait, Amnesia - The Dark Descent Demo, additional tasks + ControlClick, TNewButton4 + WinWait, Amnesia - The Dark Descent Demo, ready to begin installing + ControlClick, TNewButton4 + WinWait, Amnesia - The Dark Descent Demo, finished + ControlClick, TNewButton4 + WinWaitClose, Amnesia - The Dark Descent Demo, finished } - WinWait,Setup - Amnesia - The Dark Descent Demo,finished - if ( w_opt_unattended > 0 ) { - ;ControlClick TNewButton4 ; Finish - send {Enter} ; Finish - } - WinWaitClose,Setup - Amnesia - The Dark Descent Demo,finished " w_declare_exe "$W_PROGRAMS_X86_WIN\\Amnesia - The Dark Descent Demo\\redist" "Amnesia.exe" @@ -10026,8 +11949,7 @@ w_metadata aoe3_demo games \ load_aoe3_demo() { - w_download "http://download.microsoft.com/download/a/5/2/a525997e-8423-435b-b694-08118d235064/aoe3trial.exe" \ - 2b0a123243092d79f910db5691d99d469f7c17c3 + w_download "http://download.microsoft.com/download/a/5/2/a525997e-8423-435b-b694-08118d235064/aoe3trial.exe" 2b0a123243092d79f910db5691d99d469f7c17c3 if w_workaround_wine_bug 24897 "Installing msxml4 to avoid font problem" 1.3.9, then @@ -10232,7 +12154,7 @@ load_acreedbro() then sed -i "s,Exec=.*,$myexec," "$mymenu" fi - mymenu="$HOME/.local/share/applications/wine/Programs/Ubisoft/Assassin's Creed Brotherhood/Assassin's Creed Brotherhood.desktop" + mymenu="$XDG_DATA_HOME/applications/wine/Programs/Ubisoft/Assassin's Creed Brotherhood/Assassin's Creed Brotherhood.desktop" if test -f "$mymenu" then sed -i "s,Exec=.*,$myexec," "$mymenu" @@ -10648,129 +12570,6 @@ load_bladekitten_demo() #---------------------------------------------------------------- -w_metadata braid_demo games \ - title="Braid Demo" \ - publisher="Number None" \ - year="2009" \ - media="download" \ - file1="braid_windows_r3.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/Braid/braid.exe" - -load_braid_demo() -{ - if ! test -f "$W_CACHE/$W_PACKAGE/braid_windows_r3.exe" - then - w_download http://mirror.3fl.net.au/games/arcade/braid/client/braid_windows_r3.exe 7ea08ddbf5f2fb2f38057d930389b5af7d737e2c - fi - - cd "$W_CACHE/$W_PACKAGE" - w_ahk_do " - SetTitleMatchMode, 2 - run, braid_windows_r3.exe - if ( w_opt_unattended > 0 ) { - winwait, Braid, install - controlclick, TButton1 - winwait, Braid, Destination - controlclick, TButton3 - winwait, Braid, Ready to Install - controlclick, TButton3 - winwait, Setup, Finishing installation - sleep 5000 - ; Workaround_winebug 21761 - ifwinactive, Setup, ShellExecuteEx failed - { - controlclick, Button1 - } - } - winwait, Braid, finished - if ( w_opt_unattended > 0 ) - controlclick, TButton3 - winwaitclose, Braid, finished - " - - if w_workaround_wine_bug 22161 - then - w_call d3dx9_36 - fi - - w_declare_exe "$W_PROGRAMS_X86_WIN\\Braid" "braid.exe" -} - -#---------------------------------------------------------------- - -w_metadata braid games \ - title="Braid" \ - publisher="Number None" \ - year="2009" \ - media="download" \ - file1="braid_windows_r3.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/Braid/braid.exe" - -load_braid() -{ - if ! test -f "$W_CACHE/$W_PACKAGE/braid_windows_r3.exe" - then - w_download http://mirror.3fl.net.au/games/arcade/braid/client/braid_windows_r3.exe 7ea08ddbf5f2fb2f38057d930389b5af7d737e2c - fi - - cd "$W_CACHE/$W_PACKAGE" - w_ahk_do " - SetTitleMatchMode, 2 - run, braid_windows_r3.exe - if ( w_opt_unattended > 0 ) { - winwait, Braid, install - controlclick, TButton1 - winwait, Braid, Destination - controlclick, TButton3 - winwait, Braid, Ready to Install - controlclick, TButton3 - winwait, Setup, Finishing installation - sleep 5000 - ; Workaround_winebug 21761 - ifwinactive, Setup, ShellExecuteEx failed - { - controlclick, Button1 - } - } - winwait, Braid, finished - if ( w_opt_unattended > 0 ) - controlclick, TButton3 - winwaitclose, Braid, finished - " - - if w_workaround_wine_bug 22161 - then - w_call d3dx9_36 - fi - - w_declare_exe "$W_PROGRAMS_X86_WIN\\Braid" "braid.exe" - - w_read_key - cd "$W_DRIVE_C" - w_ahk_do " - SetTitleMatchMode, 2 - run, run-$W_PACKAGE.bat - winwait, Braid, Enter Registration - controlclick, Button4 - winwait, Enter Registration - send {Raw}$W_RAW_KEY - controlclick, Button1 - sleep 5000 - process, close, braid.exe - " - - # Fix resolution for user: - if [ -x "`which xrandr`" ] - then - xrandr -s 0 - else - w_warn "Xrandr is not available, not sure how to fix resolution, sorry!" - fi - -} - -#---------------------------------------------------------------- - w_metadata cnc_tiberian_sun games \ title="Command and Conquer: Tiberian Sun (2010 edition)" \ publisher="EA" \ @@ -10905,16 +12704,7 @@ w_metadata blobby_volley games \ load_blobby_volley() { w_download_manual http://www.chip.de/downloads/Blobby-Volley_12990993.html blobby.zip c7057c77a5009a88d9d877e17a63b5536ebeb177 - - mkdir -p "$W_DRIVE_C/BlobbyVolley" - cd "$W_CACHE/$W_PACKAGE" - w_try_unzip blobby.zip -d "$W_DRIVE_C/BlobbyVolley" - w_declare_exe "c:\\BlobbyVolley" "volley.exe" - - if w_workaround_wine_bug 4432 - then - w_warn "You may need to apply a patch, see http://bugs.winehq.org/show_bug.cgi?id=4432#c15" - fi + w_try_unzip "$W_DRIVE_C/BlobbyVolley" "$W_CACHE/$W_PACKAGE"/blobby.zip } #---------------------------------------------------------------- @@ -10933,7 +12723,7 @@ load_cim_demo() #w_download http://www.pcgamestore.com/games/cities-in-motion-nbsp/trial/cim-demo-1-0-8.exe d40408b59bc0e6e33b564e9bbb55dbab6c44c630 w_download_manual http://www.fileplanet.com/218762/210000/fileinfo/Cities-in-Motion-Demo cim-demo-1-0-8.exe d40408b59bc0e6e33b564e9bbb55dbab6c44c630 cd "$W_CACHE/$W_PACKAGE" - w_try $WINE cim-demo-1-0-8.exe ${W_OPT_UNATTENDED:+ /sp- /silent /norestart} + w_try "$WINE" cim-demo-1-0-8.exe ${W_OPT_UNATTENDED:+ /sp- /silent /norestart} w_declare_exe "$W_PROGRAMS_X86_WIN\\Cities In Motion Demo" "Cities In Motion.exe" } @@ -11045,7 +12835,7 @@ load_cod1() WinWait, Insert CD, Please insert the Call of Duty CD 2 " - $WINE eject ${W_ISO_MOUNT_LETTER}: + "$WINE" eject ${W_ISO_MOUNT_LETTER}: w_mount CoD2 w_ahk_do " @@ -11056,7 +12846,7 @@ load_cod1() WinWait, Insert CD, Please insert the Call of Duty CD 1 " - $WINE eject ${W_ISO_MOUNT_LETTER}: + "$WINE" eject ${W_ISO_MOUNT_LETTER}: w_mount CoD1 w_ahk_do " @@ -11078,7 +12868,7 @@ load_cod1() } WinWaitClose " - $WINE eject ${W_ISO_MOUNT_LETTER}: + "$WINE" eject ${W_ISO_MOUNT_LETTER}: if w_workaround_wine_bug 21558 then @@ -11282,8 +13072,7 @@ load_civ4_demo() { w_download_manual http://download.cnet.com/Civilization-IV-demo/3000-7489_4-10465206.html Civilization4_Demo.zip b54f1e5d0a1c2d1ef456d0c20098c23bbb6a0ea7 - cd "$W_CACHE/$W_PACKAGE" - w_try_unzip Civilization4_Demo.zip -d "$W_TMP" + w_try_unzip "$W_TMP" "$W_CACHE/$W_PACKAGE"/Civilization4_Demo.zip cd "$W_TMP/$W_PACKAGE" chmod +x setup.exe w_ahk_do " @@ -11333,11 +13122,9 @@ w_metadata crayonphysics_demo games \ load_crayonphysics_demo() { - w_download \ - http://crayonphysicsdeluxe.s3.amazonaws.com/$file1 \ - 4ffd64c630f69e7cf024ef946c2c64c8c4ce4eac + w_download http://crayonphysicsdeluxe.s3.amazonaws.com/crayon_release52demo.exe 4ffd64c630f69e7cf024ef946c2c64c8c4ce4eac # Inno Setup installer - w_try $WINE "$W_CACHE/$W_PACKAGE/$file1" ${W_OPT_UNATTENDED:+ /sp- /silent /norestart} + w_try "$WINE" "$W_CACHE/$W_PACKAGE/$file1" ${W_OPT_UNATTENDED:+ /sp- /silent /norestart} w_declare_exe "$W_PROGRAMS_X86_WIN\\Crayon Physics Deluxe Demo" crayon.exe } @@ -12009,8 +13796,7 @@ load_dirt2_demo() { w_download_manual http://www.joystiq.com/game/dirt-2/download/dirt-2-demo/ Dirt2Demo.zip 13af1beb8c4f6300e4655045b66aea1f8a29f2b3 - mkdir "$W_TMP/$W_PACKAGE" - w_try_unzip -d "$W_TMP/$W_PACKAGE" "$W_CACHE/$W_PACKAGE/Dirt2Demo.zip" + w_try_unzip "$W_TMP/$W_PACKAGE" "$W_CACHE/$W_PACKAGE/Dirt2Demo.zip" if w_workaround_wine_bug 23532 then @@ -12065,19 +13851,19 @@ w_metadata divinity2_demo games \ title="Divinity II Demo" \ publisher="DTP Entertainment" \ year="2010" \ - media="download" \ - file1="Divinity2_DEMO_EN.exe" \ + media="manual_download" \ + file1="Divinity2_DEMO_EN_US.zip" \ installed_file1="$W_PROGRAMS_X86_WIN/Divinity II - Ego Draconis - Demo/Bin/Divinity2_Demo.exe" load_divinity2_demo() { - w_download "http://demos.dtp-entertainment.ag/Divinity2_DEMO_EN.exe" \ - 01161a1375f5ee3bb215753e40dd1dcdceffd3a7 + w_download_manual "http://www.gamershell.com/download_54304.shtml" $file1 2a33670b705d4da89e1119d808cda64977bb6096 - cd "$W_CACHE/$W_PACKAGE" + w_try unzip -d "$W_TMP" "$W_CACHE/$W_PACKAGE/$file1" + cd "$W_TMP" w_ahk_do " - Run, Divinity2_DEMO_EN.exe + Run, Divinity2_DEMO_EN_US.exe SetTitleMatchMode, 2 WinWait,Setup - Divinity II - Ego Draconis - Demo if ( w_opt_unattended > 0 ) { @@ -13071,7 +14857,7 @@ load_gta_vc() w_declare_exe "$W_PROGRAMS_X86_WIN\\Rockstar Games\\Grand Theft Auto Vice City" gta-vc.exe myexec="Exec=env WINEPREFIX=\"$WINEPREFIX\" wine cmd /c 'C:\\\\\\\\Run-gta_vc.bat'" - mymenu="$HOME/.local/share/applications/wine/Programs/Rockstar Games/Grand Theft Auto Vice City/Play GTA Vice City.desktop" + mymenu="$XDG_DATA_HOME/applications/wine/Programs/Rockstar Games/Grand Theft Auto Vice City/Play GTA Vice City.desktop" if test -f "$mymenu" && w_workaround_wine_bug 26304 "Fixing system menu" then # this is a hack, hopefully the wine bug will be fixed soon @@ -13426,130 +15212,6 @@ load_kotor1() w_declare_exe "$W_PROGRAMS_X86_WIN\\LucasArts\\SWKotOR" "swkotor.exe" } -#-------------------------------------------------------------------- - -w_metadata kotor2 games \ - title="Star Wars: Knights of the Old Republic 2" \ - publisher="LucasArts" \ - year="2005" \ - media="cd" \ - file1="K2_UK_v_1_0_dsc_.iso" \ - installed_exe1="$W_PROGRAMS_X86_WIN/LucasArts/SWKotOR2/swkotor2.exe" - -load_kotor2() -{ - if w_workaround_wine_bug 16596 - then - w_call vd=800x600 - fi - - w_mount "K2_UK_v_1_0_dsc_" - w_ahk_do " - SetTitleMatchMode 2 - SetWinDelay 500 - run ${W_ISO_MOUNT_LETTER}:setup.exe - winwait Star Wars, Welcome - if ( w_opt_unattended > 0 ) { - controlclick button1 - winwait Star Wars, License Agreement - controlclick button2 - winwait Question, Licensing Agreement - controlclick button1 - winwait Star Wars, Destination Location - controlclick button1 - winwait Star Wars, Program Folder - controlclick button2 - } - winwait Next Disk, disk 2 - " - w_umount - w_mount "K2_UK_v_1_0_dsc_" - w_ahk_do " - SetTitleMatchMode 2 - winwait Next Disk, disk 2 - if ( w_opt_unattended > 0 ) - controlclick button2 - winwait Next Disk, disk 3 - " - w_umount - w_mount "K2_UK_v_1_0_dsc_" - w_ahk_do " - SetTitleMatchMode 2 - winwait Next Disk, disk 3 - if ( w_opt_unattended > 0 ) - controlclick button2 - winwait Next Disk, disk 4 - " - w_umount - w_mount "K2_UK_v_1_0_dsc_" - w_ahk_do " - SetTitleMatchMode 2 - winwait Next Disk, disk 4 - if ( w_opt_unattended > 0 ) - controlclick button2 - winwait Next Disk, Play disc - " - w_umount - w_mount "K2_UK_v_1_0_dsc_" - w_ahk_do " - SetTitleMatchMode 2 - SetWinDelay 500 - winwait Next Disk, Play disc - if ( w_opt_unattended > 0 ) { - controlclick button2 - winwait Question, shortcut - controlclick button1 - winwait Question, DirectX - controlclick button2 - } - winwait Star Wars, Wizard Complete - if ( w_opt_unattended > 0 ) { - controlclick button1 - controlclick button2 - controlclick button4 - } - winwaitclose Star Wars, Wizard Complete - " - - # download 1.0a and 1.0b patches - w_download ftp://ftp.lucasarts.com/patches/pc/KotOR2%20Patch%20v201420%20UK.exe ab97a0d41ae15782418d0fd1b2ad43ccf35ca070 - w_download ftp://ftp.lucasarts.com/patches/pc/sw_pc_uk_from201420_to211427.exe cf4ed797a0314b3ca047012f732321c6ba9a2388 - - cd "$W_CACHE/$W_PACKAGE" - - # install 1.0a patch - w_ahk_do " - SetTitleMatchMode 2 - SetWinDelay 500 - run KotOR2 Patch v201420 UK.exe - winwait RTPatch Software, 1.0a - if ( w_opt_unattended > 0 ) { - controlclick button1 - winwait RTPatch Software, updated - controlclick button1 - } - winwaitclose RTPatch Software - " - - # install 1.0b patch - w_ahk_do " - SetTitleMatchMode 2 - SetWinDelay 500 - run sw_pc_uk_from201420_to211427.exe - winwait RTPatch Software, 1.0b - if ( w_opt_unattended > 0 ) { - controlclick button1 - winwait Update1_0b.txt - winclose Update1_0b.txt ;close readme that pops up - winwait RTPatch Software, updated - controlclick button1 - } - winwaitclose RTPatch Software - " - - w_declare_exe "$W_PROGRAMS_X86_WIN\\LucasArts\\SWKotOR2" "swkotor2.exe" -} - #---------------------------------------------------------------- w_metadata losthorizon_demo games \ @@ -13625,7 +15287,7 @@ load_lego_potc_demo() w_download_manual http://www.gamershell.com/download_73976.shtml LPOTC_PC_Demo.zip 3025dcbbee9ff2d74d7837a78ef5b7aceae15d8f cd "$W_TMP" w_info "Unpacking $file1" - w_try_unzip "$W_CACHE/$W_PACKAGE/$file1" LPOTC_PC_Demo.exe + w_try_unzip . "$W_CACHE/$W_PACKAGE/$file1" LPOTC_PC_Demo.exe w_ahk_do " SetWinDelay, 500 SetTitleMatchMode, 2 @@ -14037,7 +15699,7 @@ load_masseffect2_demo() if w_workaround_wine_bug 6971 "Pointing menu and icon at wine-hotfix-6971 so mouse will work, assuming your X supports XInput2" then w_declare_exe "$W_PROGRAMS_X86_WIN\\Mass Effect 2 Demo\\Binaries" "MassEffect2.EXE" - myexec="Exec=env WINEPREFIX=\"$HOME/.local/share/wineprefixes/masseffect2_demo\" wine-hotfix-6971 cmd /c 'C:\\\\\\Run-masseffect2_demo.bat'" + myexec="Exec=env WINEPREFIX=\"$XDG_DATA_HOME/wineprefixes/masseffect2_demo\" wine-hotfix-6971 cmd /c 'C:\\\\\\Run-masseffect2_demo.bat'" mymenu="$HOME/Desktop/Mass Effect 2 Demo.desktop" me2tries=0 @@ -14057,7 +15719,7 @@ load_masseffect2_demo() # this is a hack, hopefully the wine bug will be fixed soon sed -i "s,Exec=.*,$myexec," "$mymenu" fi - mymenu="$HOME/.local/share/applications/wine/Programs/Mass Effect 2 Demo/Mass Effect 2 Demo.desktop" + mymenu="$XDG_DATA_HOME/applications/wine/Programs/Mass Effect 2 Demo/Mass Effect 2 Demo.desktop" if test -f "$mymenu" then # this is a hack, hopefully the wine bug will be fixed soon @@ -14084,10 +15746,9 @@ load_maxmagicmarker_demo() { w_download http://www.maxandthemagicmarker.com/maxdemo/max_demo_pc.zip 1a79c583ff40e7b2cf05d18a89a806fd6b88a5d1 - w_try mkdir "$W_PROGRAMS_X86_UNIX"/$W_PACKAGE - cd "$W_PROGRAMS_X86_UNIX"/$W_PACKAGE - w_try_unzip "$W_CACHE/$W_PACKAGE"/max_demo_pc.zip + w_try_unzip "$W_PROGRAMS_X86_UNIX"/$W_PACKAGE "$W_CACHE/$W_PACKAGE"/max_demo_pc.zip # Work around bug in game?! + cd "$W_PROGRAMS_X86_UNIX/$W_PACKAGE" mv "max and the magic markerdemo pc" "max and the magic markerdemo pc"_Data w_declare_exe "$W_PROGRAMS_X86_WIN\\$W_PACKAGE" "max and the magic markerdemo pc.exe" @@ -14152,7 +15813,7 @@ load_mdk() WinWaitClose " cd "$W_DRIVE_C/SHINY/MDK" - w_try_unzip "$W_CACHE/$W_PACKAGE"/patch-mdk3dfx.zip + w_try_unzip . "$W_CACHE/$W_PACKAGE"/patch-mdk3dfx.zip w_declare_exe "C:\\SHINY\\MDK" "MDK3DFX.EXE" # TODO: wine fails to install menu items, add a workaround for that @@ -14353,8 +16014,7 @@ load_myth2_demo() # source code to Project Magma for further development. # 1 May 2011 1.7.2 sha1sum e0a8f707377e71314a471a09ad2a55179ea44588 - w_download http://tain.totalcodex.net/items/download/myth-ii-demo-windows \ - e0a8f707377e71314a471a09ad2a55179ea44588 $file1 + w_download http://tain.totalcodex.net/items/download/myth-ii-demo-windows e0a8f707377e71314a471a09ad2a55179ea44588 Myth2_Demo_172.exe cd "$W_CACHE/$W_PACKAGE" w_ahk_do " @@ -14564,7 +16224,7 @@ load_njcwp_trial() WinWaitClose " else - w_try $WINE $file1 + w_try "$WINE" $file1 fi w_declare_exe "$W_PROGRAMS_X86_WIN\\NJStar Chinese WP" "njstar.exe" } @@ -14601,7 +16261,7 @@ load_njjwp_trial() WinWaitClose " else - w_try $WINE $file1 + w_try "$WINE" $file1 fi w_declare_exe "$W_PROGRAMS_X86_WIN\\NJStar Japanese WP" "njstarj.exe" } @@ -14660,31 +16320,6 @@ load_oblivion() #---------------------------------------------------------------- -w_metadata osmos_demo games \ - title="Osmos demo" \ - publisher="Hemisphere Games" \ - year="2009" \ - media="download" \ - file1="OsmosDemo_Installer_1.6.0.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/OsmosDemo/OsmosDemo.exe" - -load_osmos_demo() -{ - w_download http://www.hemispheregames.com/blog/wp-content/uploads/2010/01/OsmosDemo_Installer_1.6.0.exe 4880eb20ff850bf337bbae20455ee90f614e507e - - cd "$W_CACHE/$W_PACKAGE" - w_try $WINE $file1 ${W_OPT_UNATTENDED:+ /S} - - if w_workaround_wine_bug 24416 "installing C runtime library" 1.3.8, - then - w_call vcrun2005 - fi - - w_declare_exe "$W_PROGRAMS_X86_WIN\\OsmosDemo" "OsmosDemo.exe" -} - -#---------------------------------------------------------------- - w_metadata penpenxmas games \ title="Pen-Pen Xmas Olympics" \ publisher="Army of Trolls / Black Cat" \ @@ -14699,7 +16334,7 @@ load_penpenxmas() w_download http://retrospec.sgn.net/download/files/PenPenXmasOlympics100.exe 36ec83cffa0ad3cc19dea33193b54bdaaea6db5b cd "$W_CACHE/$W_PACKAGE" - $WINE PenPenXmasOlympics100.exe $W_UNATTENDED_SLASH_S + "$WINE" PenPenXmasOlympics100.exe $W_UNATTENDED_SLASH_S w_declare_exe "$W_PROGRAMS_X86_WIN\\PPO" "PPO.exe" } @@ -14797,55 +16432,96 @@ load_popfs() #---------------------------------------------------------------- -w_metadata puzzleagent_demo games \ - title="Puzzle Agent Demo" \ - publisher="Telltale Games" \ - year="2010" \ - media="download" \ - file1="PuzzleAgent_PC_Setup.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/Telltale Games/Puzzle Agent/Puzzle Agent/Grickle101.exe" +w_metadata qq apps \ + title="QQ 7.1 (Chinese chat app)" \ + publisher="Tencent" \ + year="2015" \ + media="download" \ + file1="QQ7.1.exe" \ + file2="QQ.tar.gz"\ + installed_exe1="$W_PROGRAMS_X86_WIN/Tencent/QQ/Bin/QQ.exe" \ + homepage="http://www.qq.com" \ + unattended="no" -load_puzzleagent_demo() +load_qq() { - w_download http://telltale.vo.llnwd.net/o15/games/puzzleagent/100/PuzzleAgent_PC_Setup.exe ac0012889fd80237928207c9d19b02f5968761a4 + w_download http://dldir1.qq.com/qqfile/qq/QQ7.1/14522/QQ7.1.exe 700b469560b1bd8521ede61a0e169ff8c38b1d29 + w_download http://hillwoodhome.net/wine/QQ.tar.gz 08de45d3e5bb34b22e7c33e1163daec69742db58 - cd "$W_CACHE/$W_PACKAGE" - - w_ahk_do " - Run, PuzzleAgent_PC_Setup.exe - SetTitleMatchMode, 2 - WinWait,Puzzle Agent Setup, Welcome - if ( w_opt_unattended > 0 ) { - Sleep 500 - ControlClick Button2 ; Next - WinWait,Puzzle Agent Setup, properly - Sleep 500 - ControlClick Button5 ;DirectX - Sleep 500 - ControlClick Button2 ; Next - WinWait,Puzzle Agent Setup, before - Sleep 500 - ControlClick Button2 ; Agree - WinWait,Puzzle Agent Setup, different - Sleep 500 - ControlClick Button2 ; Install - WinWait,Puzzle Agent Setup, your - Sleep 500 - ControlClick Button4 ; Play - Sleep 500 - ControlClick Button5 ; will - Sleep 500 - ControlClick Button2 ; Finish - } - WinWaitClose, Puzzle Agent - " - - if w_workaround_wine_bug 25210 "" 1.3.8, + if w_workaround_wine_bug 29636 "Installing native riched20 to work around crash bug" then - w_call vcrun2008 + w_call riched20 fi - w_declare_exe "$W_PROGRAMS_X86_WIN\\Telltale Games\\Puzzle Agent\\Puzzle Agent" "Grickle101.exe" + if w_workaround_wine_bug 34566 "Installing native ctf to work around crash" + then + w_call msctf + fi + + # Make sure chinese fonts are available + w_call fakechinese + + # uses mfc42u.dll + w_call mfc42 + + if w_workaround_wine_bug 38171 "Installing desktop file to work around bug" + then + cd "$W_TMP/" + tar -zxf "$W_CACHE/qq/QQ.tar.gz" + mkdir -p $HOME/.local/share/applications/wine/Programs/腾讯软件/QQ + mkdir -p $HOME/.local/share/icons/hicolor/48x48/apps + mkdir -p $HOME/.local/share/icons/hicolor/256x256/apps + w_try mv QQ/腾讯QQ.desktop ~/.local/share/applications/wine/Programs/腾讯软件/QQ + w_try mv QQ/48x48/QQ.png ~/.local/share/icons/hicolor/48x48/apps + w_try mv QQ/256x256/QQ.png ~/.local/share/icons/hicolor/256x256/apps + echo Exec=env WINEPREFIX=$WINEPREFIX $WINE C:\/Program\\ Files\/Tencent\/QQ\/Bin\/QQ.exe >> $HOME/.local/share/applications/wine/Programs/腾讯软件/QQ/腾讯QQ.desktop + fi + + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" "$file1" + w_declare_exe "$W_PROGRAMS_X86_WIN\\Tencent\\QQ\\Bin" QQ.exe +} + +#---------------------------------------------------------------- + +w_metadata qqintl apps \ + title="QQ International Instant Messenger 2.11" \ + publisher="Tencent" \ + year="2014" \ + media="download" \ + file1="QQIntl2.11.exe" \ + installed_exe1="$W_PROGRAMS_X86_WIN/Tencent/QQIntl/Bin/QQ.exe" \ + homepage="http://www.imqq.com" \ + unattended="no" + +load_qqintl() +{ + w_download http://dldir1.qq.com/qqfile/QQIntl/QQi_PC/QQIntl2.11.exe 030df82390e7962177fcef66fc1a0fd1a3ba4090 + + if w_workaround_wine_bug 33086 "Installing native riched20 to allow typing in username" + then + w_call riched20 + fi + + if w_workaround_wine_bug 34566 "Installing native ctf to work around crash" + then + w_call msctf + fi + + if w_workaround_wine_bug 37617 "Installing native wininet to work around crash" + then + w_call wininet + fi + + # Make sure chinese fonts are available + w_call fakechinese + + # wants mfc80u.dll + w_call vcrun2005 + + cd "$W_CACHE/$W_PACKAGE" + w_try "$WINE" "$file1" + w_declare_exe "$W_PROGRAMS_X86_WIN\\Tencent\\QQIntl\\Bin" QQ.exe } #---------------------------------------------------------------- @@ -15018,7 +16694,7 @@ load_rayman2_demo() # this is a hack, hopefully the wine bug will be fixed soon sed -i "s,Exec=.*,$myexec," "$mymenu" fi - mymenu="$HOME/.local/share/applications/wine/Programs/Ubi Soft Games/Rayman 2 Demo/1 To Play Rayman 2 Demo.desktop" + mymenu="$XDG_DATA_HOME/applications/wine/Programs/Ubi Soft Games/Rayman 2 Demo/1 To Play Rayman 2 Demo.desktop" if test -f "$mymenu" && w_workaround_wine_bug 26304 "Fixing system menu" then # this is a hack, hopefully the wine bug will be fixed soon @@ -15285,7 +16961,7 @@ load_simsmed() if w_workaround_wine_bug 25535 ".net 4 doesn't install on Wine, fixing menu to run game directly" then myexec="Exec=env WINEPREFIX=\"$WINEPREFIX\" wine cmd /c 'C:\\\\\\\\Run-$W_PACKAGE.bat'" - mymenu="$HOME/.local/share/applications/wine/Programs/Electronic Arts/The Sims Medieval/The Sims™ Medieval.desktop" + mymenu="$XDG_DATA_HOME/applications/wine/Programs/Electronic Arts/The Sims Medieval/The Sims™ Medieval.desktop" if test -f "$mymenu" then sed -i "s,Exec=.*,$myexec," "$mymenu" @@ -15630,7 +17306,7 @@ load_starcraft2_demo() w_download_manual http://www.fileplanet.com/217982/210000/fileinfo/Starcraft-2-Demo SC2-WingsOfLiberty-enUS-Demo-Installer.zip 4c06ad755fbde73f135a7359bf6bfdbd2c6eb00e cd "$W_TMP" - w_try_unzip "$W_CACHE/$W_PACKAGE"/SC2-WingsOfLiberty-enUS-Demo-Installer.zip + w_try_unzip . "$W_CACHE/$W_PACKAGE"/SC2-WingsOfLiberty-enUS-Demo-Installer.zip w_ahk_do " SetTitleMatchMode, 2 @@ -16334,19 +18010,15 @@ w_metadata typingofthedead_demo games \ title="Typing of the Dead Demo" \ publisher="Sega" \ year="1999" \ - media="download" \ + media="manual_download" \ file1="Tod_e_demo.exe" \ installed_exe1="$W_PROGRAMS_X86_WIN/SEGA/TOD-Demo/Tod_e_demo.exe" load_typingofthedead_demo() { - w_download "http://downloads.pcworld.com/pub/new/fun_and_games/other/tod-demo.zip" 96fe3edb2431210932af840e29c59bce6b7fc80f - - cd "$W_CACHE/$W_PACKAGE" - mkdir "$W_TMP" + w_download "http://www.fileplanet.com/54947/50000/fileinfo/The-Typing-of-the-Dead-Demo" 96fe3edb2431210932af840e29c59bce6b7fc80f cd "$W_TMP" - w_try_unzip "$W_CACHE/$W_PACKAGE/tod-demo.zip" - + w_try_unzip . "$W_CACHE/$W_PACKAGE/tod-demo.zip" w_ahk_do " SetTitleMatchMode, 2 run SETUP.EXE @@ -16487,132 +18159,6 @@ load_wog() #---------------------------------------------------------------- -w_metadata wot games \ - title="World of Tanks" \ - publisher="Wargaming" \ - year="2011" \ - media="download" \ - file1="WoT_0.6.7_us_setup.exe" \ - installed_exe1="c:/Games/World_of_Tanks/WorldOfTanks.exe" \ - wine_showstoppers="20395" # list a showstopper to hide this from average users for now - -load_wot() -{ - if w_workaround_wine_bug 20395 "game requires raw input hack" - then - w_open_webpage https://gist.github.com/895204#gistcomment-41069 - w_warn "You need to apply rawinput-hack.patch from vincas for this game to work" - fi - if w_workaround_wine_bug 25730 "installing msxml3 to avoid startup crash" 1.3.33, - then - w_call msxml3 - fi - if w_workaround_wine_bug 11675 "need d3dx9_36 for effects framework" - then - w_call d3dx9_36 - fi - if w_workaround_wine_bug 25779 "installing ie7 for launcher" - then - w_call ie7 - fi - - # http://cdn1.worldoftanks.com/patches/auto/WoT_0.6.7_us_setup.exe.torrent - w_download http://cdn1.worldoftanks.com/patches/auto/WoT_0.6.7_us_setup.exe 440c4b3f8269d3746c912db94d697eccb139d3a6 - - cd "$W_CACHE/$W_PACKAGE" - w_ahk_do " - SetWinDelay 500 - run $file1 - winwait, Setup - World of Tanks - if ( w_opt_unattended > 0 ) { - ControlClick, TNewButton1 ; Next - winwait, Setup - World of Tanks, Select Destination - ControlClick, TNewButton3 ; Next - winwait, Setup - World of Tanks, Select Start - ControlClick, TNewButton4 ; Next - winwait, Setup - World of Tanks, Select Additional - ControlClick, TNewButton4 ; Next - winwait, Setup - World of Tanks, Ready - ControlClick, TNewButton4 ; Next - } - winwait, Setup - World of Tanks, Completing - if ( w_opt_unattended > 0 ) { - ControlFocus, TNewCheckListBox1 - send {space} ; uncheck Wiki - sleep 500 - ControlClick, TNewButton4 ; Finish - winwaitclose - } - " - w_declare_exe "c:\\Games\\World_of_Tanks" WorldOfTanks.exe -} - -#---------------------------------------------------------------- - -w_metadata wowtrial games \ - title="World of Warcraft trial" \ - publisher="Blizzard" \ - year="2010" \ - media="download" \ - file1="WOW-4.0.0.12911-enUS-Trial.exe" \ - installed_exe1="$W_PROGRAMS_X86_WIN/World of Warcraft/WoW.exe" - -load_wowtrial() -{ - w_download http://us.media.battle.net.edgesuite.net/downloads/wow-installers/WOW-4.0.0.12911-enUS-Trial.exe 1efb32d10afc4c200a8f34d44980077668085c95 - - cd "$W_CACHE/$W_PACKAGE" - - w_ahk_do " - SetTitleMatchMode, slow - SetTitleMatchMode, 2 - run WOW-4.0.0.12911-enUS-Trial.exe - winwait, World of Warcraft Installer - if ( w_opt_unattended > 0 ) { - ; Wait for it to find servers - sleep 6000 - controlclick, x400 y440 ; Install - winwait, End User License Agreement - sleep 1000 - controlclick, Button2 ; Accept - winwait, World of Warcraft Installer - sleep 1000 - controlclick, x680 y560 ; OK - } - winwait, World of Warcraft v4, Play - if ( w_opt_unattended > 0 ) { - ; Wait until left side of progress bar is green; that means the game is playable. - ;Loop - ;{ - ; PixelGetColor, color, 33, 592 - ; FileAppend, loop1 color is %color%, log.txt - ; ifEqual, color, 0x017425 - ; { - ; break - ; } - ; sleep 5000 - ;} - ; Wait until left side of progress bar goes blackish, that means game is fully loaded - Loop - { - PixelGetColor, color, 33, 592 - ;FileAppend, loop2 color is %color%, log.txt - ifEqual, color, 0x003C10 - { - break - } - sleep 5000 - } - ; All done downloading, so quit - winclose - } - winwaitclose - " - w_declare_exe "$W_PROGRAMS_X86_WIN\\World of Warcraft" WoW.exe -} - -#---------------------------------------------------------------- - w_metadata zootycoon2_demo games \ title="Zoo Tycoon 2 demo" \ publisher="Microsoft" \ @@ -16949,8 +18495,10 @@ _EOF_ #---------------------------------------------------------------- w_metadata glsl=enabled settings \ + title_uk="Включити glsl шейдери (за замовчуванням)" \ title="Enable glsl shaders (default)" w_metadata glsl=disabled settings \ + title_uk="Вимкнути glsl шейдери та використовувати arb шейдери (швидше, але іноді з перервами)" \ title="Disable glsl shaders, use arb shaders (faster, but sometimes breaks)" load_glsl() @@ -16961,8 +18509,10 @@ load_glsl() #---------------------------------------------------------------- w_metadata multisampling=enabled settings \ + title_uk="Включити Direct3D мультисемплінг" \ title="Enable Direct3D multisampling" w_metadata multisampling=disabled settings \ + title_uk="Вимкнути Direct3D мультисемплінг" \ title="Disable Direct3D multisampling" load_multisampling() @@ -16973,6 +18523,7 @@ load_multisampling() #---------------------------------------------------------------- w_metadata npm=repack settings \ + title_uk="Поставити NonPower2Mode на repack" \ title="Set NonPower2Mode to repack" load_npm() @@ -16983,8 +18534,10 @@ load_npm() #---------------------------------------------------------------- w_metadata orm=fbo settings \ + title_uk="Поставити OffscreenRenderingMode=fbo (за замовчуванням)" \ title="Set OffscreenRenderingMode=fbo (default)" w_metadata orm=backbuffer settings \ + title_uk="Поставити OffscreenRenderingMode=backbuffer" \ title="Set OffscreenRenderingMode=backbuffer" load_orm() @@ -16994,21 +18547,11 @@ load_orm() #---------------------------------------------------------------- -w_metadata psm=enabled settings \ - title="Set PixelShaderMode to enabled" -w_metadata psm=disabled settings \ - title="Set PixelShaderMode to disabled" - -load_psm() -{ - winetricks_set_wined3d_var PixelShaderMode $1 -} - -#---------------------------------------------------------------- - w_metadata strictdrawordering=enabled settings \ + title_uk="Включити StrictDrawOrdering" \ title="Enable StrictDrawOrdering" w_metadata strictdrawordering=disabled settings \ + title_uk="Вимкнути StrictDrawOrdering (за замовчуванням)" \ title="Disable StrictDrawOrdering (default)" load_strictdrawordering() @@ -17019,16 +18562,22 @@ load_strictdrawordering() #---------------------------------------------------------------- w_metadata rtlm=auto settings \ + title_uk="Поставити RenderTargetLockMode на авто (за замовчуванням)" \ title="Set RenderTargetLockMode to auto (default)" w_metadata rtlm=disabled settings \ + title_uk="Вимкнути RenderTargetLockMode" \ title="Set RenderTargetLockMode to disabled" w_metadata rtlm=readdraw settings \ + title_uk="Поставити RenderTargetLockMode на readdraw" \ title="Set RenderTargetLockMode to readdraw" w_metadata rtlm=readtex settings \ + title_uk="Поставити RenderTargetLockMode на readtex" \ title="Set RenderTargetLockMode to readtex" w_metadata rtlm=texdraw settings \ + title_uk="Поставити RenderTargetLockMode на texdraw" \ title="Set RenderTargetLockMode to texdraw" w_metadata rtlm=textex settings \ + title_uk="Поставити RenderTargetLockMode на textex" \ title="Set RenderTargetLockMode to textex" load_rtlm() @@ -17040,8 +18589,10 @@ load_rtlm() # AlwaysOffscreen settings w_metadata ao=enabled settings \ + title_uk="Включити AlwaysOffscreen" \ title="Enable AlwaysOffscreen" w_metadata ao=disabled settings \ + title_uk="Вимкнути AlwaysOffscreen (за замовчуванням)" \ title="Disable AlwaysOffscreen (default)" load_ao() @@ -17053,8 +18604,10 @@ load_ao() # DirectDraw settings w_metadata ddr=gdi settings \ + title_uk="Поставити DirectDrawRenderer на gdi" \ title="Set DirectDrawRenderer to gdi" w_metadata ddr=opengl settings \ + title_uk="Поставити DirectDrawRenderer на opengl" \ title="Set DirectDrawRenderer to opengl" load_ddr() @@ -17066,10 +18619,13 @@ load_ddr() # DirectInput settings w_metadata mwo=force settings \ + title_uk="Поставити примусове DirectInput MouseWarpOverride (необхідно для деяких ігор)" \ title="Set DirectInput MouseWarpOverride to force (needed by some games)" w_metadata mwo=enabled settings \ + title_uk="Включити DirectInput MouseWarpOverride (за замовчуванням)" \ title="Set DirectInput MouseWarpOverride to enabled (default)" w_metadata mwo=disable settings \ + title_uk="Вимкнути DirectInput MouseWarpOverride" \ title="Set DirectInput MouseWarpOverride to disable" load_mwo() @@ -17099,8 +18655,10 @@ _EOF_ # Mac Driver settings w_metadata macdriver=mac settings \ + title_uk="Включити рідний Mac Quartz драйвер (за замовчуванням)" \ title="Enable the Mac native Quartz driver (default)" w_metadata macdriver=x11 settings \ + title_uk="Вимкнути рідний Mac Quartz драйвер та використовувати замість нього X11" \ title="Disable the Mac native Quartz driver, use X11 instead" load_macdriver() @@ -17120,8 +18678,10 @@ _EOF_ # X11 Driver settings w_metadata grabfullscreen=y settings \ + title_uk="Примусове захоплення курсору для повноекранних вікон (необхідно для деяких ігор)" \ title="Force cursor clipping for full-screen windows (needed by some games)" w_metadata grabfullscreen=n settings \ + title_uk="Вимкнути примусове захоплення курсору для повноекранних вікон (за замовчуванням)" \ title="Disable cursor clipping for full-screen windows (default)" load_grabfullscreen() @@ -17143,8 +18703,10 @@ _EOF_ } w_metadata windowmanagerdecorated=y settings \ + title_uk="Дозволити менеджеру вікон декорувати вікна (за замовчуванням)" \ title="Allow the window manager to decorate windows (default)" w_metadata windowmanagerdecorated=n settings \ + title_uk="Не дозволяти менеджеру вікон декорувати вікна" \ title="Prevent the window manager from decorating windows" load_windowmanagerdecorated() @@ -17166,8 +18728,10 @@ _EOF_ } w_metadata windowmanagermanaged=y settings \ + title_uk="Дозволити менеджеру вікон керування вікнами (за замовчуванням)" \ title="Allow the window manager to control windows (default)" w_metadata windowmanagermanaged=n settings \ + title_uk="Не дозволяти менеджеру вікон керування вікнами" \ title="Prevent the window manager from controling windows" load_windowmanagermanaged() @@ -17194,8 +18758,10 @@ _EOF_ #---------------------------------------------------------------- w_metadata alldlls=default settings \ + title_uk="Видалити всі перевизначення DLL" \ title="Remove all DLL overrides" w_metadata alldlls=builtin settings \ + title_uk="Перевизначити найбільш поширені DLL на вбудовані" \ title="Override most common DLLs to builtin" load_alldlls() @@ -17207,12 +18773,16 @@ load_alldlls() } w_metadata fontsmooth=disable settings \ + title_uk="Вимкнути згладжування шрифту" \ title="Disable font smoothing" w_metadata fontsmooth=bgr settings \ + title_uk="Включити субпіксельне згладжування шрифту для BGR LCD моніторів" \ title="Enable subpixel font smoothing for BGR LCDs" w_metadata fontsmooth=rgb settings \ + title_uk="Включити субпіксельне згладжування шрифту для RGB LCD моніторів" \ title="Enable subpixel font smoothing for RGB LCDs" w_metadata fontsmooth=gray settings \ + title_uk="Включити субпіксельне згладжування шрифту" \ title="Enable subpixel font smoothing" load_fontsmooth() @@ -17243,6 +18813,7 @@ _EOF_ #---------------------------------------------------------------- w_metadata forcemono settings \ + title_uk="Примусове використання mono замість .Net (для налогодження)" \ title="Force using mono instead of .Net (for debugging)" load_forcemono() @@ -17253,7 +18824,24 @@ load_forcemono() #---------------------------------------------------------------- +w_metadata gsm=0 settings \ + title="Set MaxShaderModelGS to 0" +w_metadata gsm=1 settings \ + title="Set MaxShaderModelGS to 1" +w_metadata gsm=2 settings \ + title="Set MaxShaderModelGS to 2" +w_metadata gsm=3 settings \ + title="Set MaxShaderModelGS to 3" + +load_gsm() +{ + winetricks_set_wined3d_var MaxShaderModelGS $1 +} + +#---------------------------------------------------------------- + w_metadata heapcheck settings \ + title_uk="Включити накопичувальну перевірку GlobalFlag" \ title="Enable heap checking with GlobalFlag" load_heapcheck() @@ -17270,7 +18858,44 @@ _EOF_ #---------------------------------------------------------------- +w_metadata hidewineexports=enable settings \ + title="Enable hiding wine exports from applications (wine-staging)" +w_metadata hidewineexports=disable settings \ + title="Disable hiding wine exports from applications (wine-staging)" + +load_hidewineexports() +{ + # Wine exports some functions allowing apps to query the wine version and + # information about the host environment. Using these functions, some apps + # will intentionally terminate if they can detect that they are running in + # a wine environment. + # + # Hiding these wine exports is only available in wine-staging. + # See https://bugs.winehq.org/show_bug.cgi?id=38656 + case $arg in + enable) + local registry_value="\"Y\"" + ;; + disable) + local registry_value="-" + ;; + *) w_die "Unexpected argument, $arg";; + esac + + cat > "$W_TMP"/set-wineexports.reg <<_EOF_ +REGEDIT4 + +[HKEY_CURRENT_USER\Software\Wine] +"HideWineExports"=$registry_value + +_EOF_ + w_try_regedit "$W_TMP"/set-wineexports.reg +} + +#---------------------------------------------------------------- + w_metadata hosts settings \ + title_uk="Додати порожні файли у C:\windows\system32\drivers\etc\{hosts,services}" \ title="Add empty C:\windows\system32\drivers\etc\{hosts,services} files" load_hosts() @@ -17291,6 +18916,7 @@ load_hosts() #---------------------------------------------------------------- w_metadata native_mdac settings \ + title_uk="Перевизначити odbc32, odbccp32 та oledb32" \ title="Override odbc32, odbccp32 and oledb32" load_native_mdac() @@ -17303,6 +18929,7 @@ load_native_mdac() #---------------------------------------------------------------- w_metadata native_oleaut32 settings \ + title_uk="Перевизначити oleaut32" \ title="Override oleaut32" load_native_oleaut32() @@ -17313,6 +18940,7 @@ load_native_oleaut32() #---------------------------------------------------------------- w_metadata nocrashdialog settings \ + title_uk="Вимкнути діалог про помилку" \ title="Disable crash dialog" load_nocrashdialog() @@ -17332,6 +18960,7 @@ _EOF_ #---------------------------------------------------------------- w_metadata nt40 settings \ + title_uk="Поставити версію Windows NT 4.0" \ title="Set windows version to Windows NT 4.0" load_nt40() @@ -17341,55 +18970,72 @@ load_nt40() #---------------------------------------------------------------- +w_metadata psm=0 settings \ + title="Set MaxShaderModelPS to 0" +w_metadata psm=1 settings \ + title="Set MaxShaderModelPS to 1" +w_metadata psm=2 settings \ + title="Set MaxShaderModelPS to 2" +w_metadata psm=3 settings \ + title="Set MaxShaderModelPS to 3" + +load_psm() +{ + winetricks_set_wined3d_var MaxShaderModelPS $1 +} + +#---------------------------------------------------------------- + w_metadata sandbox settings \ - title="Sandbox the wineprefix - remove links to HOME" + title_uk="Пісочниця wineprefix - видалити посилання до HOME" \ + title="Sandbox the wineprefix - remove links to \$HOME" load_sandbox() { w_skip_windows sandbox && return # Unmap drive Z - # Might want to unpack gecko first, since Wine won't be able to get to /usr/lib/wine after this rm -f "$WINEPREFIX/dosdevices/z:" - if test -d "$WINEPREFIX/drive_c/users/$USER/Documents" - then - for dir in Desktop Documents Music Pictures Videos - do - rm -f "$WINEPREFIX/drive_c/users/$USER/$dir" > /dev/null 2>&1 - mkdir -p "$WINEPREFIX/drive_c/users/$USER/$dir" - done - elif test -d "$WINEPREFIX/drive_c/users/$USER/My Documents" - then - for dir in Desktop "My Documents" "My Music" "My Pictures" "My Videos" - do - rm -f "$WINEPREFIX/drive_c/users/$USER/$dir" > /dev/null 2>&1 - mkdir -p "$WINEPREFIX/drive_c/users/$USER/$dir" - done - else - w_die "don't know name of My Documents folder, can't sandbox" - fi - + _olddir="`pwd`" + cd "$WINEPREFIX/drive_c/users/$USER" + for x in * + do + if test -h "$x" && test -d "$x" + then + rm -f "$x" + mkdir -p "$x" + fi + done + cd "$_olddir" + unset _olddir # Disable unixfs - # Unfortunately, when you run with a different version of wine, wine will recreate this key. + # Unfortunately, when you run with a different version of Wine, Wine will recreate this key. # See http://bugs.winehq.org/show_bug.cgi?id=22450 - $WINE regedit /d 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace\{9D20AAE8-0625-44B0-9CA7-71889C2254D9}' + "$WINE" regedit /d 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace\{9D20AAE8-0625-44B0-9CA7-71889C2254D9}' - # Disable recreation of the above key - or any updating of the regisry - when running with new version of wine. + # Disable recreation of the above key - or any updating of the registry - when running with a newer version of Wine. echo disable > "$WINEPREFIX/.update-timestamp" } #---------------------------------------------------------------- w_metadata sound=alsa settings \ + title_uk="Поставити звуковий драйвер ALSA" \ title="Set sound driver to ALSA" w_metadata sound=coreaudio settings \ + title_uk="Поставити звуковий драйвер Mac CoreAudio" \ title="Set sound driver to Mac CoreAudio" w_metadata sound=disabled settings \ + title_uk="Вимкнути звуковий драйвер" \ title="Set sound driver to disabled" w_metadata sound=oss settings \ + title_uk="Поставити звуковий драйвер OSS" \ title="Set sound driver to OSS" +w_metadata sound=pulse settings \ + title_uk="Поставити звуковий драйвер PulseAudio" \ + title="Set sound driver to PulseAudio" load_sound() { @@ -17407,16 +19053,22 @@ _EOF_ #---------------------------------------------------------------- w_metadata vd=off settings \ + title_uk="Вимкнути віртуальний робочий стіл" \ title="Disable virtual desktop" w_metadata vd=640x480 settings \ + title_uk="Включити віртуальний робочий стіл та поставити розмір 640x480" \ title="Enable virtual desktop, set size to 640x480" w_metadata vd=800x600 settings \ + title_uk="Включити віртуальний робочий стіл та поставити розмір 800x600" \ title="Enable virtual desktop, set size to 800x600" w_metadata vd=1024x768 settings \ + title_uk="Включити віртуальний робочий стіл та поставити розмір 1024x768" \ title="Enable virtual desktop, set size to 1024x768" w_metadata vd=1280x1024 settings \ + title_uk="Включити віртуальний робочий стіл та поставити розмір 1280x1024" \ title="Enable virtual desktop, set size to 1280x1024" w_metadata vd=1440x900 settings \ + title_uk="Включити віртуальний робочий стіл та поставити розмір 1440x900" \ title="Enable virtual desktop, set size to 1440x900" load_vd() @@ -17455,12 +19107,16 @@ _EOF_ #---------------------------------------------------------------- w_metadata videomemorysize=default settings \ + title_uk="Дати можливість Wine визначити розмір відеопам'яті" \ title="Let Wine detect amount of video card memory" w_metadata videomemorysize=512 settings \ + title_uk="Повідомити Wine про 512МБ відеопам'яті" \ title="Tell Wine your video card has 512MB RAM" w_metadata videomemorysize=1024 settings \ + title_uk="Повідомити Wine про 1024МБ відеопам'яті" \ title="Tell Wine your video card has 1024MB RAM" w_metadata videomemorysize=2048 settings \ + title_uk="Повідомити Wine про 2048МБ відеопам'яті" \ title="Tell Wine your video card has 2048MB RAM" load_videomemorysize() @@ -17494,6 +19150,7 @@ _EOF_ #---------------------------------------------------------------- w_metadata vista settings \ + title_uk="Поставити версію Windows Vista" \ title="Set windows version to Windows Vista" load_vista() @@ -17503,45 +19160,24 @@ load_vista() #---------------------------------------------------------------- -w_metadata volnum settings \ - title="Rename drive_c to harddiskvolume0 (needed by some installers)" - -load_volnum() { - w_skip_windows "volnum" && return - - # Recent Microsoft installers are often based on "windows package manager", see - # http://support.microsoft.com/kb/262841 and - # http://www.microsoft.com/technet/prodtechnol/windowsserver2003/deployment/winupdte.mspx - # These installers check the drive name, and if it doesn't start with 'harddisk', - # they complain "Unable to find a volume for file extraction", see - # http://bugs.winehq.org/show_bug.cgi?id=5351 - # You may be able to work around this by using the installer's /x or /extract switch, - # but renaming drive_c to "harddiskvolume0" lets you just run the installer as normal. - - if test ! -d "$WINEPREFIX"/harddiskvolume0/ - then - ln -s drive_c "$WINEPREFIX"/harddiskvolume0 - rm "$WINEPREFIX"/dosdevices/c: - ln -s ../harddiskvolume0 "$WINEPREFIX"/dosdevices/c: - echo "Renamed drive_c to harddiskvolume0" - else - echo "drive_c already named harddiskvolume0" - fi -} - -#---------------------------------------------------------------- - -w_metadata vsm=hardware settings \ - title="Set VertexShaderMode to hardware" +w_metadata vsm=0 settings \ + title="Set MaxShaderModelVS to 0" +w_metadata vsm=1 settings \ + title="Set MaxShaderModelVS to 1" +w_metadata vsm=2 settings \ + title="Set MaxShaderModelVS to 2" +w_metadata vsm=3 settings \ + title="Set MaxShaderModelVS to 3" load_vsm() { - winetricks_set_wined3d_var VertexShaders $1 + winetricks_set_wined3d_var MaxShaderModelVS $1 } #---------------------------------------------------------------- w_metadata win2k settings \ + title_uk="Поставити версію Windows 2000" \ title="Set windows version to Windows 2000" load_win2k() @@ -17551,7 +19187,19 @@ load_win2k() #---------------------------------------------------------------- +w_metadata win2k3 settings \ + title_uk="Поставити версію Windows 2003" \ + title="Set windows version to Windows 2003" + +load_win2k3() +{ + w_set_winver win2k3 +} + +#---------------------------------------------------------------- + w_metadata win31 settings \ + title_uk="Поставити версію Windows 3.1" \ title="Set windows version to Windows 3.1" load_win31() @@ -17562,6 +19210,7 @@ load_win31() #---------------------------------------------------------------- w_metadata win7 settings \ + title_uk="Поставити версію Windows 7" \ title="Set windows version to Windows 7" load_win7() @@ -17572,6 +19221,7 @@ load_win7() #---------------------------------------------------------------- w_metadata win95 settings \ + title_uk="Поставити версію Windows 95" \ title="Set windows version to Windows 95" load_win95() @@ -17582,6 +19232,7 @@ load_win95() #---------------------------------------------------------------- w_metadata win98 settings \ + title_uk="Поставити версію Windows 98" \ title="Set windows version to Windows 98" load_win98() @@ -17593,6 +19244,7 @@ load_win98() # Really, we should support other values, since winetricks did w_metadata winver= settings \ + title_uk="Поставити версію Windows за замовчуванням (winxp)" \ title="Set windows version to default (winxp)" load_winver() @@ -17603,6 +19255,7 @@ load_winver() #---------------------------------------------------------------- w_metadata winxp settings \ + title_uk="Поставити версію Windows XP" \ title="Set windows version to Windows XP" load_winxp() @@ -17615,6 +19268,10 @@ load_winxp() #---- Derived Metadata ---- # Generated automatically by measuring time and space requirements of all verbs # size_MB includes size of virgin wineprefix, but not the cached installer +case $WINETRICKS_OPT_VERBOSE in + 2) set -x ;; + *) set +x ;; +esac for data in \ 3dmark03:size_MB=895,time_sec=149 \ @@ -17690,13 +19347,10 @@ for data in \ farmsim2011_demo:size_MB=48,time_sec=4 \ ffdshow:size_MB=53,time_sec=4 \ fifa11_demo:size_MB=4932,time_sec=845 \ - firefox:size_MB=113,time_sec=7 \ - firefox4:size_MB=147,time_sec=36 \ flash:size_MB=57,time_sec=3 \ fontfix:size_MB=47,time_sec=0 \ fontxplorer:size_MB=51,time_sec=5 \ gdiplus:size_MB=50,time_sec=2 \ - gecko110:size_MB=47,time_sec=0 \ gfw:size_MB=211,time_sec=11 \ glut:size_MB=47,time_sec=1 \ gothic4_demo:size_MB=7719,time_sec=1402 \ @@ -17827,6 +19481,12 @@ do unset size_MB time_sec done +# Restore verbosity: +case $WINETRICKS_OPT_VERBOSE in + 1|2) set -x ;; + *) set +x ;; +esac + #---- Main Program ---- winetricks_stats_save() @@ -18001,10 +19661,11 @@ execute_command() hidebroken) W_OPT_SHOWBROKEN=0 ;; prefix=*) winetricks_set_wineprefix "$arg" ;; annihilate) winetricks_annihilate_wineprefix ;; - folder) xdg-open "$WINEPREFIX" ;; - winecfg) $WINE winecfg ;; - regedit) $WINE regedit ;; - taskmgr) $WINE taskmgr & ;; + folder) w_open_folder "$WINEPREFIX" ;; + winecfg) "$WINE" winecfg ;; + regedit) "$WINE" regedit ;; + taskmgr) "$WINE" taskmgr & ;; + uninstaller) "$WINE" uninstaller ;; shell) winetricks_shell ;; # These have to come before *=disabled to avoid looking like dlls @@ -18012,7 +19673,6 @@ execute_command() glsl=disable*) w_call glsl=disabled ;; multisampling=disable*) w_call multisampling=disabled ;; mwo=disable*) w_call mwo=disable ;; # FIXME: relax matching so we can handle these spelling differences in verb instead of here - psm=disable*) w_call psm=disabled ;; rtlm=disable*) w_call rtlm=disabled ;; sound=disable*) w_call sound=disabled ;; ao=disable*) w_call ao=disabled ;; @@ -18024,13 +19684,13 @@ execute_command() *=builtin) w_do_call builtin $cmd;; *=default) w_do_call default $cmd;; *=disabled) w_do_call disabled $cmd;; + vd=*) w_do_call $cmd;; # Hacks for backwards compatibility cc580) w_call comctl32 ;; comdlg32.ocx) w_call comdlg32ocx ;; dotnet1) w_call dotnet11 ;; dotnet2) w_call dotnet20 ;; - firefox3) w_call firefox35 ;; # the one that works flash11) w_call flash ;; fm20) w_call controlpad ;; # art2kmin also comes with fm20.dll fontsmooth-bgr) w_call fontsmooth=bgr ;; @@ -18043,14 +19703,11 @@ execute_command() jscript) w_call wsh56js ;; # FIXME: use wsh57 instead? npm-repack) w_call npm=repack ;; oss) w_call sound=oss ;; - psm=off) w_call psm=disabled ;; - psm=on) w_call psm=enabled ;; python) w_call python26 ;; python-comtypes) w_call python26_comtypes ;; vbrun60) w_call vb6run ;; vcrun2005sp1) w_call vcrun2005 ;; vcrun2008sp1) w_call vcrun2008 ;; - vsm-hard) w_call vsm=hardware ;; wsh56) w_call wsh57 ;; xlive) w_call gfw ;; @@ -18111,12 +19768,7 @@ then main) verbs=`winetricks_mainmenu` ;; prefix) verbs=`winetricks_prefixmenu`; - # Cheezy hack: choosing type of package in prefix menu == whether to isolate. - case "$verbs" in - apps|benchmarks|games) WINETRICKS_OPT_SHAREDPREFIX=0 ;; - *) WINETRICKS_OPT_SHAREDPREFIX=1 ;; - esac - # Cheezy hack #2: choosing 'attended' or 'unattended' leaves you in same menu + # Cheezy hack: choosing 'attended' or 'unattended' leaves you in same menu case "$verbs" in attended) winetricks_set_unattended 0 ; continue;; unattended) winetricks_set_unattended 1 ; continue;; @@ -18193,4 +19845,3 @@ then winetricks_stats_report fi -