diff --git a/susepatches.patch b/susepatches.patch index a9b8b92..84a84c8 100644 --- a/susepatches.patch +++ b/susepatches.patch @@ -1,8 +1,8 @@ diff --git a/dlls/shell32/pidl.c b/dlls/shell32/pidl.c -index 266c444..fd28488 100644 +index 71b8f93..8a3d721 100644 --- a/dlls/shell32/pidl.c +++ b/dlls/shell32/pidl.c -@@ -1753,13 +1753,13 @@ LPITEMIDLIST _ILCreateEntireNetwork(void) +@@ -1755,13 +1755,13 @@ LPITEMIDLIST _ILCreateEntireNetwork(void) TRACE("\n"); diff --git a/wine-1.3.10.tar.bz2 b/wine-1.3.10.tar.bz2 deleted file mode 100644 index 5d34417..0000000 --- a/wine-1.3.10.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2252269f2730427f65b379a1d6a183dce260e54325f141a68dbbe5e86bd69440 -size 18366233 diff --git a/wine-1.3.12.tar.bz2 b/wine-1.3.12.tar.bz2 new file mode 100644 index 0000000..d702e8e --- /dev/null +++ b/wine-1.3.12.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f567be769d46fe172d1dea42af996038b9e8169e615ae17632cee5e204490dc9 +size 18688959 diff --git a/wine.changes b/wine.changes index 79d812a..45a745d 100644 --- a/wine.changes +++ b/wine.changes @@ -1,3 +1,35 @@ +------------------------------------------------------------------- +Sun Jan 23 10:59:03 CET 2011 - meissner@suse.de + +- Updated to 1.3.12 development snapshot + - Support for multiple icon sizes in winemenubuilder. + - Improvements to the help browser. + - Initial stab at DOSBox integration. + - Various MSI fixes. + - Some fixes to the Wine debugger. + - Various bug fixes. +- updated winetricks + +------------------------------------------------------------------- +Tue Jan 11 13:20:24 CET 2011 - meissner@suse.de + +- one more fix for ppc build + +------------------------------------------------------------------- +Fri Jan 7 20:32:21 CET 2011 - meissner@suse.de + +- Updated to 1.3.11 development snapshot + - PO files now used for translations. + - Various JavaScript improvements. + - Some fixes to the Wine debugger. + - Translation updates. + - Various bug fixes. + +------------------------------------------------------------------- +Fri Jan 7 13:45:24 CET 2011 - meissner@suse.de + +- moved development tools into -devel package + ------------------------------------------------------------------- Mon Jan 3 14:30:52 CET 2011 - meissner@suse.de diff --git a/wine.spec b/wine.spec index 38ad569..d3e068e 100644 --- a/wine.spec +++ b/wine.spec @@ -30,7 +30,7 @@ BuildRequires: gstreamer-0_10-plugins-base-devel License: LGPLv2.1+ Group: System/Emulators/PC AutoReqProv: on -Version: 1.3.10 +Version: 1.3.12 Release: 1 Summary: An MS Windows Emulator Url: http://www.winehq.com @@ -44,7 +44,9 @@ Source5: ubuntuwine.tar.bz2 # SUSE specific patches Patch0: susepatches.patch Recommends: wine-gecko wine-mp3 +%ifarch %ix86 x86_64 Requires: wine-32bit = %version +%endif # for winetricks: Requires: unzip cabextract %ifarch x86_64 @@ -176,28 +178,35 @@ rm -rf $RPM_BUILD_ROOT /usr/bin/notepad /usr/bin/regedit /usr/bin/regsvr32 -/usr/bin/widl /usr/bin/wineboot -/usr/bin/winebuild /usr/bin/winecfg /usr/bin/wineconsole -/usr/bin/winecpp /usr/bin/winedbg -/usr/bin/winedump /usr/bin/winefile -/usr/bin/wineg++ -/usr/bin/winegcc -/usr/bin/winemaker /usr/bin/winemine /usr/bin/winepath /usr/bin/wineserver /usr/bin/winetricks /usr/bin/wisotool -/usr/bin/wmc -/usr/bin/wrc /usr/share/wine /usr/share/applications/wine.desktop -%doc %{_mandir}/*/* +%doc %{_mandir}/man1/wine.1* +%doc %{_mandir}/man1/winedbg.1* +%doc %{_mandir}/man1/wineserver.1* +%doc %{_mandir}/*/man1/wine.1* +%doc %{_mandir}/*/man1/wineserver.1* +%doc %{_mandir}/man1/msiexec.1.* +%doc %{_mandir}/man1/notepad.1.* +%doc %{_mandir}/man1/regedit.1.* +%doc %{_mandir}/man1/regsvr32.1.* +%doc %{_mandir}/man1/wineboot.1.* +%doc %{_mandir}/man1/winebuild.1.* +%doc %{_mandir}/man1/winecfg.1.* +%doc %{_mandir}/man1/wineconsole.1.* +%doc %{_mandir}/man1/winecpp.1.* +%doc %{_mandir}/man1/winefile.1.* +%doc %{_mandir}/man1/winemine.1.* +%doc %{_mandir}/man1/winepath.1.* %dir /etc/xdg/menus/ %dir /etc/xdg/menus/applications-merged %config /etc/xdg/menus/applications-merged/*.menu @@ -209,31 +218,54 @@ rm -rf $RPM_BUILD_ROOT %dir /usr/share/icons/hicolor/scalable/apps /usr/share/icons/hicolor/scalable/apps/*.svg -%ifarch %ix86 +%if 0%{?suse_version} > 1120 +%ifarch %ix86 %files 32bit %defattr(-,root,root) +%endif +%endif +%ifarch %ix86 /usr/bin/wine /usr/bin/wine-preloader %endif +%ifarch ppc +/usr/bin/wine +%endif %ifarch x86_64 /usr/bin/wine64 /usr/bin/wine64-preloader %endif -%ifarch ppc -/usr/bin/wine -%endif -%{_libdir}/lib* -%dir %{_libdir}/wine %{_libdir}/wine/*.so +%{_libdir}/lib*.so.* +%dir %{_libdir}/wine %dir %{_libdir}/wine/fakedlls %{_libdir}/wine/fakedlls/* %files devel %defattr(-,root,root) %{_includedir}/wine +/usr/bin/widl +/usr/bin/winebuild +/usr/bin/winecpp +/usr/bin/winedump +/usr/bin/wineg++ +/usr/bin/winegcc +/usr/bin/winemaker +/usr/bin/wmc +/usr/bin/wrc %{_libdir}/wine/*.def %{_libdir}/wine/*.a +%{_libdir}/lib*.so +%doc %{_mandir}/man1/winemaker.1* +%doc %{_mandir}/*/man1/winemaker.1* +%doc %{_mandir}/man1/widl.1* +%doc %{_mandir}/man1/winedump.1* +%doc %{_mandir}/man1/wineg++.1* +%doc %{_mandir}/man1/winegcc.1* +%doc %{_mandir}/man1/wmc.1* +%doc %{_mandir}/man1/wrc.1* + # /usr/share/aclocal/wine.m4 %changelog diff --git a/winetricks b/winetricks index 15ac9cd..afd8577 100644 --- a/winetricks +++ b/winetricks @@ -20,7 +20,7 @@ #---- Constants ------------------------------------------------- # Name of this version of winetricks (YYYYMMDD) -VERSION=20101106 +VERSION=20110123 #---- Functions ------------------------------------------------- @@ -41,6 +41,9 @@ detect_sudo() { } # Detect which menu program to use +# Thereafter, use $MENU rather than the literal program name +# to avoid rpmbuild pulling all the alternate menu programs +# as dependencies. (Favor for etersoft.) detect_menu() { # TODO: add 'dialog' MENU=xmessage @@ -53,24 +56,24 @@ detect_menu() { fi } -warn() { +w_warn() { echo "------------------------------------------------------" echo "$@" echo "------------------------------------------------------" - test "$GUI" = 1 || return + test "$GUI" = 1 || return 0 # For some reason, nulls were showing up in $@?!, causing truncated output in zenity msg="`echo $@ | tr '\000' ' '`" case $MENU in - *zenity) zenity --error --title=Winetricks --text="$msg" --no-wrap;; - *kdialog) kdialog --title Winetricks --error "$msg" ;; - *xmessage) xmessage -title Winetricks -center " Error: $msg " ;; + *zenity) $MENU --error --title=Winetricks --text="$msg" --no-wrap;; + *kdialog) $MENU --title Winetricks --error "$msg" ;; + *xmessage) $MENU -title Winetricks -center " Error: $msg " ;; esac } -die() { - warn "$@" +w_die() { + w_warn "$@" exit 1 } @@ -88,7 +91,7 @@ die_if_user_not_dirowner() { nowner=`ls -l -n -d -L "$checkdir" | awk '{print $3}'` if test x$nuser != x$nowner then - die "You (`id -un`) don't own $checkdir. Don't run winetricks as another user!" + w_die "You (`id -un`) don't own $checkdir. Don't run winetricks as another user!" fi } @@ -133,7 +136,6 @@ usage() { echo " d3dx9_42 MS d3dx9_42.dll" echo " d3dx10 MS d3dx10_??.dll (from DirectX user redistributable)" echo " d3dxof MS d3dxof.dll (from DirectX user redistributable)" - echo " dcom98 MS DCOM (ole32, oleaut32); requires Windows 98 license, but does not check for one" echo " devenum MS devenum.dll (from DirectX 9 user redistributable)" echo " dinput8 MS dinput8.dll (from DirectX 9 user redistributable)" echo " dirac the Dirac directshow filter" @@ -149,12 +151,11 @@ usage() { echo " dotnet20 MS .NET 2.0 (requires Windows license, but does not check for one)" # Doesn't work yet, don't make it public # echo " dotnet20sdk MS .NET Framework SDK Version 2.0 (requires Windows license, but does not check for one, may not work yet)" - echo " dotnet20sp2 MS .NET 2.0 sp2 (requires Windows license, but does not check for one)" +# echo " dotnet20sp2 MS .NET 2.0 sp2 (broken in wine)" echo " dotnet30 MS .NET 3.0 (requires Windows license, but does not check for one, might not work yet)" echo " droid Droid fonts (on LCD, looks better with fontsmooth-rgb)" echo " dsound MS dsound.dll (from DirectX 9 user redistributable)" echo " dxsdk_nov2006 DirectX Software Development Kit, November 2006 version" - echo " eadm EA Download Manager" echo " eufonts Updated fonts for Romanian and Bulgarian" echo " fakechinese Creates aliases for Chinese fonts using WenQuanYi fonts" echo " fakejapanese Creates aliases for Japanese fonts using Takao fonts" @@ -174,8 +175,8 @@ usage() { echo " gfw MS Game For Windows Live (xlive.dll)" echo " glut The glut utility library" echo " hosts Adds empty C:\windows\system32\drivers\etc\{hosts,services} files" + echo " icodecs Intel Indeo codecs" echo " ie6 Microsoft Internet Explorer 6.0" - echo " ie6_full Microsoft Internet Explorer 6.0, full installer" echo " ie7 Microsoft Internet Explorer 7.0" echo " ie8 Microsoft Internet Explorer 8.0" echo " jet40 MS Jet 4.0 Service Pack 8" @@ -191,6 +192,7 @@ usage() { echo " mingw-gdb GDB for MinGW" echo " mingw Minimalist GNU for Windows, including GCC for Windows!" echo " mono26 mono-2.6" + echo " mono28 mono-2.8" echo " mozillabuild Mozilla build environment" echo " mpc Media Player Classic" echo " mshflxgd MS Hierarchical FlexGrid Control" @@ -204,6 +206,7 @@ usage() { echo " msxml6 MS XML Core Services 6.0" echo " ogg ogg filters/codecs: flac, theora, speex, vorbis, schroedinger" echo " ole2 MS 16 bit OLE" + echo " opensymbol OpenSymbol fonts from OpenOffice.org (replacement for Wingdings)" echo " openwatcom Open Watcom C/C++ compiler (can compile win16 code!)" echo " pdh MS pdh.dll (Performance Data Helper)" echo " physx NVIDIA/AGEIA PhysX runtime" @@ -225,7 +228,6 @@ usage() { echo " tahoma MS Tahoma font (not part of corefonts)" echo " takao Takao Japanese fonts" echo " unifont Unifont alternative to Arial Unicode MS" - echo " urlmon MS urlmon.dll" echo " usp10 MS usp10.dll (Uniscribe)" echo " utorrent uTorrent" echo " vb2run MS Visual Basic 2 runtime" @@ -251,6 +253,7 @@ usage() { echo " winhttp MS winhttp.dll (requires Windows license, but does not check for one)" echo " wininet MS wininet.dll (requires Windows license, but does not check for one)" echo " wme9 MS Windows Media Encoder 9 (requires Windows license, but does not check for one)" + echo " wmi Windows Management Instrumentation core 1.5 (requires Windows license, but does not check for one)" echo " wmp10 MS Windows Media Player 10 (requires Windows license, but does not check for one)" echo " wmp9 MS Windows Media Player 9 (requires Windows license, but does not check for one)" echo " wsh56js MS Windows scripting 5.6, jscript only, no cscript" @@ -258,11 +261,12 @@ usage() { echo " wsh56vb MS Windows scripting 5.6, vbscript only, no cscript" echo " xact MS XACT Engine (x3daudio?_?.dll, xactengine?_?.dll)" echo " xinput MS XInput (Xbox controller support, xinput?_?.dll)" + echo " xmllite MS xmllite dll" echo " xvid xvid video codec" echo "Pseudopackages:" echo " alldlls=builtin Force use of builtin dlls (even if loaded with absolute path) (except for msvcp80 and d3dx9_*)" echo " alldlls=default Remove all DLL overrides" - echo " allfonts All listed fonts and aliases (corefonts, droid, eufonts, liberation, lucida, tahoma, cjkfonts)" + echo " allfonts All listed fonts and aliases (corefonts, droid, eufonts, liberation, lucida, opensymbol, tahoma, cjkfonts)" echo " allcodecs All listed codecs (xvid, ffdshow)" echo " cjkfonts All Chinese, Japanese, Korean fonts and aliases (fakechinese, fakejapanese, fakekorean, unifont)" echo " ddr=gdi Set DirectDrawRenderer to GDI (default)" @@ -287,7 +291,6 @@ usage() { echo " rtlm=textex Set RenderTargetLockMode to textex" echo " sandbox Sandbox the wineprefix - remove links to ~" echo " sound=alsa Set sound driver to ALSA" - echo " sound=audioio Set sound driver to AudioIO" echo " sound=coreaudio Set sound driver to CoreAudio" echo " sound=esd Set sound driver to Esound" echo " sound=jack Set sound driver to Jack" @@ -299,6 +302,7 @@ usage() { echo " nt40 Set windows version to nt40" echo " vd=off Disable virtual desktop" echo " vd=1024x768 Enable virtual desktop, set size to 1024x768" + echo " win31 Set windows version to Windows 3.1" echo " win98 Set windows version to Windows 98" echo " win2k Set windows version to Windows 2000" echo " winxp Set windows version to Windows XP" @@ -332,7 +336,7 @@ kdialog_showmenu() { args="$args $1 $1 off" shift done - kdialog --title "$title" --separate-output --checklist "$text" $args + $MENU --title "$title" --separate-output --checklist "$text" $args } xmessage_showmenu() { @@ -355,16 +359,16 @@ xmessage_showmenu() { shift done (echo "$title"; echo ""; echo "$text") | \ - xmessage -print -file - -buttons "Cancel,$args" | sed 's/Cancel//' + $MENU -print -file - -buttons "Cancel,$args" | sed 's/Cancel//' } showmenu() { case $MENU in zenity) - echo "zenity --title 'Winetricks' --text 'Select packages to install' --list --checklist --column '' --column Package --column Description --height 440 --width 600 \\" > "$WINETRICKS_TMP"/zenity.sh - usage | grep '^ [0-9a-z]' | sed 's/^ \([^ ]*\) *\(.*\)/FALSE "\1" '"'\2'/" | sed 's/$/ \\/' >> "$WINETRICKS_TMP"/zenity.sh - todo="`sh "$WINETRICKS_TMP"/zenity.sh | tr '|' ' '`" + echo "zenity --title 'Winetricks' --text 'Select packages to install' --list --checklist --column '' --column Package --column Description --height 440 --width 600 \\" > "$W_TMP"/zenity.sh + usage | grep '^ [0-9a-z]' | sed 's/^ \([^ ]*\) *\(.*\)/FALSE "\1" '"'\2'/" | sed 's/$/ \\/' >> "$W_TMP"/zenity.sh + todo="`sh "$W_TMP"/zenity.sh | tr '|' ' '`" ;; kdialog) packages=`usage | awk '/^ [0-9a-z]/ {print $1}'` @@ -393,11 +397,11 @@ esac early_wine() { - WINEDLLOVERRIDES=mshtml= $WINE "$@" + # The sed works around http://bugs.winehq.org/show_bug.cgi?id=25838 + # which unfortunately got released in wine-1.3.12 + WINEDEBUG=-all WINEDLLOVERRIDES=mshtml= $WINE "$@" | sed 's/.*1h.=//' } -# Default values for important settings if not already in environment. -# These settings should not need editing here. case "$OS" in "Windows_NT") # Cheezy fix for getting rid of double slashes when running cygwin in wine @@ -406,65 +410,86 @@ case "$OS" in esac WINE="" WINEPREFIX=${WINEPREFIX:-$HOME/.wine} - DRIVE_C="C:/" + W_DRIVE_C="C:/" XXXPATH=cygpath ;; *) WINE=${WINE:-wine} + if [ ! -x "`which "$WINE" 2>/dev/null`" ] + then + w_die "Cannot find wine ($WINE)" + fi + WINEPREFIX=${WINEPREFIX:-$HOME/.wine} - DRIVE_C="$WINEPREFIX/dosdevices/c:" + W_DRIVE_C="$WINEPREFIX/dosdevices/c:" + + # Create $WINEPREFIX if not already there, and wait for it to complete + # (otherwise, there's a nasty race condition): + # DO NOT USE $WINE BEFORE THIS, if you need to, then move this appropriately. + if test ! -d "$WINEPREFIX" + then + early_wine cmd /c echo hi > /dev/null 2>&1 + fi + + # Prevent running with wrong user id. + # It's bad to create files as the wrong user! + die_if_user_not_dirowner "$WINEPREFIX" XXXPATH="early_wine winepath" ;; esac -WINDIR="$DRIVE_C/windows" +W_WINDIR_UNIX="$W_DRIVE_C/windows" # Win(e) 32/64? -# Using the variable SYSTEM32_DLLS instead of SYSTEM32 because some stuff does go under system32 for both arch's +# Using the variable W_SYSTEM32_DLLS instead of SYSTEM32 because some stuff does go under system32 for both arch's # e.g., spool/drivers/color -if test -d "$DRIVE_C/windows/syswow64" +if test -d "$W_DRIVE_C/windows/syswow64" then - ARCH=win64 - SYSTEM32_DLLS="$WINDIR/syswow64" + W_ARCH=win64 + W_SYSTEM32_DLLS="$W_WINDIR_UNIX/syswow64" + SYSTEM64_DLLS="$W_WINDIR_UNIX/system32" else - ARCH=win32 - SYSTEM32_DLLS="$WINDIR/system32" + W_ARCH=win32 + W_SYSTEM32_DLLS="$W_WINDIR_UNIX/system32" fi # Decide where to store downloaded files -if test ! "$WINETRICKS_CACHE" -a -d $HOME/.winetrickscache +if test ! "$W_CACHE" -a -d $HOME/.winetrickscache then # For backwards compatibility - WINETRICKS_CACHE="$HOME/.winetrickscache" + W_CACHE="$HOME/.winetrickscache" +elif test -d $HOME/Library/Caches +then + # MacOSX + W_CACHE="$HOME/Library/Caches/winetricks" else # See http://standards.freedesktop.org/basedir-spec/latest/ar01s03.html XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache} - WINETRICKS_CACHE="${WINETRICKS_CACHE:-$XDG_CACHE_HOME/winetricks}" + W_CACHE="${W_CACHE:-$XDG_CACHE_HOME/winetricks}" fi -test -d "$WINETRICKS_CACHE" || mkdir -p "$WINETRICKS_CACHE" +test -d "$W_CACHE" || mkdir -p "$W_CACHE" # Internal variables; these locations are not too important -WINETRICKS_CACHE_WIN="`$XXXPATH -w $WINETRICKS_CACHE | tr '\012' ' ' | sed 's/ $//'`" -WINETRICKS_TMP="$DRIVE_C"/winetrickstmp -WINETRICKS_TMP_WIN='c:\winetrickstmp' -mkdir -p "$WINETRICKS_TMP" +W_CACHE_WIN="`$XXXPATH -w $W_CACHE | tr '\012' ' ' | sed 's/ $//'`" +W_TMP="$W_DRIVE_C"/winetrickstmp +W_TMP_WIN='c:\winetrickstmp' -# Handle case where z: doesn't exist -case "$WINETRICKS_CACHE_WIN" in -""|*\?\\unix*) - # WINETRICKS_CACHE isn't accessible via a drive letter mapping, so make one, - # but be sure to clean it up later. - for letter in y x w v u t s r q - do - if ! test -d "$WINEPREFIX"/dosdevices/${letter}: - then - WINETRICKS_CACHE_SYMLINK="$WINEPREFIX"/dosdevices/${letter}: - ln -sf "$WINETRICKS_CACHE" "$WINETRICKS_CACHE_SYMLINK" - break - fi - done - ;; -esac +mkdir -p "$W_TMP" || w_die "can't create $W_TMP" +# Clean up after failed runs, if needed +(cd "$W_TMP" && rm -rf ./*) + +# For case where z: doesn't exist or / is writable (!), +# make a drive letter for W_CACHE. Clean it up on exit. +for letter in y x w v u t s r q p o n m +do + if ! test -d "$WINEPREFIX"/dosdevices/${letter}: + then + WINETRICKS_CACHE_SYMLINK="$WINEPREFIX"/dosdevices/${letter}: + WINETRICKS_CACHE_DRIVE=$letter + ln -sf "$W_CACHE" "$WINETRICKS_CACHE_SYMLINK" + break + fi +done # Overridden for windows ISO_MOUNT_ROOT=/mnt/winetricks @@ -478,9 +503,10 @@ case `date +%S` in esac # Execute with error checking -try() { - # "VAR=foo try cmd" fails to put VAR in the environment - # with some versions of bash if try is a shell function?! +w_try() +{ + # "VAR=foo w_try cmd" fails to put VAR in the environment + # with some versions of bash if w_try is a shell function?! # Adding this explicit export works around it. export WINEDLLOVERRIDES echo Executing "$@" @@ -496,52 +522,76 @@ try() { status=$? if test $status -ne 0 then - die "Note: command '$@' returned status $status. Aborting." + w_die "Note: command '$@' returned status $status. Aborting." fi } -try_regedit() { +w_try_regedit() +{ # on windows, doesn't work without cmd /c case "$OS" in "Windows_NT") cmdc="cmd /c";; *) unset cmdc esac - try early_wine $cmdc regedit "$@" + w_try early_wine $cmdc regedit "$@" } regedit() { - die oops, bug, please report + w_die oops, bug, please report } -try_cabextract() { +w_try_regsvr() +{ + w_try $WINE regsvr32 $W_UNATTENDED_SLASH_S $@ +} + +w_try_cabextract() +{ # Not always installed, but shouldn't be fatal unless it's being used - CABEXTRACT="`which cabextract 2>/dev/null`" - if test ! -x "$CABEXTRACT" + _W_cabextract="`which cabextract 2>/dev/null`" + if test ! -x "$_W_cabextract" then - die "Cannot find cabextract. Please install it (e.g. 'sudo apt-get install cabextract' or 'sudo yum install cabextract')." + w_die "Cannot find cabextract. Please install it (e.g. 'sudo apt-get install cabextract' or 'sudo yum install cabextract')." fi - try $CABEXTRACT "$@" + w_try $_W_cabextract -q "$@" + unset _W_cabextract } cabextract() { - die oops, bug, please report + w_die oops, bug, please report } -try_unzip() { +w_try_unrar() { + # Not always installed, but shouldn't be fatal unless it's being used + UNRAR="`which unrar 2>/dev/null`" + if test ! -x "$UNRAR" + then + w_die "Cannot find unrar. Please install it (e.g. 'sudo apt-get install unrar' or 'sudo yum install unrar'). For cygwin, you can get it at http://gnuwin32.sourceforge.net/packages/unrar.htm" + fi + + w_try $UNRAR "$@" +} + +unrar() { + w_die oops, bug, please report +} + +w_try_unzip() +{ # Not always installed, but shouldn't be fatal unless it's being used UNZIP="`which unzip 2>/dev/null`" if test ! -x "$UNZIP" then - die "Cannot find unzip. Please install it (e.g. 'sudo apt-get install unzip' or 'sudo yum install unzip')." + w_die "Cannot find unzip. Please install it (e.g. 'sudo apt-get install unzip' or 'sudo yum install unzip')." fi - try $UNZIP "$@" + w_try $UNZIP -o -q "$@" } unzip() { - die oops, bug, please report + w_die oops, bug, please report } # verify an sha1sum @@ -552,24 +602,56 @@ verify_sha1sum() { gotsum=`$SHA1SUM < "$file" | sed 's/(stdin)= //;s/ .*//'` if [ "$gotsum"x != "$wantsum"x ] then - die "sha1sum mismatch! Rename $file and try again." + w_die "sha1sum mismatch! Rename $file and w_try again." fi } # Download a file -# Usage: package url [sha1sum [filename]] +# Usage: w_download package url [sha1sum [filename]] # Caches downloads in winetrickscache/$package -download() { +w_download() { if [ "$4"x != ""x ] then file="$4" else file=`basename "$2"` fi - cache="$WINETRICKS_CACHE/$1" + cache="$W_CACHE/$1" mkdir -p "$cache" - if test ! -f "$cache/$file" || test "$WINETRICKS_CONTINUE_DOWNLOAD" - then + # Try download twice + checksum_ok="" + tries=0 + while test $tries -lt 2 + do + tries=`expr $tries + 1` + + if test -s "$cache/$file" + then + if test "$3" + then + # If checksum matches, declare success and exit loop + gotsum=`$SHA1SUM < "$cache/$file" | sed 's/(stdin)= //;s/ .*//'` + if [ "$gotsum"x = "$3"x ] + then + checksum_ok=1 + break + fi + if test ! "$WINETRICKS_CONTINUE_DOWNLOAD" + then + w_warn "Checksum for $cache/$file did not match, retrying download" + mv -f "$cache/$file" "$cache/$file".bak + fi + else + # file exists, no checksum known, declare success and exit loop + break + fi + elif test -f "$cache/$file" + then + # zero length file, just delete before retrying + rm "$cache/$file" + fi + + _W_dl_olddir=`pwd` cd "$cache" # Mac folks tend to have curl rather than wget # On Mac, 'which' doesn't return good exit status @@ -583,14 +665,14 @@ download() { # [*] --read-timeout is useful on the adobe server that doesn't # close the connection unless you tell it to (control-C or closing # the socket) - try wget -O "$file" -nd -c --read-timeout=300 --retry-connrefused --header "Accept-Encoding: gzip,deflate" "$2" + w_try wget -O "$file" -nd -c --read-timeout=300 --retry-connrefused --header "Accept-Encoding: gzip,deflate" "$2" elif [ -x "`which curl 2>/dev/null`" ] then # curl doesn't get filename from the location given by the server! # fortunately, we know it - try curl -L -o "$file" -C - --header "Accept-Encoding: gzip,deflate" "$2" + w_try curl -L -o "$file" -C - --header "Accept-Encoding: gzip,deflate" "$2" else - die "wget/curl not found, cannot download any files. Please install either wget or curl." + w_die "wget/curl not found, cannot download any files. Please install either wget or curl." fi # Need to decompress .exe's that are compressed, else cygwin fails # Only affects cygwin, so don't barf if 'file' not installed @@ -602,26 +684,131 @@ download() { esac esac - cd "$olddir" - fi - if [ "$3"x != ""x ] + cd "$_W_dl_olddir" + unset _W_dl_olddir + done + if test "$3" -a ! "$checksum_ok" then verify_sha1sum $3 "$cache/$file" fi + return 0 } -set_winver() { - echo "Setting Windows version to $1" - cat > "$WINETRICKS_TMP"/set-winver.reg <<_EOF_ +# Has to be set in a few places... +w_set_winver() { + # FIXME: This should really be done with winecfg, but it has no CLI options. + + # 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 + + case $1 in + win31) + echo "Setting Windows version to $1" + cat > "$W_TMP"/set-winver.reg <<_EOF_ REGEDIT4 -[HKEY_CURRENT_USER\Software\Wine] -"Version"="$1" +[HKEY_USERS\S-1-5-4\Software\Wine] +"Version"="win31" _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\set-winver.reg + + w_try_regedit "$W_TMP_WIN"\\set-winver.reg + return + ;; + win98) + # This key is only used for win 95/98: + + echo "Setting Windows version to $1" + cat > "$W_TMP"/set-winver.reg <<_EOF_ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion] +"SubVersionNumber"=" A " +"VersionNumber"="4.10.2222" + +_EOF_ + w_try_regedit "$W_TMP_WIN"\\set-winver.reg + return + ;; + nt40) + # Similar to modern version, but sets two extra keys: + + echo "Setting Windows version to $1" + cat > "$W_TMP"/set-winver.reg <<_EOF_ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion] +"CSDVersion"="Service Pack 6a" +"CurrentBuildNumber"="1381" +"CurrentVersion"="4.0" + +[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ProductOptions] +"ProductType"="WinNT" + +[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceCurrent] +"OS"="Windows_NT" + +[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows] +"CSDVersion"=dword:00000600 + +_EOF_ + w_try_regedit "$W_TMP_WIN"\\set-winver.reg + return + ;; + win2k) + csdversion="Service Pack 4" + currentbuildnumber="2195" + currentversion="5.0" + csdversion_hex=dword:00000400 + ;; + winxp) + csdversion="Service Pack 3" + currentbuildnumber="2600" + currentversion="5.1" + csdversion_hex=dword:00000300 + ;; + vista) + csdversion="Service Pack 2" + currentbuildnumber="6002" + currentversion="6.0" + csdversion_hex=dword:00000200 + ;; + win7) + csdversion="Service Pack 1" + currentbuildnumber="7601" + currentversion="6.1" + csdversion_hex=dword:00000100 + ;; + *) + die "Invalid Windows version given." + ;; + esac + + echo "Setting Windows version to $1" + cat > "$W_TMP"/set-winver.reg <<_EOF_ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion] +"CSDVersion"="$csdversion" +"CurrentBuildNumber"="$currentbuildnumber" +"CurrentVersion"="$currentversion" + +[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows] +"CSDVersion"=$csdversion_hex + +_EOF_ + w_try_regedit "$W_TMP_WIN"\\set-winver.reg } +# FIXME: has this changed too? set_app_winver() { app="$1" version="$2" @@ -631,139 +818,139 @@ set_app_winver() { echo "" echo "[HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\$app]" echo "\"Version\"=\"$version\"" - ) > "$WINETRICKS_TMP"/set-winver.reg + ) > "$W_TMP"/set-winver.reg - try_regedit "$WINETRICKS_TMP_WIN"\\set-winver.reg - rm "$WINETRICKS_TMP"/set-winver.reg + w_try_regedit "$W_TMP_WIN"\\set-winver.reg + rm "$W_TMP"/set-winver.reg } set_ddr() { echo "Setting DirectDrawRenderer to $1" - cat > "$WINETRICKS_TMP"/set-ddr.reg <<_EOF_ + cat > "$W_TMP"/set-ddr.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "DirectDrawRenderer"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP"/set-ddr.reg + w_try_regedit "$W_TMP"/set-ddr.reg } set_orm() { echo "Setting OffscreenRenderingMode to $1" - cat > "$WINETRICKS_TMP"/set-orm.reg <<_EOF_ + cat > "$W_TMP"/set-orm.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "OffscreenRenderingMode"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\set-orm.reg + w_try_regedit "$W_TMP_WIN"\\set-orm.reg } set_mmdevapi() { echo "Setting mmdevapi to $1" - override_dlls $1 mmdevapi + w_override_dlls $1 mmdevapi } set_rtlm() { echo "Setting RenderTargetLockMode to $1" - cat > "$WINETRICKS_TMP"/set-rtlm.reg <<_EOF_ + cat > "$W_TMP"/set-rtlm.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "RenderTargetLockMode"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP"/set-rtlm.reg + w_try_regedit "$W_TMP"/set-rtlm.reg } set_sdo() { echo "Setting StrictDrawOrdering to $1" - cat > "$WINETRICKS_TMP"/set-sdo.reg <<_EOF_ + cat > "$W_TMP"/set-sdo.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "StrictDrawOrdering"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP"/set-sdo.reg + w_try_regedit "$W_TMP"/set-sdo.reg } set_vsm() { echo "Setting Vertex Shaders to $1" - cat > "$WINETRICKS_TMP"/set-vsm.reg <<_EOF_ + cat > "$W_TMP"/set-vsm.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "VertexShaderMode"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP"/set-vsm.reg + w_try_regedit "$W_TMP"/set-vsm.reg } set_multisampling() { echo "Setting Multisampling to $1" - cat > "$WINETRICKS_TMP"/set-multi.reg <<_EOF_ + cat > "$W_TMP"/set-multi.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "Multisampling"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP"/set-multi.reg + w_try_regedit "$W_TMP"/set-multi.reg } set_mwo () { echo "Setting MouseWarpOverride to $1" - cat > "$WINETRICKS_TMP"/set-mwo.reg <<_EOF_ + cat > "$W_TMP"/set-mwo.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\DirectInput] "MouseWarpOverride"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP"/set-mwo.reg + w_try_regedit "$W_TMP"/set-mwo.reg } npm_repack (){ echo "Setting Nonpower2Mode to repack" - cat > "$WINETRICKS_TMP"/set-npw.reg <<_EOF_ + cat > "$W_TMP"/set-npw.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "Nonpower2Mode"="repack" _EOF_ - try_regedit "$WINETRICKS_TMP"/set-npw.reg + w_try_regedit "$W_TMP"/set-npw.reg } set_psm() { echo "Setting PixelShaderMode to $1" - cat > "$WINETRICKS_TMP"/set-psm.reg <<_EOF_ + cat > "$W_TMP"/set-psm.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] -"RenderTargetLockMode"="$1" +"PixelShaderMode"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP"/set-psm.reg + w_try_regedit "$W_TMP"/set-psm.reg } set_sound_driver() { echo "Setting sound driver to $1" - cat > "$WINETRICKS_TMP"/set-sound.reg <<_EOF_ + cat > "$W_TMP"/set-sound.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Audio"="$1" _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\set-sound.reg + w_try_regedit "$W_TMP_WIN"\\set-sound.reg } set_videomemorysize() { @@ -773,7 +960,7 @@ set_videomemorysize() { case $size in default) - cat > "$WINETRICKS_TMP"/set-video.reg <<_EOF_ + cat > "$W_TMP"/set-video.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] @@ -782,7 +969,7 @@ REGEDIT4 _EOF_ ;; *) - cat > "$WINETRICKS_TMP"/set-video.reg <<_EOF_ + cat > "$W_TMP"/set-video.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] @@ -790,14 +977,14 @@ REGEDIT4 _EOF_ esac - try_regedit "$WINETRICKS_TMP_WIN"\\set-video.reg + w_try_regedit "$W_TMP_WIN"\\set-video.reg } set_virtualdesktop() { size=$1 case $size in off|disabled) - cat > "$WINETRICKS_TMP"/vd.reg <<_EOF_ + cat > "$W_TMP"/vd.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Explorer] @@ -808,7 +995,7 @@ REGEDIT4 _EOF_ ;; [1-9]*x[1-9]*) - cat > "$WINETRICKS_TMP"/vd.reg <<_EOF_ + cat > "$W_TMP"/vd.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Explorer] @@ -819,25 +1006,48 @@ REGEDIT4 _EOF_ ;; *) - die "you want a virtual desktop of $size? I don't understand." + w_die "you want a virtual desktop of $size? I don't understand." ;; esac - try_regedit "$WINETRICKS_TMP"/vd.reg + w_try_regedit "$W_TMP"/vd.reg } disable_crashdialog() { echo "Disabling graphical crash dialog" - cat > "$WINETRICKS_TMP"/crashdialog.reg <<_EOF_ + cat > "$W_TMP"/crashdialog.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\WineDbg] "ShowCrashDialog"=dword:00000000 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\crashdialog.reg + w_try_regedit "$W_TMP_WIN"\\crashdialog.reg } -sandbox() { +# Function to protect wine-specific sections of code. +# Outputs a message to console explaining what's being skipped. +# Usage: +# if w_skip_windows name-of-operation +# then +# return +# fi +# ... do something that doesn't make sense on windows ... + +w_skip_windows() +{ + case "$OS" in + "Windows_NT") + echo "Skipping operation '$1' on Windows" + return 0 + ;; + esac + return 1 +} + +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:" @@ -864,19 +1074,13 @@ sandbox() { echo disable > "$WINEPREFIX/.update-timestamp" } -unset_winver() { - echo "Clearing Windows version back to default" - cat > "$WINETRICKS_TMP"/unset-winver.reg <<_EOF_ -REGEDIT4 - -[HKEY_CURRENT_USER\Software\Wine] -"Version"=- - -_EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\unset-winver.reg +w_unset_winver() { + w_set_winver winxp } -override_dlls() { +w_override_dlls() { + w_skip_windows override && return + mode=$1 if [ $mode = "disabled" ] then @@ -884,7 +1088,7 @@ override_dlls() { fi shift echo Using $mode override for following DLLs: $@ - cat > "$WINETRICKS_TMP"/override-dll.reg <<_EOF_ + cat > "$W_TMP"/override-dll.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\DllOverrides] @@ -893,24 +1097,25 @@ _EOF_ do case "$1" in comctl32) - rm -rf "$WINDIR"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest + rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest ;; esac # Note: if you want to override even DLLs loaded with an absolute path, # you need to add an asterisk: - echo "\"*$1\"=\"$mode\"" >> "$WINETRICKS_TMP"/override-dll.reg - #echo "\"$1\"=\"$mode\"" >> "$WINETRICKS_TMP"/override-dll.reg + echo "\"*$1\"=\"$mode\"" >> "$W_TMP"/override-dll.reg + #echo "\"$1\"=\"$mode\"" >> "$W_TMP"/override-dll.reg shift done - try_regedit "$WINETRICKS_TMP_WIN"\\override-dll.reg - cat "$WINETRICKS_TMP"/override-dll.reg - rm "$WINETRICKS_TMP"/override-dll.reg + w_try_regedit "$W_TMP_WIN"\\override-dll.reg + rm "$W_TMP"/override-dll.reg } override_no_dlls() { + w_skip_windows override && return + $WINE regedit /d 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' } @@ -918,7 +1123,7 @@ override_all_dlls() { # Disable all but the commonly used DLLs Wine doesn't have a credible alternative for # i.e. Don't disallow msvcp80 or d3dx9_* for now # d3dx9_24.dll d3dx9_25.dll d3dx9_26.dll d3dx9_27.dll d3dx9_28.dll d3dx9_29.dll d3dx9_30.dll d3dx9_31.dll d3dx9_32.dll d3dx9_33.dll d3dx9_34.dll d3dx9_35.dll d3dx9_36.dll d3dx9_37.dll d3dx9_38.dll d3dx9_39.dll d3dx9_40.dll d3dx9_41.dll d3dx9_42.dll d3dxof.dll - override_dlls builtin \ + w_override_dlls builtin \ acledit aclui activeds actxprxy advapi32 advpack amstream atl authz avicap32 \ avifil32 avifilebavrt bcrypt browseui cabinet capi2032 cards cfgmgr32 clusapi \ comcat comctl32 comdlg32 commdlg compobj compstui credui crtdll crypt32 cryptdlg \ @@ -952,46 +1157,51 @@ override_all_dlls() { xinput1_1 xinput1_2 xinput1_3 xinput9_1_0 xmllite } -override_app_dlls() { - app=$1 +w_override_app_dlls() +{ + w_skip_windows override && return + + _W_app=$1 shift - mode=$1 + _W_mode=$1 shift - echo Using $mode override for following DLLs when running $app: $@ + echo Using $_W_mode override for following DLLs when running $_W_app: $@ ( echo REGEDIT4 echo "" echo "[HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\$app\\DllOverrides]" - ) > "$WINETRICKS_TMP"/override-dll.reg + ) > "$W_TMP"/override-dll.reg while test "$1" != "" do case "$1" in comctl32) - rm -rf "$WINDIR"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest + rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest ;; esac - echo "\"$1\"=\"$mode\"" >> "$WINETRICKS_TMP"/override-dll.reg + echo "\"$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg shift done - try_regedit "$WINETRICKS_TMP_WIN"\\override-dll.reg - rm "$WINETRICKS_TMP"/override-dll.reg + w_try_regedit "$W_TMP_WIN"\\override-dll.reg + rm "$W_TMP"/override-dll.reg + unset _W_app _W_mode } -register_font() { +w_register_font() +{ file=$1 shift font=$1 #echo "Registering $file as $font" - cat > "$WINETRICKS_TMP"/register-font.reg <<_EOF_ + cat > "$W_TMP"/register-font.reg <<_EOF_ REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts] "$font"="$file" _EOF_ # too verbose - try_regedit "$WINETRICKS_TMP_WIN"\\register-font.reg + w_try_regedit "$W_TMP_WIN"\\register-font.reg } append_path() { @@ -999,15 +1209,66 @@ append_path() { NEW_PATH="$1" WIN_PATH="`WINEDEBUG= $WINE cmd.exe /c echo "%PATH%" | tr -d '\r' | sed 's,\\\\,\\\\\\\\,g'`" - sed 's/$/\r/' > "$WINETRICKS_TMP"/path.reg <<_EOF_ + sed 's/$/\r/' > "$W_TMP"/path.reg <<_EOF_ REGEDIT4 [HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Session Manager\\Environment] "PATH"="$NEW_PATH;$WIN_PATH" _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\path.reg - rm -f "$WINETRICKS_TMP"/path.reg + w_try_regedit "$W_TMP_WIN"\\path.reg + rm -f "$W_TMP"/path.reg +} + +# Usage: w_workaround_wine_bug bugnumber [good-wineversion-shell-pattern] +# False (nonzero status) on Windows. +# True (zero status) on Wine unless good-wineversion-shell-pattern is set +# and matches the current wine version. +# (FIXME: make that easier to use, maybe by specifying a range instead of a pattern.) +# For debugging: if you want to skip a bug's workaround, put the bug number in the +# environment variable WINETRICKS_BUG_BLACKLIST to disable it. +w_workaround_wine_bug() +{ + if test "$WINE" = "" + then + echo No need to work around wine bug $1 on windows + return 1 + fi + if test "$2" != "" + then + # Using shell patterns in a variable with case is tricky, need to use eval + checkcode=" + case $WINEVERSION in + $2) echo No need to work around wine bug $1 in wine $WINEVERSION + return 1 + ;; + esac + " + eval "$checkcode" + fi + if test "$WINETRICKS_BUG_BLACKLIST" && echo $1 | grep -q "$WINETRICKS_BUG_BLACKLIST" + then + echo wine bug $1 workaround blacklisted, skipping + return 1 + fi + # In wisotool, we warn here, but traditionally winetricks has been silent about workarounds, so just echo + echo "Working around wine bug $1" + return 0 +} + +# Function for verbs to register their main executable. +# Example: +# w_declare_exe "$W_PROGRAMS_X86_WIN\\WorldOfGooDemo" WorldOfGoo.exe +w_declare_exe() +{ + _W_dir="$1" + _W_exe="$2" + cat > "$W_DRIVE_C/run-$W_PACKAGE.bat" <<__EOF__ +${W_PROGRAMS_DRIVE}: +cd "$_W_dir" +$_W_exe +__EOF__ + unset _W_dir _W_exe } #----- common download for several verbs @@ -1015,28 +1276,45 @@ _EOF_ helper_directx_dl() { # February 2010 DirectX 9c User Redistributable # http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=0cef8180-e94a-4f56-b157-5ab8109cb4f5 - download . http://download.microsoft.com/download/E/E/1/EE17FF74-6C45-4575-9CF4-7FC2597ACD18/directx_feb2010_redist.exe a97c820915dc20929e84b49646ec275760012a42 + w_download . http://download.microsoft.com/download/E/E/1/EE17FF74-6C45-4575-9CF4-7FC2597ACD18/directx_feb2010_redist.exe a97c820915dc20929e84b49646ec275760012a42 DIRECTX_NAME=directx_feb2010_redist.exe } #----- One function per package, in alphabetical order ---------- -load_7zip() { - download . $SOURCEFORGE/sevenzip/7z465.exe c36012e960fa3932cd23f30ac5b0fe722740243a - try $WINE "$WINETRICKS_CACHE"/7z465.exe $WINETRICKS_S +load_7zip() +{ + if test -f "$W_PROGRAMS_X86_UNIX/7-Zip/7z.exe" + then + echo "7zip already installed, skipping" + return + fi + # FIXME: use more up to date version + w_download 7zip http://downloads.sourceforge.net/sevenzip/7z465.exe c36012e960fa3932cd23f30ac5b0fe722740243a + w_try $WINE "$W_CACHE"/7zip/7z465.exe $W_UNATTENDED_SLASH_S + w_declare_exe "$W_PROGRAMS_X86_WIN\\7-Zip" "7z.exe %1 %2 %3 %4 %5" } #---------------------------------------------------------------- -load_abiword() { - download $PACKAGE http://www.abisource.com/downloads/abiword/2.8.6/Windows/abiword-setup-2.8.6.exe a91acd3f60e842d23556032d34f1600602768318 - try $WINE "$WINETRICKS_CACHE"/$PACKAGE/abiword-setup-2.8.6.exe $WINETRICKS_S +load_abiword() +{ + if test -f "$W_PROGRAMS_X86_UNIX/AbiWord/bin/AbiWord.exe" + then + echo "abiword already installed, skipping" + return + fi + + w_download abiword http://www.abisource.com/downloads/abiword/2.8.6/Windows/abiword-setup-2.8.6.exe a91acd3f60e842d23556032d34f1600602768318 + w_try $WINE "$W_CACHE"/abiword/abiword-setup-2.8.6.exe $W_UNATTENDED_SLASH_S + w_declare_exe "$W_PROGRAMS_X86_WIN\\AbiWord\\bin" AbiWord.exe } #---------------------------------------------------------------- -load_adobeair() { +load_adobeair() +{ # corefonts is necessary to avoid an installer crash. load_corefonts @@ -1044,166 +1322,177 @@ load_adobeair() { # 2010-02-02: sha1sum 5c95f51a680f8c175a92755238127be4ad22c53b # 2010-02-20: sha1sum 6f03e723bd855abbe00eb8fdf22da54fb49c62db # 2010-07-29: sha1sum 7b93aedaf48ad7854940e7a4e7d9394a255e888b - download . http://airdownload.adobe.com/air/win/download/2.0.2/AdobeAIRInstaller.exe 7b93aedaf48ad7854940e7a4e7d9394a255e888b - try $WINE "$WINETRICKS_CACHE"/AdobeAIRInstaller.exe $WINETRICKS_UNIXSILENT + w_download . http://airdownload.adobe.com/air/win/download/2.0.2/AdobeAIRInstaller.exe 7b93aedaf48ad7854940e7a4e7d9394a255e888b + w_try $WINE "$W_CACHE"/AdobeAIRInstaller.exe $W_UNATTENDED_DASH_SILENT } #---------------------------------------------------------------- -load_amstream() { +load_amstream() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'amstream.dll' "$WINETRICKS_TMP/dxnt.cab" - - try $WINE regsvr32 amstream.dll - - override_dlls native amstream + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'amstream.dll' "$W_TMP/dxnt.cab" + w_try_regsvr amstream.dll + w_override_dlls native amstream } #---------------------------------------------------------------- -load_art2kmin() { +load_art2kmin() +{ # See http://www.microsoft.com/downloads/details.aspx?familyid=d9ae78d9-9dc6-4b38-9fa6-2c745a175aed&displaylang=en - download . http://download.microsoft.com/download/D/2/A/D2A2FC8B-0447-491C-A5EF-E8AA3A74FB98/AccessRuntime.exe 571811b7536e97cf4e4e53bbf8260cddd69f9b2d - cd "$WINETRICKS_CACHE" - try $WINE AccessRuntime.exe $WINETRICKS_QUIET - cd "$olddir" + w_download . http://download.microsoft.com/download/D/2/A/D2A2FC8B-0447-491C-A5EF-E8AA3A74FB98/AccessRuntime.exe 571811b7536e97cf4e4e53bbf8260cddd69f9b2d + cd "$W_CACHE" + w_try $WINE AccessRuntime.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_atmlib() { +load_atmlib() +{ # http://www.microsoft.com/downloads/details.aspx?FamilyID=1001AAF1-749F-49F4-8010-297BD6CA33A0&displaylang=en - # FIXME: This is a huge download for a single dll. - download . http://download.microsoft.com/download/E/6/A/E6A04295-D2A8-40D0-A0C5-241BFECD095E/W2KSP4_EN.EXE fadea6d94a014b039839fecc6e6a11c20afa4fa8 - cd "$WINETRICKS_TMP" - try_cabextract "$WINETRICKS_CACHE"/W2KSP4_EN.EXE i386/atmlib.dl_ - try cp atmlib.dll "$SYSTEM32_DLLS" - try rm -rf i386 - cd "$olddir" + # FIXME: This is a huge w_download for a single dll. + w_download . http://download.microsoft.com/download/E/6/A/E6A04295-D2A8-40D0-A0C5-241BFECD095E/W2KSP4_EN.EXE fadea6d94a014b039839fecc6e6a11c20afa4fa8 + cd "$W_TMP" + w_try_cabextract "$W_CACHE"/W2KSP4_EN.EXE i386/atmlib.dl_ + w_try cp atmlib.dll "$W_SYSTEM32_DLLS" + w_try rm -rf i386 } #---------------------------------------------------------------- -load_autohotkey() { - download . http://www.autohotkey.net/programs/AutoHotkey104805_Install.exe 13e5a9ca6d5b7705f1cd02560c3af4d38b1904fc - cd "$WINETRICKS_CACHE" - try $WINE AutoHotkey104805_Install.exe $WINETRICKS_S - cd - +load_autohotkey() +{ + if test -f "$W_PROGRAMS_X86_UNIX/AutoHotkey/AutoHotkey.exe" + then + echo "autohotkey already installed" + return + fi + w_download autohotkey http://www.autohotkey.net/programs/AutoHotkey104805_Install.exe 13e5a9ca6d5b7705f1cd02560c3af4d38b1904fc + cd "$W_CACHE"/autohotkey + w_try $WINE AutoHotkey104805_Install.exe $W_UNATTENDED_SLASH_S } #---------------------------------------------------------------- -load_baekmuk() { +load_baekmuk() +{ # The Baekmuk fonts provide Korean glyphs. May also be needed with fakekorean function. # See http://kldp.net/projects/baekmuk for project page - # Need to download from Debian as the project page has unique captcha tokens per visitor - download . http://ftp.de.debian.org/debian/pool/main/t/ttf-baekmuk/ttf-baekmuk_2.2.orig.tar.gz afdee34f700007de6ea87b43c92a88b7385ba65b - cd "$WINETRICKS_TMP/" - gunzip -dc "$WINETRICKS_CACHE/ttf-baekmuk_2.2.orig.tar.gz" | tar -xf - - try mv baekmuk-ttf-2.2/ttf/*.ttf "$winefontsdir" - register_font batang.ttf "Baekmuk Batang" - register_font gulim.ttf "Baekmuk Gulim" - register_font dotum.ttf "Baekmuk Dotum" - register_font hline.ttf "Baekmuk Headline" - cd "$olddir" + # Need to w_download from Debian as the project page has unique captcha tokens per visitor + w_download . http://ftp.de.debian.org/debian/pool/main/t/ttf-baekmuk/ttf-baekmuk_2.2.orig.tar.gz afdee34f700007de6ea87b43c92a88b7385ba65b + cd "$W_TMP/" + gunzip -dc "$W_CACHE/ttf-baekmuk_2.2.orig.tar.gz" | tar -xf - + w_try mv baekmuk-ttf-2.2/ttf/*.ttf "$W_FONTSDIR_UNIX" + w_register_font batang.ttf "Baekmuk Batang" + w_register_font gulim.ttf "Baekmuk Gulim" + w_register_font dotum.ttf "Baekmuk Dotum" + w_register_font hline.ttf "Baekmuk Headline" } #---------------------------------------------------------------- -load_cc580() { +load_comctl32() +{ # http://www.microsoft.com/downloads/details.aspx?familyid=6f94d31a-d1e0-4658-a566-93af0d8d4a1e - download . http://download.microsoft.com/download/platformsdk/redist/5.80.2614.3600/w9xnt4/en-us/cc32inst.exe 94c3c494258cc54bd65d2f0153815737644bffde + w_download comctl32 http://download.microsoft.com/download/platformsdk/redist/5.80.2614.3600/w9xnt4/en-us/cc32inst.exe 94c3c494258cc54bd65d2f0153815737644bffde - try $WINE "$WINETRICKS_CACHE"/cc32inst.exe "/T:$winetricks_tmp_win" /c $WINETRICKS_QUIET - try_unzip -o $WINETRICKS_UNIXQUIET -d "$WINDIR"/temp "$WINETRICKS_TMP"/comctl32.exe - try $WINE "$WINDIR"/temp/x86/50ComUpd.Exe "/T:$winetricks_tmp_win" /c $WINETRICKS_QUIET - try cp "$WINETRICKS_TMP"/comcnt.dll "$SYSTEM32_DLLS"/comctl32.dll + 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 cp "$W_TMP"/comcnt.dll "$W_SYSTEM32_DLLS"/comctl32.dll - override_dlls native,builtin comctl32 + w_override_dlls native,builtin comctl32 # some builtin apps don't like native comctl32 - override_app_dlls winecfg.exe builtin comctl32 - override_app_dlls explorer.exe builtin comctl32 - override_app_dlls iexplore.exe builtin comctl32 + w_override_app_dlls winecfg.exe builtin comctl32 + w_override_app_dlls explorer.exe builtin comctl32 + w_override_app_dlls iexplore.exe builtin comctl32 } #---------------------------------------------------------------- -load_cmake() { - download . http://www.cmake.org/files/v2.8/cmake-2.8.2-win32-x86.exe 2c46f4e804787b231c2f45e1b43f1838462e8dfe - try $WINE "$WINETRICKS_CACHE"/cmake-2.8.2-win32-x86.exe +load_cmake() +{ + w_download . http://www.cmake.org/files/v2.8/cmake-2.8.2-win32-x86.exe 2c46f4e804787b231c2f45e1b43f1838462e8dfe + w_try $WINE "$W_CACHE"/cmake-2.8.2-win32-x86.exe $W_UNATTENDED_SLASH_S } #---------------------------------------------------------------- -load_comctl32ocx() { +load_comctl32ocx() +{ # http://www.microsoft.com/downloads/details.aspx?FamilyID=25437D98-51D0-41C1-BB14-64662F5F62FE - download . http://download.microsoft.com/download/3/a/5/3a5925ac-e779-4b1c-bb01-af67dc2f96fc/VisualBasic6-KB896559-v1-ENU.exe f52cf2034488235b37a1da837d1c40eb2a1bad84 + w_download . http://download.microsoft.com/download/3/a/5/3a5925ac-e779-4b1c-bb01-af67dc2f96fc/VisualBasic6-KB896559-v1-ENU.exe f52cf2034488235b37a1da837d1c40eb2a1bad84 - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/VisualBasic6-KB896559-v1-ENU.exe - try cp "$WINETRICKS_TMP"/mscomctl.ocx "$SYSTEM32_DLLS"/mscomctl.ocx - try cp "$WINETRICKS_TMP"/comctl32.ocx "$SYSTEM32_DLLS"/comctl32.ocx - try $WINE regsvr32 comctl32.ocx - try $WINE regsvr32 mscomctl.ocx + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/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 } #---------------------------------------------------------------- -load_colorprofile() { - download . http://download.microsoft.com/download/whistler/hwdev1/1.0/wxp/en-us/ColorProfile.exe 6b72836b32b343c82d0760dff5cb51c2f47170eb - try_unzip -o $WINETRICKS_UNIXQUIET -d "$WINETRICKS_TMP" "$WINETRICKS_CACHE"/ColorProfile.exe +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.exe # It's in system32 for both win32/win64 - mkdir -p "$WINDIR"/system32/spool/drivers/color - try cp -f "$WINETRICKS_TMP/sRGB Color Space Profile.icm" "$WINDIR"/system32/spool/drivers/color + mkdir -p "$W_WINDIR_UNIX"/system32/spool/drivers/color + w_try cp -f "$W_TMP/sRGB Color Space Profile.icm" "$W_WINDIR_UNIX"/system32/spool/drivers/color } #---------------------------------------------------------------- -load_comdlg32ocx() { - download . http://activex.microsoft.com/controls/vb6/comdlg32.cab d4f3e193c6180eccd73bad53a8500beb5b279cbf - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/comdlg32.cab - try cp "$WINETRICKS_TMP"/comdlg32.ocx "$SYSTEM32_DLLS"/comdlg32.ocx - try $WINE regsvr32 comdlg32.ocx +load_comdlg32ocx() +{ + w_download . http://activex.microsoft.com/controls/vb6/comdlg32.cab d4f3e193c6180eccd73bad53a8500beb5b279cbf + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comdlg32.cab + w_try cp "$W_TMP"/comdlg32.ocx "$W_SYSTEM32_DLLS"/comdlg32.ocx + w_try_regsvr comdlg32.ocx } #---------------------------------------------------------------- -load_controlpad() { +load_controlpad() +{ # http://msdn.microsoft.com/en-us/library/ms968493.aspx # Fixes error "Failed to load UniText..." load_wsh57 - download . http://download.microsoft.com/download/activexcontrolpad/install/4.0.0.950/win98mexp/en-us/setuppad.exe 8921e0f52507ca6a373c94d222777c750fb48af7 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/setuppad.exe + w_download . http://download.microsoft.com/download/activexcontrolpad/install/4.0.0.950/win98mexp/en-us/setuppad.exe 8921e0f52507ca6a373c94d222777c750fb48af7 + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/setuppad.exe echo "If setup says 'Unable to start DDE ...', press Ignore" - try $WINE "$WINETRICKS_TMP"/setup $WINETRICKS_QUIET_T + w_try $WINE "$W_TMP"/setup $W_UNATTENDED_SLASH_Q_T } #---------------------------------------------------------------- -load_corefonts() { +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 download locations to sites that actually contained the - # fonts to download (as of 04-03-2008) - #download . $SOURCEFORGE/corefonts/andale32.exe c4db8cbe42c566d12468f5fdad38c43721844c69 - download . $SOURCEFORGE/corefonts/arial32.exe 6d75f8436f39ab2da5c31ce651b7443b4ad2916e - download . $SOURCEFORGE/corefonts/arialb32.exe d45cdab84b7f4c1efd6d1b369f50ed0390e3d344 - download . $SOURCEFORGE/corefonts/comic32.exe 2371d0327683dcc5ec1684fe7c275a8de1ef9a51 - download . $SOURCEFORGE/corefonts/courie32.exe 06a745023c034f88b4135f5e294fece1a3c1b057 - download . $SOURCEFORGE/corefonts/georgi32.exe 90e4070cb356f1d811acb943080bf97e419a8f1e - download . $SOURCEFORGE/corefonts/impact32.exe 86b34d650cfbbe5d3512d49d2545f7509a55aad2 - download . $SOURCEFORGE/corefonts/times32.exe 20b79e65cdef4e2d7195f84da202499e3aa83060 - download . $SOURCEFORGE/corefonts/trebuc32.exe 50aab0988423efcc9cf21fac7d64d534d6d0a34a - download . $SOURCEFORGE/corefonts/verdan32.exe f5b93cedf500edc67502f116578123618c64a42a - download . $SOURCEFORGE/corefonts/webdin32.exe 2fb4a42c53e50bc70707a7b3c57baf62ba58398f + # [*] Pointed w_download locations to sites that actually contained the + # fonts to w_download (as of 04-03-2008) + #w_download . $SOURCEFORGE/corefonts/andale32.exe c4db8cbe42c566d12468f5fdad38c43721844c69 + w_download . $SOURCEFORGE/corefonts/arial32.exe 6d75f8436f39ab2da5c31ce651b7443b4ad2916e + w_download . $SOURCEFORGE/corefonts/arialb32.exe d45cdab84b7f4c1efd6d1b369f50ed0390e3d344 + w_download . $SOURCEFORGE/corefonts/comic32.exe 2371d0327683dcc5ec1684fe7c275a8de1ef9a51 + w_download . $SOURCEFORGE/corefonts/courie32.exe 06a745023c034f88b4135f5e294fece1a3c1b057 + w_download . $SOURCEFORGE/corefonts/georgi32.exe 90e4070cb356f1d811acb943080bf97e419a8f1e + w_download . $SOURCEFORGE/corefonts/impact32.exe 86b34d650cfbbe5d3512d49d2545f7509a55aad2 + w_download . $SOURCEFORGE/corefonts/times32.exe 20b79e65cdef4e2d7195f84da202499e3aa83060 + w_download . $SOURCEFORGE/corefonts/trebuc32.exe 50aab0988423efcc9cf21fac7d64d534d6d0a34a + w_download . $SOURCEFORGE/corefonts/verdan32.exe f5b93cedf500edc67502f116578123618c64a42a + w_download . $SOURCEFORGE/corefonts/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 @@ -1211,255 +1500,273 @@ load_corefonts() { # to obtain the files and register the fonts by hand. # Andale needs a FontSubstitutes entry - # try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/andale32.exe + # w_try_cabextract --directory="$W_TMP" "$W_CACHE"/andale32.exe # Display EULA - test x"$WINETRICKS_QUIET" = x"" || try $WINE "$WINETRICKS_CACHE"/arial32.exe $WINETRICKS_QUIET + test x"$W_UNATTENDED_SLASH_Q" = x"" || w_try $WINE "$W_CACHE"/arial32.exe $W_UNATTENDED_SLASH_Q - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/arial32.exe - try cp -f "$WINETRICKS_TMP"/Arial*.TTF "$winefontsdir" - register_font Arial.TTF "Arial (TrueType)" - register_font Arialbd.TTF "Arial Bold (TrueType)" - register_font Arialbi.TTF "Arial Bold Italic (TrueType)" - register_font Ariali.TTF "Arial Italic (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/arial32.exe + w_try cp -f "$W_TMP"/Arial*.TTF "$W_FONTSDIR_UNIX" + w_register_font Arial.TTF "Arial (TrueType)" + w_register_font Arialbd.TTF "Arial Bold (TrueType)" + w_register_font Arialbi.TTF "Arial Bold Italic (TrueType)" + w_register_font Ariali.TTF "Arial Italic (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/arialb32.exe - try cp -f "$WINETRICKS_TMP"/AriBlk.TTF "$winefontsdir" - register_font AriBlk.TTF "Arial Black (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/arialb32.exe + w_try cp -f "$W_TMP"/AriBlk.TTF "$W_FONTSDIR_UNIX" + w_register_font AriBlk.TTF "Arial Black (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/comic32.exe - try cp -f "$WINETRICKS_TMP"/Comic*.TTF "$winefontsdir" - register_font Comic.TTF "Comic Sans MS (TrueType)" - register_font Comicbd.TTF "Comic Sans MS Bold (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comic32.exe + w_try cp -f "$W_TMP"/Comic*.TTF "$W_FONTSDIR_UNIX" + w_register_font Comic.TTF "Comic Sans MS (TrueType)" + w_register_font Comicbd.TTF "Comic Sans MS Bold (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/courie32.exe - try cp -f "$WINETRICKS_TMP"/cour*.ttf "$winefontsdir" - register_font Cour.TTF "Courier New (TrueType)" - register_font CourBD.TTF "Courier New Bold (TrueType)" - register_font CourBI.TTF "Courier New Bold Italic (TrueType)" - register_font Couri.TTF "Courier New Italic (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/courie32.exe + w_try cp -f "$W_TMP"/cour*.ttf "$W_FONTSDIR_UNIX" + w_register_font Cour.TTF "Courier New (TrueType)" + w_register_font CourBD.TTF "Courier New Bold (TrueType)" + w_register_font CourBI.TTF "Courier New Bold Italic (TrueType)" + w_register_font Couri.TTF "Courier New Italic (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/georgi32.exe - try cp -f "$WINETRICKS_TMP"/Georgia*.TTF "$winefontsdir" - register_font Georgia.TTF "Georgia (TrueType)" - register_font Georgiab.TTF "Georgia Bold (TrueType)" - register_font Georgiaz.TTF "Georgia Bold Italic (TrueType)" - register_font Georgiai.TTF "Georgia Italic (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/georgi32.exe + w_try cp -f "$W_TMP"/Georgia*.TTF "$W_FONTSDIR_UNIX" + w_register_font Georgia.TTF "Georgia (TrueType)" + w_register_font Georgiab.TTF "Georgia Bold (TrueType)" + w_register_font Georgiaz.TTF "Georgia Bold Italic (TrueType)" + w_register_font Georgiai.TTF "Georgia Italic (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/impact32.exe - try cp -f "$WINETRICKS_TMP"/Impact.TTF "$winefontsdir" - register_font Impact.TTF "Impact (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/impact32.exe + w_try cp -f "$W_TMP"/Impact.TTF "$W_FONTSDIR_UNIX" + w_register_font Impact.TTF "Impact (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/times32.exe - try cp -f "$WINETRICKS_TMP"/Times*.TTF "$winefontsdir" - register_font Times.TTF "Times New Roman (TrueType)" - register_font Timesbd.TTF "Times New Roman Bold (TrueType)" - register_font Timesbi.TTF "Times New Roman Bold Italic (TrueType)" - register_font Timesi.TTF "Times New Roman Italic (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/times32.exe + w_try cp -f "$W_TMP"/Times*.TTF "$W_FONTSDIR_UNIX" + w_register_font Times.TTF "Times New Roman (TrueType)" + w_register_font Timesbd.TTF "Times New Roman Bold (TrueType)" + w_register_font Timesbi.TTF "Times New Roman Bold Italic (TrueType)" + w_register_font Timesi.TTF "Times New Roman Italic (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/trebuc32.exe - try cp -f "$WINETRICKS_TMP"/trebuc*.ttf "$winefontsdir" - register_font Trebuc.TTF "Trebucet MS (TrueType)" - register_font Trebucbd.TTF "Trebucet MS Bold (TrueType)" - register_font Trebucbi.TTF "Trebucet MS Bold Italic (TrueType)" - register_font Trebucit.TTF "Trebucet MS Italic (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/trebuc32.exe + w_try cp -f "$W_TMP"/trebuc*.ttf "$W_FONTSDIR_UNIX" + w_register_font Trebuc.TTF "Trebucet MS (TrueType)" + w_register_font Trebucbd.TTF "Trebucet MS Bold (TrueType)" + w_register_font Trebucbi.TTF "Trebucet MS Bold Italic (TrueType)" + w_register_font Trebucit.TTF "Trebucet MS Italic (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/verdan32.exe - try cp -f "$WINETRICKS_TMP"/Verdana*.TTF "$winefontsdir" - register_font Verdana.TTF "Verdana (TrueType)" - register_font Verdanab.TTF "Verdana Bold (TrueType)" - register_font Verdanaz.TTF "Verdana Bold Italic (TrueType)" - register_font Verdanai.TTF "Verdana Italic (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/verdan32.exe + w_try cp -f "$W_TMP"/Verdana*.TTF "$W_FONTSDIR_UNIX" + w_register_font Verdana.TTF "Verdana (TrueType)" + w_register_font Verdanab.TTF "Verdana Bold (TrueType)" + w_register_font Verdanaz.TTF "Verdana Bold Italic (TrueType)" + w_register_font Verdanai.TTF "Verdana Italic (TrueType)" - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/webdin32.exe - try cp -f "$WINETRICKS_TMP"/Webdings.TTF "$winefontsdir" - register_font Webdings.TTF "Webdings (TrueType)" + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/webdin32.exe + w_try cp -f "$W_TMP"/Webdings.TTF "$W_FONTSDIR_UNIX" + w_register_font Webdings.TTF "Webdings (TrueType)" } #---------------------------------------------------------------- -load_crypt32() { +load_crypt32() +{ # https://www.microsoft.com/downloads/en/details.aspx?FamilyID=3d733ddd-1182-4d46-87c1-3357ca3fed28&DisplayLang=en - download . http://download.microsoft.com/download/1/6/2/1629d13a-dc5e-4dc6-a2a4-a6784942b94e/Q823182_XPE_SP2_X86_ENU.EXE c3e0aa35ab5197ede0d495c0edc242cf0fade54a - try_cabextract -d "$SYSTEM32_DLLS" "$WINETRICKS_CACHE"/Q823182_XPE_SP2_X86_ENU.EXE -F rep/329115_crypt32.dll - override_dlls native crypt32 -} + w_download crypt32 http://download.microsoft.com/download/1/6/2/1629d13a-dc5e-4dc6-a2a4-a6784942b94e/Q823182_XPE_SP2_X86_ENU.EXE c3e0aa35ab5197ede0d495c0edc242cf0fade54a + w_try_cabextract -d "$W_SYSTEM32_DLLS" "$W_CACHE"/crypt32/Q823182_XPE_SP2_X86_ENU.EXE -F rep/329115_crypt32.dll + mv "$W_SYSTEM32_DLLS"/rep/329115_crypt32.dll "$W_SYSTEM32_DLLS"/crypt32.dll + w_override_dlls native crypt32 + w_try w_call msasn1 +} #---------------------------------------------------------------- -load_cygwin() { - # See http://bugs.winehq.org/show_bug.cgi?id=21206 - # Current is 1.7, but that doesn't install on wine, so jump through - # hoops to get 1.5 - #download cygwin http://cygwin.com/setup.exe fdc9379ed58231cddd25bb7b448426681a3dd3c3 - # this is some random verison of cygwin's setup from mid-2009, before the change that wine couldn't handle. - download cygwin http://kegel.com/cygwin/1.5/setup.exe 5cfb8ebe4f385b0fcffa04d22d607ec75ea05180 - mkdir -p "$DRIVE_C"/cygpkgs +load_cygwin() +{ + if w_workaround_wine_bug 21206 + then + # Wine can't handle current cygwin, so use some random verison of cygwin's setup from mid-2009 + w_download cygwin 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 cygwin http://cygwin.com/setup.exe aaa2552de78e14891937c1fde86032e811cf3c3a + _W_cygopts= + fi + + mkdir -p "$W_DRIVE_C"/cygpkgs # If you happen to have saved your cygpkgs directory, unpack it now - test -f "$WINETRICKS_CACHE/cygwin/cygpkgs.tgz" && (cd "$DRIVE_C"; gunzip -dc "$WINETRICKS_CACHE/cygwin/cygpkgs.tgz" | tar -xf -) - cp "$WINETRICKS_CACHE/cygwin/setup.exe" "$DRIVE_C"/cygpkgs - cd "$DRIVE_C"/cygpkgs - 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 :-( - try $WINE setup.exe -X - cd "$olddir" + test -f "$W_CACHE/cygwin/cygpkgs.tgz" && (cd "$W_DRIVE_C"; gunzip -dc "$W_CACHE/cygwin/cygpkgs.tgz" | tar -xf -) + 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 } #---------------------------------------------------------------- -load_d3dx9() { +load_d3dx9() +{ helper_directx_dl # Kinder, less invasive directx - only extract and override d3dx9_??.dll - try_cabextract -d "$WINETRICKS_TMP" -L -F '*d3dx9*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME - for x in `ls "$WINETRICKS_TMP"/*.cab` + w_try_cabextract -d "$W_TMP" -L -F '*d3dx9*x86*' "$W_CACHE"/$DIRECTX_NAME + for x in "$W_TMP"/*.cab do - try_cabextract -d "$SYSTEM32_DLLS" -L -F '*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F '*.dll' "$x" done # For now, not needed, but when Wine starts preferring our builtin dll over native it will be. - override_dlls native d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 - override_dlls native d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 - override_dlls native d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 + w_override_dlls native d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 + w_override_dlls native d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 + w_override_dlls native d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 } #---------------------------------------------------------------- -load_d3dx9_xx() { +load_d3dx9_xx() +{ dllname=d3dx9_$1 helper_directx_dl # Even kinder, less invasive directx - only extract and override d3dx9_xx.dll - try_cabextract -d "$WINETRICKS_TMP" -L -F "*$dllname*x86*" "$WINETRICKS_CACHE"/$DIRECTX_NAME - for x in `ls "$WINETRICKS_TMP"/*.cab` + w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x86*" "$W_CACHE"/$DIRECTX_NAME + for x in "$W_TMP"/*.cab do - try_cabextract -d "$SYSTEM32_DLLS" -L -F '*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "$dllname.dll" "$x" done - override_dlls native $dllname + w_override_dlls native $dllname } #---------------------------------------------------------------- -load_d3dx10() { +load_d3dx10() +{ helper_directx_dl # Kinder, less invasive directx10 - only extract and override d3dx10_??.dll - try_cabextract -d "$WINETRICKS_TMP" -L -F '*d3dx10*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME - for x in `ls "$WINETRICKS_TMP"/*.cab` + w_try_cabextract -d "$W_TMP" -L -F '*d3dx10*x86*' "$W_CACHE"/$DIRECTX_NAME + for x in "$W_TMP"/*.cab do - try_cabextract -d "$SYSTEM32_DLLS" -L -F '*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F '*.dll' "$x" done # For now, not needed, but when Wine starts preferring our builtin dll over native it will be. - override_dlls native d3dx10_33 d3dx10_34 d3dx10_35 d3dx10_36 d3dx10_37 - override_dlls native d3dx10_38 d3dx10_39 d3dx10_40 d3dx10_41 d3dx10_42 + 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 } #---------------------------------------------------------------- -load_d3dxof() { +load_d3dxof() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F 'dxnt.cab' "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'd3dxof.dll' "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F 'dxnt.cab' "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'd3dxof.dll' "$W_TMP/dxnt.cab" - override_dlls native d3dxof + w_override_dlls native d3dxof } #---------------------------------------------------------------- -load_devenum() { +load_devenum() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F 'dxnt.cab' "$WINETRICKS_CACHE/$DIRECTX_NAME" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'devenum.dll' "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F 'dxnt.cab' "$W_CACHE/$DIRECTX_NAME" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'devenum.dll' "$W_TMP/dxnt.cab" - try $WINE regsvr32 devenum.dll + w_try_regsvr devenum.dll - override_dlls native devenum + w_override_dlls native devenum } #---------------------------------------------------------------- -load_dinput8() { +load_dinput8() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F 'dxnt.cab' "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dinput8.dll' "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F 'dxnt.cab' "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dinput8.dll' "$W_TMP/dxnt.cab" - try $WINE regsvr32 dinput8 + w_try_regsvr dinput8 - override_dlls native dinput8 + w_override_dlls native dinput8 } #---------------------------------------------------------------- -load_dirac() { - download . $SOURCEFORGE/dirac/Dirac%20Directshow%20Filter/Diract%20Direct%20Show%20Filter%201.0.2/DiracDirectShowFilter-1.0.2.exe c912d30a8fa500c7841444559feb1f49301611c4 - try $WINE "$WINETRICKS_CACHE"/DiracDirectShowFilter-1.0.2.exe +load_dirac() +{ + w_download . $SOURCEFORGE/dirac/Dirac%20Directshow%20Filter/Diract%20Direct%20Show%20Filter%201.0.2/DiracDirectShowFilter-1.0.2.exe c912d30a8fa500c7841444559feb1f49301611c4 + w_try $WINE "$W_CACHE"/DiracDirectShowFilter-1.0.2.exe } #---------------------------------------------------------------- -load_directmusic() { +load_directmusic() +{ # Untested. Based off http://bugs.winehq.org/show_bug.cgi?id=4805 and http://bugs.winehq.org/show_bug.cgi?id=24911 helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'devenum.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmband.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmcompos.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmime.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmloader.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmscript.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmstyle.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmsynth.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmusic.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmusic32.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dswave.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'streamci.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'quartz.dll' "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'devenum.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmband.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmcompos.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmime.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmloader.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmscript.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmstyle.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmsynth.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmusic.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmusic32.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dswave.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'streamci.dll' "$W_TMP/dxnt.cab" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'quartz.dll' "$W_TMP/dxnt.cab" - try $WINE regsvr32 devenum.dll - try $WINE regsvr32 dmband.dll - try $WINE regsvr32 dmcompos.dll - try $WINE regsvr32 dmime.dll - try $WINE regsvr32 dmloader.dll - try $WINE regsvr32 dmscript.dll - try $WINE regsvr32 dmstyle.dll - try $WINE regsvr32 dmsynth.dll - try $WINE regsvr32 dmusic.dll - try $WINE regsvr32 dswave.dll - try $WINE regsvr32 quartz.dll + w_try_regsvr devenum.dll + w_try_regsvr dmband.dll + w_try_regsvr dmcompos.dll + w_try_regsvr dmime.dll + w_try_regsvr dmloader.dll + w_try_regsvr dmscript.dll + w_try_regsvr dmstyle.dll + w_try_regsvr dmsynth.dll + w_try_regsvr dmusic.dll + w_try_regsvr dswave.dll + w_try_regsvr quartz.dll - override_dlls native devenum dmband dmcompos dmime dmloader dmscript dmstyle dmsynth dmusic dmusic32 dswave streamci quartz + w_override_dlls native devenum dmband dmcompos dmime dmloader dmscript dmstyle dmsynth dmusic dmusic32 dswave streamci quartz } #---------------------------------------------------------------- -load_directplay() { +load_directplay() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dplaysvr.exe' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dplayx.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dpnet.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dpnhpast.dll' "$WINETRICKS_TMP/dxnt.cab" - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dpwsockx.dll' "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dplaysvr.exe' "$W_TMP/dxnt.cab" + 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 'dpwsockx.dll' "$W_TMP/dxnt.cab" - try $WINE regsvr32 dplayx.dll - try $WINE regsvr32 dpnet.dll - try $WINE regsvr32 dpnhpast.dll + w_try_regsvr dplayx.dll + w_try_regsvr dpnet.dll + w_try_regsvr dpnhpast.dll - override_dlls native dplayx dpnet dpnhpast dpwsockx + w_override_dlls native dplayx dpnet dpnhpast dpwsockx } #---------------------------------------------------------------- -load_directx9() { +load_directx9() +{ helper_directx_dl # Stefan suggested that, when installing, one should override as follows: @@ -1476,44 +1783,45 @@ load_directx9() { # See http://code.google.com/p/winezeug/issues/detail?id=71 if [ "`uname -s`" = "Darwin" ] then - set_winver winxp + w_set_winver winxp else - set_winver $DIRECTX_WINDOWS + w_set_winver $DIRECTX_WINDOWS fi WINEDLLOVERRIDES="wintrust=b,mscoree=,ddraw,d3d8,d3d9,dsound,dinput=n" \ - try $WINE "$WINETRICKS_CACHE"/$DIRECTX_NAME /t:"$WINETRICKS_TMP_WIN" $WINETRICKS_QUIET + w_try $WINE "$W_CACHE"/$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...? - override_dlls native d3dim d3drm d3dx8 d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 - override_dlls native d3dx9_30 d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 - override_dlls native d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dxof - override_dlls native dciman32 ddrawex devenum dmband dmcompos dmime dmloader dmscript dmstyle - override_dlls native dmsynth dmusic dmusic32 dnsapi dplay dplayx dpnaddr dpnet dpnhpast dpnlobby - override_dlls native dswave dxdiagn mscoree msdmo qcap quartz streamci - override_dlls native dxdiag.exe - override_dlls builtin d3d8 d3d9 dinput dinput8 dsound + w_override_dlls native d3dim d3drm d3dx8 d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 + w_override_dlls native d3dx9_30 d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 + w_override_dlls native d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dxof + w_override_dlls native dciman32 ddrawex devenum dmband dmcompos dmime dmloader dmscript dmstyle + w_override_dlls native dmsynth dmusic dmusic32 dnsapi dplay dplayx dpnaddr dpnet dpnhpast dpnlobby + w_override_dlls native dswave dxdiagn mscoree msdmo qcap quartz streamci + w_override_dlls native dxdiag.exe + w_override_dlls builtin d3d8 d3d9 dinput dinput8 dsound # Should be below, but fails on Wine when used silently. - #if [ $WINETRICKS_QUIET ] + #if [ $W_UNATTENDED_SLASH_Q ] #then - # try $WINE "$WINETRICKS_TMP_WIN"/DXSETUP.exe /silent + # w_try $WINE "$W_TMP_WIN"/DXSETUP.exe /silent #else - # try $WINE "$WINETRICKS_TMP_WIN"/DXSETUP.exe + # w_try $WINE "$W_TMP_WIN"/DXSETUP.exe #fi - try $WINE "$WINETRICKS_TMP_WIN"/DXSETUP.exe + w_try $WINE "$W_TMP_WIN"/DXSETUP.exe - unset_winver + w_unset_winver # reenable mscoree, or other installs may fail, see issue 25 - override_dlls builtin,native mscoree + w_override_dlls builtin,native mscoree } #---------------------------------------------------------------- -load_divx() { +load_divx() +{ # 6.8.2: 02203fdc4dddd13e789c39b22902837da31d2a1d ? # 6.8.2: e36bf87c1675d0cf9169839bc0cd8f866b9db026 as of 4 Jun 2008 as http://download.divx.com/divx/DivXInstaller.exe # 6.8.3: f4f4387ef89316aea440a29f3e24c1f1945e14af as of 20 Jun 2008 as http://download.divx.com/divx/abt/b1/DivXInstaller.exe @@ -1528,70 +1836,49 @@ load_divx() { # d59422969a72790e92b6795e24e332f91ffacf94 as of 26 May 2010 as http://download.divx.com/divx/DivXInstaller.exe # 3a2fe8ff2f9c5b5e527662af3badb42b460f6e62 as of 29 July 2010 as http://download.divx.com/divx/DivXInstaller.exe # c105e92e2c329e281bdecfc3eecafd99a29cc0d5 as of 16 Sep 2010 as http://download.divx.com/divx/DivXInstaller.exe - download divx-7 http://download.divx.com/divx/DivXInstaller.exe c105e92e2c329e281bdecfc3eecafd99a29cc0d5 + w_download divx-7 http://download.divx.com/divx/DivXInstaller.exe c105e92e2c329e281bdecfc3eecafd99a29cc0d5 - try $WINE "$WINETRICKS_CACHE"/divx-7/DivXInstaller + w_try $WINE "$W_CACHE"/divx-7/DivXInstaller } #---------------------------------------------------------------- -load_dcom98() { - # Install native dcom per http://wiki.winehq.org/NativeDcom - # to avoid http://bugs.winehq.org/show_bug.cgi?id=4228 - # See http://www.microsoft.com/downloads/details.aspx?familyid=08b1ac1b-7a11-43e8-b59d-0867f9bdda66 - download . http://download.microsoft.com/download/d/1/3/d13cd456-f0cf-4fb2-a17f-20afc79f8a51/DCOM98.EXE aff002bd03f17340b2bef2e6b9ea8e3798e9ccc1 - - # Pick win98 so we can install native dcom - set_winver win98 - - # Avoid "err:setupapi:SetupDefaultQueueCallbackA copy error 5 ..." - # Those messages are suspect, probably shouldn't be err's. - rm -f "$SYSTEM32_DLLS"/ole32.dll - rm -f "$SYSTEM32_DLLS"/olepro32.dll - rm -f "$SYSTEM32_DLLS"/oleaut32.dll - rm -f "$SYSTEM32_DLLS"/rpcrt4.dll - - # Normally only need to override ole32, but overriding advpack - # as well gets us the correct exit status. - WINEDLLOVERRIDES="ole32,advpack=n" try $WINE "$WINETRICKS_CACHE"/DCOM98.EXE $WINETRICKS_QUIET - - # Set native DCOM by default for all apps (ok, this might be overkill) - override_dlls native,builtin ole32 oleaut32 rpcrt4 - - # but not for a few builtin apps that don't like it - override_app_dlls explorer.exe builtin ole32 oleaut32 rpcrt4 - override_app_dlls iexplore.exe builtin ole32 oleaut32 rpcrt4 - override_app_dlls services.exe builtin ole32 oleaut32 rpcrt4 - override_app_dlls wineboot.exe builtin ole32 oleaut32 rpcrt4 - override_app_dlls winedevice.exe builtin ole32 oleaut32 rpcrt4 - - # and undo version win98 - unset_winver +load_dcom98() +{ + w_die "Installing dcom98 is no longer needed or useful with modern wine." } #---------------------------------------------------------------- -load_dmsynth() { +load_dmsynth() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dmsynth.dll' "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmsynth.dll' "$W_TMP/dxnt.cab" - try $WINE regsvr32 dmsynth.dll + w_try_regsvr dmsynth.dll - override_dlls native dmsynth + w_override_dlls native dmsynth } #---------------------------------------------------------------- -load_dotnet11() { - DOTNET_INSTALL_DIR="$WINDIR/Microsoft.NET/Framework/v1.1.4322" +load_dotnet11() +{ + DOTNET_INSTALL_DIR="$W_WINDIR_UNIX/Microsoft.NET/Framework/v1.1.4322" + + # Installer doesn't support Win64, and I can't find a x64 version on microsoft.com + if [ $W_ARCH = win64 ] + then + w_die "This package does not work on a 64-bit installation" + fi # Wine now provides some fake dll's here that conflict. # So check for a file that Wine should never provide, to determine if the install folder is Wine's fake one, or a real one. # If real, rm -rf it: - if test $PACKAGE != dotnet11 && test -f "$DOTNET_INSTALL_DIR/ndpsetup.ico" + if test $W_PACKAGE != dotnet11 && test -f "$DOTNET_INSTALL_DIR/ndpsetup.ico" then echo "prerequisite dotnet11 already installed, skipping" return @@ -1607,48 +1894,53 @@ load_dotnet11() { $WINE reg delete "HKLM\Software\Microsoft\.NETFramework\policy\v2.0" /f || true $WINE reg delete "HKLM\Software\Microsoft\.NETFramework" /v InstallRoot /f || true + # Builtin fusion isn't good enough and sometimes causes install to fail. .Net will install a good one anyway... + rm -f "$W_WINDIR_UNIX/Microsoft.NET/Framework/v1.1.4322/fusion.dll" + # http://www.microsoft.com/downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3 - download dotnet11 http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe 16a354a2207c4c8846b617cbc78f7b7c1856340e - if [ $WINETRICKS_QUIET ] + w_download dotnet11 http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe 16a354a2207c4c8846b617cbc78f7b7c1856340e + # Using builtin regsvcs.exe to workaround http://bugs.winehq.org/show_bug.cgi?id=25120 + if [ $W_UNATTENDED_SLASH_Q ] then - try $WINE "$WINETRICKS_CACHE"/dotnet11/dotnetfx.exe /q /C:"install /q" + WINEDLLOVERRIDES="regsvcs.exe=b" w_try $WINE "$W_CACHE"/dotnet11/dotnetfx.exe /q /C:"install /q" else - try $WINE "$WINETRICKS_CACHE"/dotnet11/dotnetfx.exe + WINEDLLOVERRIDES="regsvcs.exe=b" w_try $WINE "$W_CACHE"/dotnet11/dotnetfx.exe fi } #---------------------------------------------------------------- -load_dotnet11sdk() { +load_dotnet11sdk() +{ load_dotnet11 - warn "Installer hangs at end... not sure if it works fully." + w_warn "Installer hangs at end... not sure if it works fully." # http://www.microsoft.com/downloads/details.aspx?familyid=9B3A2CA6-3647-4070-9F41-A333C6B9181D - download dotnet11sdk http://download.microsoft.com/download/5/2/0/5202f918-306e-426d-9637-d7ee26fbe507/setup.exe 9509b14924bcaf84a7780de3f6ad7894004c3450 - cd "$WINETRICKS_CACHE"/dotnet11sdk - try $WINE setup.exe - cd "$olddir" + w_download dotnet11sdk http://download.microsoft.com/download/5/2/0/5202f918-306e-426d-9637-d7ee26fbe507/setup.exe 9509b14924bcaf84a7780de3f6ad7894004c3450 + cd "$W_CACHE"/dotnet11sdk + w_try $WINE setup.exe } #---------------------------------------------------------------- -load_dotnet20() { +load_dotnet20() +{ load_fontfix # If this is just a dependency check, don't re-install - if test $PACKAGE != dotnet20 && test -f "$WINDIR"/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll + if test $W_PACKAGE != dotnet20 && test -f "$W_WINDIR_UNIX"/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll then echo "prerequisite dotnet20 already installed, skipping" return fi - warn "Instaling .net 2.0 runtime. Can take several minutes. See http://wiki.winehq.org/MicrosoftDotNet for tips." + w_warn "Instaling .net 2.0 runtime. Can take several minutes. See http://wiki.winehq.org/MicrosoftDotNet for tips." # Recipe from http://bugs.winehq.org/show_bug.cgi?id=10467#c57 load_gecko - set_winver win2k + w_set_winver win2k # See http://kegel.com/wine/l_intl-sh.txt for how l_intl.nls was generated - download dotnet20 http://kegel.com/wine/l_intl.nls 0d2e3f025bcdf852b192c9408a361ac2659fa249 - try cp -f "$WINETRICKS_CACHE"/dotnet20/l_intl.nls "$SYSTEM32_DLLS" + w_download dotnet20 http://kegel.com/wine/l_intl.nls 0d2e3f025bcdf852b192c9408a361ac2659fa249 + w_try cp -f "$W_CACHE"/dotnet20/l_intl.nls "$W_SYSTEM32_DLLS" # Wine tries to help Mono, which breaks .Net. However, this key isn't in older Wine versions (notably 1.2), and deleting fails if the key isn't present. # Can't we all just play nice.. @@ -1656,14 +1948,14 @@ load_dotnet20() { $WINE reg delete "HKLM\Software\Microsoft\.NETFramework" /v InstallRoot /f || true # http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5 - download dotnet20 http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe a3625c59d7a2995fb60877b5f5324892a1693b2a - if [ "$WINETRICKS_QUIET"x = ""x ] + w_download dotnet20 http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe a3625c59d7a2995fb60877b5f5324892a1693b2a + if [ "$W_UNATTENDED_SLASH_Q"x = ""x ] then - try $WINE "$WINETRICKS_CACHE"/dotnet20/dotnetfx.exe + w_try $WINE "$W_CACHE"/dotnet20/dotnetfx.exe else - try $WINE "$WINETRICKS_CACHE"/dotnet20/dotnetfx.exe /q /c:"install.exe /q" + w_try $WINE "$W_CACHE"/dotnet20/dotnetfx.exe /q /c:"install.exe /q" fi - unset_winver + w_unset_winver # We can't stop installing dotnet20 in win2K mode until wine supports # reparse/junction points @@ -1671,20 +1963,24 @@ load_dotnet20() { # so for now just remove that file. # See http://bugs.winehq.org/show_bug.cgi?id=16577 # This affects Victoria 2 demo, see http://forum.paradoxplaza.com/forum/showthread.php?p=11523967 - rm -f "$SYSTEM32_DLLS"/msvc?80.dll + rm -f "$W_SYSTEM32_DLLS"/msvc?80.dll } #---------------------------------------------------------------- -load_dotnet20sp2() { - warn "Instaling .net 2.0 runtime. Can take several minutes. See http://wiki.winehq.org/MicrosoftDotNet for tips." +load_dotnet20sp2() +{ + if w_workaround_wine_bug 22521 + then + w_warn "dotnet20sp2 does not currently install properly in wine. Please use dotnet20 instead." + fi + + load_fontfix # Recipe from http://bugs.winehq.org/show_bug.cgi?id=10467#c57 - load_gecko - #set_winver win2k # See http://kegel.com/wine/l_intl-sh.txt for how l_intl.nls was generated - download dotnet20 http://kegel.com/wine/l_intl.nls 0d2e3f025bcdf852b192c9408a361ac2659fa249 - try cp -f "$WINETRICKS_CACHE"/dotnet20/l_intl.nls "$SYSTEM32_DLLS" + w_download dotnet20 http://kegel.com/wine/l_intl.nls 0d2e3f025bcdf852b192c9408a361ac2659fa249 + w_try cp -f "$W_CACHE"/dotnet20/l_intl.nls "$W_SYSTEM32_DLLS" # Wine tries to help Mono, which breaks .Net. However, this key isn't in older Wine versions (notably 1.2), and deleting fails if the key isn't present. # Can't we all just play nice.. @@ -1692,93 +1988,115 @@ load_dotnet20sp2() { $WINE reg delete "HKLM\Software\Microsoft\.NETFramework" /v InstallRoot /f || true # http://www.microsoft.com/downloads/details.aspx?familyid=5B2C0358-915B-4EB5-9B1D-10E506DA9D0F - download dotnet20 http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe 22d776d4d204863105a5db99e8b8888be23c61a7 - if [ "$WINETRICKS_QUIET"x = ""x ] + w_download dotnet20 http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe 22d776d4d204863105a5db99e8b8888be23c61a7 + if [ "$W_UNATTENDED_SLASH_Q"x = ""x ] then - try $WINE "$WINETRICKS_CACHE"/dotnet20/NetFx20SP2_x86.exe + w_try $WINE "$W_CACHE"/dotnet20/NetFx20SP2_x86.exe else - try $WINE "$WINETRICKS_CACHE"/dotnet20/NetFx20SP2_x86.exe /q /c:"install.exe /q" + w_try $WINE "$W_CACHE"/dotnet20/NetFx20SP2_x86.exe /q /c:"install.exe /q" fi - unset_winver } #---------------------------------------------------------------- -load_dotnet20sdk() { +load_dotnet20sdk() +{ load_dotnet20 # http://www.microsoft.com/downloads/details.aspx?familyid=9B3A2CA6-3647-4070-9F41-A333C6B9181D - download dotnet20sdk http://download.microsoft.com/download/c/4/b/c4b15d7d-6f37-4d5a-b9c6-8f07e7d46635/setup.exe 4e4b1072b5e65e855358e2028403f2dc52a62ab4 - cd "$WINETRICKS_CACHE"/dotnet20sdk - try $WINE setup.exe - cd "$olddir" + w_download dotnet20sdk http://download.microsoft.com/download/c/4/b/c4b15d7d-6f37-4d5a-b9c6-8f07e7d46635/setup.exe 4e4b1072b5e65e855358e2028403f2dc52a62ab4 + cd "$W_CACHE"/dotnet20sdk + w_try $WINE setup.exe } #---------------------------------------------------------------- -load_dotnet30() { +load_dotnet30() +{ # If this is just a dependency check, don't re-install - if test $PACKAGE != dotnet30 && test -d "$WINDIR/Microsoft.NET/Framework/v3.0/Microsoft .NET Framework 3.0" + if test $W_PACKAGE != dotnet30 && test -d "$W_WINDIR_UNIX/Microsoft.NET/Framework/v3.0/Microsoft .NET Framework 3.0" then echo "prerequisite dotnet30 already installed, skipping" return fi - warn "Instaling .net 3.0 runtime. Can take 15-30 minutes. See http://wiki.winehq.org/MicrosoftDotNet for tips." + w_warn "Instaling .net 3.0 runtime. Can take 15-30 minutes. See http://wiki.winehq.org/MicrosoftDotNet for tips." load_dotnet20 + w_set_winver winxp # http://msdn.microsoft.com/en-us/netframework/bb264589.aspx - download dotnet30 http://download.microsoft.com/download/3/F/0/3F0A922C-F239-4B9B-9CB0-DF53621C57D9/dotnetfx3.exe f3d2c3c7e4c0c35450cf6dab1f9f2e9e7ff50039 + w_download dotnet30 http://download.microsoft.com/download/3/F/0/3F0A922C-F239-4B9B-9CB0-DF53621C57D9/dotnetfx3.exe f3d2c3c7e4c0c35450cf6dab1f9f2e9e7ff50039 # AF's workaround to avoid long pause - LANGPACKS_BASE_PATH="${WINDIR}/SYSMSICache/Framework/v3.0" + LANGPACKS_BASE_PATH="${W_WINDIR_UNIX}/SYSMSICache/Framework/v3.0" test -d "${LANGPACKS_BASE_PATH}" || mkdir -p "${LANGPACKS_BASE_PATH}" for lang in ar cs da de el es fi fr he it jp ko nb nl pl pt-BR pt-PT ru \ sv tr zh-CHS zh-CHT do - ln -sf "${SYSTEM32_DLLS}/spupdsvc.exe" "${LANGPACKS_BASE_PATH}/dotnetfx3langpack${lang}.exe" + ln -sf "${W_SYSTEM32_DLLS}/spupdsvc.exe" "${LANGPACKS_BASE_PATH}/dotnetfx3langpack${lang}.exe" done - # Don't do this for dotnet30! See http://bugs.winehq.org/show_bug.cgi?id=24349#c4 - # Wine tries to help Mono, which breaks .Net. Can't we all just play nice... - #try $WINE reg delete "HKLM\Software\Microsoft\.NETFramework\policy\v2.0" /f - #try $WINE reg delete "HKLM\Software\Microsoft\.NETFramework" /v InstallRoot /f + #if w_workaround_wine_bug 25074 + #then + # # Wine tries to help Mono, which breaks .Net. Can't we all just play nice... + # rm "$W_WINDIR_UNIX/Microsoft.NET/Framework/v1.1.4322/fusion.dll" + # rm -rf "$W_WINDIR_UNIX/Microsoft.NET/Framework/v4.0.30319" +# ls -l "$W_WINDIR_UNIX"/Microsoft.NET/Framework +# fi - if [ "$WINETRICKS_QUIET"x = ""x ] + if [ "$W_UNATTENDED_SLASH_Q"x = ""x ] then - try $WINE "$WINETRICKS_CACHE"/dotnet30/dotnetfx3.exe + w_try $WINE "$W_CACHE"/dotnet30/dotnetfx3.exe else - try $WINE "$WINETRICKS_CACHE"/dotnet30/dotnetfx3.exe /q /c:"install.exe /q" + w_try $WINE "$W_CACHE"/dotnet30/dotnetfx3.exe /q /c:"install.exe /q" fi } #---------------------------------------------------------------- -load_dotnet35() { - warn "This does not work yet, see bug 20110" - +load_dotnet35() +{ # According to AF's recipe, installing dotnet30 first works around msi bugs load_dotnet30 # http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6 - download dotnet35 http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe + w_download dotnet35 http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe # See also http://blogs.msdn.com/astebner/archive/2008/07/17/8745415.aspx - cd "$DRIVE_C" - try_cabextract $WINETRICKS_UNIXQUIET "$WINETRICKS_CACHE"/dotnet35/dotnetfx35.exe + cd "$W_DRIVE_C" + w_try_cabextract "$W_CACHE"/dotnet35/dotnetfx35.exe cd wcu/dotNetFramework - try $WINE dotNetFx35setup.exe /lang:ENU + $WINE dotNetFx35setup.exe /lang:ENU + + # FIXME: Do this only if the above commmand failed (not sure how to detect it... look for some file, I s'pose) + if w_workaround_wine_bug 25060 + then + # Thanks to Louis for this partial recipe + #w_try $WINE reg add 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727' /v SP /t REG_DWORD /d 0001 + cat > "$W_TMP"/sp1.reg <<_EOF_ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727] +"SP"=dword:00000001 + +_EOF_ + w_try $WINE regedit "$W_TMP"/sp1.reg + cd "$W_DRIVE_C"/wcu/dotNetFramework/dotNetFX35/x86 + w_try_cabextract netfx35_x86.exe + w_try $WINE msiexec /i vs_setup.msi ADDEPLOY=1 + fi } #---------------------------------------------------------------- do_droid() { - download . ${DROID_URL}$1';hb=HEAD' $3 $1 - try cp -f "$WINETRICKS_CACHE"/$1 "$winefontsdir" - register_font $1 "$2" + w_download . ${DROID_URL}$1';hb=HEAD' $3 $1 + w_try cp -f "$W_CACHE"/$1 "$W_FONTSDIR_UNIX" + w_register_font $1 "$2" } -load_droid() { +load_droid() +{ # See http://en.wikipedia.org/wiki/Droid_(font) DROID_URL='http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/' @@ -1795,81 +2113,78 @@ load_droid() { #---------------------------------------------------------------- -load_dxsdk_nov2006() { - download . http://download.microsoft.com/download/9/e/5/9e5bfc66-a621-4e0d-8bfe-6688058c3f00/dxsdk_aug2006.exe +load_dxsdk_nov2006() +{ + w_download . http://download.microsoft.com/download/9/e/5/9e5bfc66-a621-4e0d-8bfe-6688058c3f00/dxsdk_aug2006.exe load_vcrun6 # for mfc42u echo "Be patient, the 'installing new services' step at the end takes about five minutes" # Yes, they really mixed cabextract and unzip into one package... - cd "$WINETRICKS_TMP" - try_cabextract "$WINETRICKS_CACHE"/dxsdk_aug2006.exe - try_unzip dxsdk.exe - try $WINE Setup.exe $WINETRICKS_QUIET + cd "$W_TMP" + w_try_cabextract "$W_CACHE"/dxsdk_aug2006.exe + w_try_unzip dxsdk.exe + w_try $WINE Setup.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_dsound() { +load_dsound() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'dsound.dll' "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dsound.dll' "$W_TMP/dxnt.cab" - try $WINE regsvr32 dsound.dll + w_try_regsvr dsound.dll - override_dlls native dsound + w_override_dlls native dsound } #---------------------------------------------------------------- -load_dsoundbug9612() { +load_dsoundbug9612() +{ echo "Enabling DirectSound workaround for bug #9612" - cat > "$WINETRICKS_TMP"/dsoundmaxshadow.reg <<_EOF_ + cat > "$W_TMP"/dsoundmaxshadow.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\DirectSound] "MaxShadowSize"="0" _EOF_ - try $WINE regedit "$WINETRICKS_TMP"/dsoundmaxshadow.reg + w_try $WINE regedit "$W_TMP"/dsoundmaxshadow.reg } #---------------------------------------------------------------- -load_eadm() { - download . http://akamai.cdn.ea.com/eamaster/u/f/eaonline/eadm/eadm-installer.exe 9f87ad485f82b7ef290613b94912dede79f5f48c - load_adobeair - try $WINE "$WINETRICKS_CACHE"/eadm-installer.exe $WINETRICKS_S -} - -#---------------------------------------------------------------- - -load_eufonts() { +load_eufonts() +{ # https://www.microsoft.com/downloads/details.aspx?FamilyID=0ec6f335-c3de-44c5-a13d-a1e7cea5ddea&displaylang=en - download . http://download.microsoft.com/download/a/1/8/a180e21e-9c2b-4b54-9c32-bf7fd7429970/EUupdate.EXE 9b076c40cb63aa0d8512aa8e610ba11d3466e441 - try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/EUupdate.EXE - try cp -f "$WINETRICKS_TMP"/*.ttf "$winefontsdir" + w_download . http://download.microsoft.com/download/a/1/8/a180e21e-9c2b-4b54-9c32-bf7fd7429970/EUupdate.EXE 9b076c40cb63aa0d8512aa8e610ba11d3466e441 + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/EUupdate.EXE + w_try cp -f "$W_TMP"/*.ttf "$W_FONTSDIR_UNIX" - register_font ArialBI.ttf "Arial Bold Italic (TrueType)" - register_font ArialI.ttf "Arial Italic (TrueType)" - register_font Arial.ttf "Arial (TrueType)" - register_font TimesBd.ttf "Times New Roman Bold (TrueType)" - register_font TimesBI.ttf "Times New Roman Bold Italic (TrueType)" - register_font TimesI.ttf "Times New Roman Italic (TrueType)" - register_font Times.ttf "Times New Roman (TrueType)" - register_font trebucbd.ttf "Trebuchet Bold (TrueType)" - register_font trebucbi.ttf "Trebuchet Bold Italic (TrueType)" - register_font trebucit.ttf "Trebuchet Italic (TrueType)" - register_font trebuc.ttf "Trebuchet (TrueType)" - register_font Verdanab.ttf "Verdana Bold (TrueType)" - register_font Verdanai.ttf "Verdana Italian (TrueType)" - register_font Verdana.ttf "Verdana (TrueType)" - register_font Verdanaz.ttf "Verdana Bold Italic (TrueType)" + w_register_font ArialBI.ttf "Arial Bold Italic (TrueType)" + w_register_font ArialI.ttf "Arial Italic (TrueType)" + w_register_font Arial.ttf "Arial (TrueType)" + w_register_font TimesBd.ttf "Times New Roman Bold (TrueType)" + w_register_font TimesBI.ttf "Times New Roman Bold Italic (TrueType)" + w_register_font TimesI.ttf "Times New Roman Italic (TrueType)" + w_register_font Times.ttf "Times New Roman (TrueType)" + w_register_font trebucbd.ttf "Trebuchet Bold (TrueType)" + w_register_font trebucbi.ttf "Trebuchet Bold Italic (TrueType)" + w_register_font trebucit.ttf "Trebuchet Italic (TrueType)" + w_register_font trebuc.ttf "Trebuchet (TrueType)" + w_register_font Verdanab.ttf "Verdana Bold (TrueType)" + w_register_font Verdanai.ttf "Verdana Italian (TrueType)" + w_register_font Verdana.ttf "Verdana (TrueType)" + w_register_font Verdanaz.ttf "Verdana Bold Italic (TrueType)" } #---------------------------------------------------------------- -load_fakechinese() { +load_fakechinese() +{ load_wenquanyi # Loads Wenquanyi fonts and sets aliases for Microsoft Chinese fonts # Aliases to set: @@ -1877,7 +2192,7 @@ load_fakechinese() { # Microsoft YaHei --> WenQuanYi Micro Hei # SimHei --> WenQuanYi Micro Hei - cat > "$WINETRICKS_TMP"/faketraditionalchinese.reg <<_EOF_ + cat > "$W_TMP"/faketraditionalchinese.reg <<_EOF_ REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes] @@ -1887,12 +2202,13 @@ REGEDIT4 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\faketraditionalchinese.reg + w_try_regedit "$W_TMP_WIN"\\faketraditionalchinese.reg } #---------------------------------------------------------------- -load_fakejapanese() { +load_fakejapanese() +{ load_takao # Loads Takao fonts and sets aliases for MS Gothic and MS PGothic, mainly for Japanese language support # Aliases to set: @@ -1902,7 +2218,7 @@ load_fakejapanese() { # MS PMincho --> TakaoPMincho # These aliases were taken from what was listed in Ubuntu's fontconfig definitions. - cat > "$WINETRICKS_TMP"/fakejapanese.reg <<_EOF_ + cat > "$W_TMP"/fakejapanese.reg <<_EOF_ REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes] @@ -1913,12 +2229,13 @@ REGEDIT4 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\fakejapanese.reg + w_try_regedit "$W_TMP_WIN"\\fakejapanese.reg } #---------------------------------------------------------------- -load_fakekorean() { +load_fakekorean() +{ load_baekmuk # Loads Baekmuk fonts and sets as an alias for Gulim, Dotum, and Batang for Korean language support # Aliases to set: @@ -1929,7 +2246,7 @@ load_fakekorean() { # Dotum --> Baekmuk Dotum # DotumChe --> Baekmuk Dotum - cat > "$WINETRICKS_TMP"/fakekorean.reg <<_EOF_ + cat > "$W_TMP"/fakekorean.reg <<_EOF_ REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes] @@ -1942,34 +2259,37 @@ REGEDIT4 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\fakekorean.reg + w_try_regedit "$W_TMP_WIN"\\fakekorean.reg } #---------------------------------------------------------------- -load_firefox() { - download . "http://releases.mozilla.org//pub/mozilla.org/firefox/releases/3.6.12/win32/en-US/Firefox%20Setup%203.6.12.exe" c10562f70de6e0dc656a949931ef9f479623fcd6 "Firefox Setup 3.6.12.exe" - if [ "$WINETRICKS_QUIET"x = ""x ] +load_firefox() +{ + w_download . "http://releases.mozilla.org//pub/mozilla.org/firefox/releases/3.6.12/win32/en-US/Firefox%20Setup%203.6.12.exe" c10562f70de6e0dc656a949931ef9f479623fcd6 "Firefox Setup 3.6.12.exe" + if [ "$W_UNATTENDED_SLASH_Q"x = ""x ] then - try $WINE "$WINETRICKS_CACHE"/"Firefox Setup 3.6.12.exe" + w_try $WINE "$W_CACHE"/"Firefox Setup 3.6.12.exe" else - try $WINE "$WINETRICKS_CACHE"/"Firefox Setup 3.6.12.exe" -ms + w_try $WINE "$W_CACHE"/"Firefox Setup 3.6.12.exe" -ms fi } #---------------------------------------------------------------- -load_ffdshow() { +load_ffdshow() +{ # ffdshow - download . $SOURCEFORGE/ffdshow-tryout/ffdshow_beta5_rev2033_20080705_clsid.exe 6da6837e2f400923ff5294a6591a88a3eee5ee40 - try $WINE "$WINETRICKS_CACHE"/ffdshow_beta5_rev2033_20080705_clsid.exe $WINETRICKS_SILENT + w_download . $SOURCEFORGE/ffdshow-tryout/ffdshow_beta5_rev2033_20080705_clsid.exe 6da6837e2f400923ff5294a6591a88a3eee5ee40 + w_try $WINE "$W_CACHE"/ffdshow_beta5_rev2033_20080705_clsid.exe $W_UNATTENDED_SLASH_SILENT } #---------------------------------------------------------------- -load_flash() { +load_flash() +{ # If this is just a dependency check, don't re-install - if test $PACKAGE != flash && test -f "$SYSTEM32_DLLS"/Macromed/Flash/flashplayer.xpt + if test $W_PACKAGE != flash && test -f "$W_SYSTEM32_DLLS"/Macromed/Flash/flashplayer.xpt then echo "prerequisite flash already installed, skipping" return @@ -1993,12 +2313,14 @@ load_flash() { # 2010-08-11: sha1sum bd3a91fe450a800dbbc8d070159dc0a599043652 # 2010-10-21: sha1sum c8bc6b4ead9538aeba24c9a5908dc1912ad443c7 # 2010-11-04: sha1sum 58412bcc83e349be50cafe0e1c46e19088620866 -download . http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_ax.exe 58412bcc83e349be50cafe0e1c46e19088620866 - if [ $WINETRICKS_QUIET ] + w_download flash http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_ax.exe 58412bcc83e349be50cafe0e1c46e19088620866 + cd "$W_CACHE"/flash + + if [ $W_UNATTENDED_SLASH_Q ] then - try $WINE "$WINETRICKS_CACHE"/install_flash_player_ax.exe /install + w_try $WINE install_flash_player_ax.exe /install else - try $WINE "$WINETRICKS_CACHE"/install_flash_player_ax.exe + w_try $WINE install_flash_player_ax.exe fi # Mozilla / Firefox plugin @@ -2013,18 +2335,19 @@ download . http://fpdownload.macromedia.com/get/flashplayer/current/install_flas # 2010-08-11: sha1sum cb011ab4c74d222c8ddb48171a8aa3b5380f8d5a # 2010-10-21: sha1sum 26985ca9f8f9c9926d807b591a28cdf2cc35a76a # 2010-11-04: sha1sum 09f2491c5bec7286155234f4e6e1af70c7cef78f -download . http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player.exe 09f2491c5bec7286155234f4e6e1af70c7cef78f - if [ $WINETRICKS_QUIET ] + w_download flash http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player.exe 09f2491c5bec7286155234f4e6e1af70c7cef78f + if [ $W_UNATTENDED_SLASH_Q ] then - try $WINE "$WINETRICKS_CACHE"/install_flash_player.exe /install + w_try $WINE install_flash_player.exe /install else - try $WINE "$WINETRICKS_CACHE"/install_flash_player.exe + w_try $WINE install_flash_player.exe fi } #---------------------------------------------------------------- -load_fontfix() { +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 @@ -2034,10 +2357,10 @@ load_fontfix() { # FIXME: do all affected versions of the font have same sha1sum as Gutsy? Seems unlikely. if [ "$gotsum"x = "96e1121f89953e5169d3e2e7811569148f573985"x ] then - download . https://launchpadlibrarian.net/1499628/ttf-arphic-ukai_0.1.20060108.orig.tar.gz 92e577602d71454a108968e79ab667451f3602a2 - cd "$WINETRICKS_TMP/" - gunzip -dc "$WINETRICKS_CACHE/ttf-arphic-ukai_0.1.20060108.orig.tar.gz" | tar -xf - - try mv ttf-arphic-ukai-0.1.20060108/*.ttf "$winefontsdir" + w_download . https://launchpadlibrarian.net/1499628/ttf-arphic-ukai_0.1.20060108.orig.tar.gz 92e577602d71454a108968e79ab667451f3602a2 + cd "$W_TMP/" + gunzip -dc "$W_CACHE/ttf-arphic-ukai_0.1.20060108.orig.tar.gz" | tar -xf - + w_try mv ttf-arphic-ukai-0.1.20060108/*.ttf "$W_FONTSDIR_UNIX" cd "$olddir" fi fi @@ -2047,10 +2370,10 @@ load_fontfix() { gotsum=`$SHA1SUM < /usr/share/fonts/truetype/arphic/uming.ttf | sed 's/ .*//'` if [ "$gotsum"x = "2a4f4a69e343c21c24d044b2cb19fd4f0decc82c"x ] then - download . https://launchpadlibrarian.net/1564410/ttf-arphic-uming_0.1.20060108.orig.tar.gz 1439cdd731906e9e5311f320c2cb33262b24ef91 - cd "$WINETRICKS_TMP/" - gunzip -dc "$WINETRICKS_CACHE/ttf-arphic-uming_0.1.20060108.orig.tar.gz" | tar -xf - - try mv ttf-arphic-uming-0.1.20060108/*.ttf "$winefontsdir" + w_download . https://launchpadlibrarian.net/1564410/ttf-arphic-uming_0.1.20060108.orig.tar.gz 1439cdd731906e9e5311f320c2cb33262b24ef91 + cd "$W_TMP/" + gunzip -dc "$W_CACHE/ttf-arphic-uming_0.1.20060108.orig.tar.gz" | tar -xf - + w_try mv ttf-arphic-uming-0.1.20060108/*.ttf "$W_FONTSDIR_UNIX" cd "$olddir" fi fi @@ -2062,20 +2385,22 @@ load_fontfix() { # 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" then - 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." + 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 } #---------------------------------------------------------------- -load_forcemono() { +load_forcemono() +{ # For wine/mono debugging -override_dlls native mscoree.dll -override_dlls disabled mscorsvw.exe +w_override_dlls native mscoree.dll +w_override_dlls disabled mscorsvw.exe } #---------------------------------------------------------------- -load_fs_disable() { - cat > "$WINETRICKS_TMP"/fs_disable.reg <<_EOF_ +load_fs_disable() +{ + cat > "$W_TMP"/fs_disable.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Control Panel\Desktop] @@ -2085,11 +2410,12 @@ REGEDIT4 "FontSmoothingType"=dword:00000000 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\fs_disable.reg + w_try_regedit "$W_TMP_WIN"\\fs_disable.reg } #---------------------------------------------------------------- -load_fs_grayscale() { - cat > "$WINETRICKS_TMP"/fs_grayscale.reg <<_EOF_ +load_fs_grayscale() +{ + cat > "$W_TMP"/fs_grayscale.reg <<_EOF_ REGEDIT4 @@ -2100,11 +2426,12 @@ REGEDIT4 "FontSmoothingType"=dword:00000001 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\fs_grayscale.reg + w_try_regedit "$W_TMP_WIN"\\fs_grayscale.reg } #---------------------------------------------------------------- -load_fs_bgr() { - cat > "$WINETRICKS_TMP"/fs_bgr.reg <<_EOF_ +load_fs_bgr() +{ + cat > "$W_TMP"/fs_bgr.reg <<_EOF_ REGEDIT4 @@ -2115,11 +2442,12 @@ REGEDIT4 "FontSmoothingType"=dword:00000002 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\fs_bgr.reg + w_try_regedit "$W_TMP_WIN"\\fs_bgr.reg } #---------------------------------------------------------------- -load_fs_rgb() { - cat > "$WINETRICKS_TMP"/fs_rgb.reg <<_EOF_ +load_fs_rgb() +{ + cat > "$W_TMP"/fs_rgb.reg <<_EOF_ REGEDIT4 @@ -2130,50 +2458,56 @@ REGEDIT4 "FontSmoothingType"=dword:00000002 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\fs_rgb.reg + w_try_regedit "$W_TMP_WIN"\\fs_rgb.reg } #---------------------------------------------------------------- -load_gecko() { +load_gecko() +{ + w_skip_windows gecko && return + # Load the HTML rendering Engine (Gecko) # FIXME: shouldn't this code be in some script installed # as part of Wine instead of in winetricks? # (e.g. we hardcode gecko's url here, but it's normally - # only hardcoded in wine.inf, and fetched from the registry thereafter, + # only hardcoded in wine.inf, and fetched from the regisw_try thereafter, # so we're adding a maintenance burden here.) case `$WINE --version` in wine-0*|wine-1.0*|wine-1.1|wine-1.1.?|wine-1.1.11) - GECKO_DIR="$WINDIR" + GECKO_DIR="$W_WINDIR_UNIX" GECKO_VERSION=0.1.0 GECKO_SHA1SUM=c16f1072dc6b0ced20935662138dcf019a38cd56 ;; wine-1.1.1[234]*) - GECKO_DIR="$WINDIR" + GECKO_DIR="$W_WINDIR_UNIX" GECKO_VERSION=0.9.0 GECKO_SHA1SUM=5cf410ff7fdd3f9d625f481f9d409968728d3d09 ;; wine-1.1.1[56789]*|wine-1.1.2[0123456]*) - GECKO_DIR="$WINDIR" + GECKO_DIR="$W_WINDIR_UNIX" GECKO_VERSION=0.9.1 GECKO_SHA1SUM=9a49fc691740596517e381b47096a4bdf19a87d8 ;; wine-1.1.2[789]*|wine-1.1.[34]*|wine-1.2*|wine-1.3|wine-1.3.[01]|wine-1.3.[0]-*) - GECKO_DIR="$SYSTEM32_DLLS" + GECKO_DIR="$W_SYSTEM32_DLLS" GECKO_VERSION=1.0.0 GECKO_ARCH=-x86 GECKO_SHA1SUM=afa22c52bca4ca77dcb9edb3c9936eb23793de01 ;; *) - GECKO_DIR="$SYSTEM32_DLLS" + GECKO_DIR="$W_SYSTEM32_DLLS" GECKO_VERSION=1.1.0 GECKO_ARCH=-x86 GECKO_SHA1SUM=1b6c637207b6f032ae8a52841db9659433482714 + GECKO64_DIR="$SYSTEM64_DLLS" + GECKO64_ARCH=-x86_64 + GECKO64_SHA1SUM=55b4b60cd2a48631d6236fb411c3a94d806d9906 ;; esac # If this is just a dependency check, don't re-install - if test $PACKAGE != ie6 && test -f "$GECKO_DIR/gecko/$GECKO_VERSION/wine_gecko/nspr4.dll" + if test $W_PACKAGE != ie6 && test -f "$GECKO_DIR/gecko/$GECKO_VERSION/wine_gecko/nspr4.dll" then echo "prerequisite gecko already installed, skipping" return @@ -2196,104 +2530,136 @@ load_gecko() { if test -z "$GECKOPATH" then # FIXME: busted if using curl! - download . "http://downloads.sourceforge.net/wine/wine_gecko-$GECKO_VERSION$GECKO_ARCH.cab" \ + w_download . "http://downloads.sourceforge.net/wine/wine_gecko-$GECKO_VERSION$GECKO_ARCH.cab" \ $GECKO_SHA1SUM wine_gecko-$GECKO_VERSION$GECKO_ARCH.cab - GECKOPATH="$WINETRICKS_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH.cab + GECKOPATH="$W_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH.cab fi - cat > "$WINETRICKS_TMP"/geckopath.reg <<_EOF_ + cat > "$W_TMP"/geckopath.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\\Software\\Wine\\MSHTML\\$GECKO_VERSION] _EOF_ - printf '"GeckoPath"="' >>"$WINETRICKS_TMP"/geckopath.reg + printf '"GeckoPath"="' >>"$W_TMP"/geckopath.reg case $GECKO_VERSION in 0.*) printf 'c:\\windows\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' | - sed "s/\\\\/\\\\\\\\/g" >> "$WINETRICKS_TMP"/geckopath.reg + sed "s/\\\\/\\\\\\\\/g" >> "$W_TMP"/geckopath.reg ;; 1.*) printf 'c:\\windows\\system32\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' | - sed "s/\\\\/\\\\\\\\/g" >> "$WINETRICKS_TMP"/geckopath.reg + sed "s/\\\\/\\\\\\\\/g" >> "$W_TMP"/geckopath.reg ;; esac # extract the files mkdir -p "$GECKO_DIR/gecko/$GECKO_VERSION" cd "$GECKO_DIR/gecko/$GECKO_VERSION" - try_cabextract $WINETRICKS_UNIXQUIET "$GECKOPATH" + w_try_cabextract "$GECKOPATH" cd "$olddir" + + # Repeat for 64-bit. You don't need to set registry, though.. + if [ $W_ARCH = win64 ] + then + GECKOCAB="wine_gecko-$GECKO_VERSION$GECKO64_ARCH.cab" + for candidate in "$WINEDIR/../share/wine/gecko/$GECKOCAB" "$WINEDIR/../gecko/$GECKOCAB" + do + gotsum=`$SHA1SUM 2>/dev/null < "$candidate" | sed 's/ .*//'` + if [ "$gotsum"x = "$GECKO64_SHA1SUM"x ] + then + GECKOPATH="$candidate" + break + fi + done + + if test -z "$GECKOPATH" + then + # FIXME: busted if using curl! + w_download . "http://downloads.sourceforge.net/wine/wine_gecko-$GECKO_VERSION$GECKO64_ARCH.cab" \ + $GECKO64_SHA1SUM wine_gecko-$GECKO_VERSION$GECKO64_ARCH.cab + GECKOPATH="$W_CACHE"/wine_gecko-$GECKO_VERSION$GECKO64_ARCH.cab + fi + + mkdir -p "$GECKO64_DIR/gecko/$GECKO_VERSION" + cd "$GECKO64_DIR/gecko/$GECKO_VERSION" + w_try_cabextract "$GECKOPATH" + cd "$olddir" + fi # set install-path - try_regedit "$WINETRICKS_TMP_WIN"\\geckopath.reg + w_try_regedit "$W_TMP_WIN"\\geckopath.reg # register the dll, since it was disabled before - try $WINE regsvr32 mshtml + w_try_regsvr mshtml } #---------------------------------------------------------------- -load_gecko_dbg() { +load_gecko_dbg() +{ # Load the HTML rendering Engine (Gecko), with debugging symbols # FIXME: shouldn't this code be in some script installed # as part of Wine instead of in winetricks? # (e.g. we hardcode gecko's url here, but it's normally - # only hardcoded in wine.inf, and fetched from the registry thereafter, + # only hardcoded in wine.inf, and fetched from the regisw_try thereafter, # so we're adding a maintenance burden here.) case `$WINE --version` in wine-0*|wine-1.0*|wine-1.1|wine-1.1.?|wine-1.1.11) - die "There isn't a gecko debug build for your Wine version." + w_die "There isn't a gecko debug build for your Wine version." ;; wine-1.1.1[234]*) - GECKO_DIR="$WINDIR" + GECKO_DIR="$W_WINDIR_UNIX" GECKO_VERSION=0.9.0 GECKO_EXTENSION=cab GECKO_SHA1SUM=23e354a82d7b7e61a6abe0384cc44669fbf92f86 ;; wine-1.1.1[56789]*|wine-1.1.2[0123456]*) - GECKO_DIR="$WINDIR" + GECKO_DIR="$W_WINDIR_UNIX" GECKO_VERSION=0.9.1 GECKO_EXTENSION=cab GECKO_SHA1SUM=a9b58d3330f8c78524fe4683f348302bfce96ff4 ;; wine-1.1.2[789]*|wine-1.1.[34]*|wine-1.2*|wine-1.3|wine-1.3.[01]|wine-1.3.[01]-*) - GECKO_DIR="$SYSTEM32_DLLS" + GECKO_DIR="$W_SYSTEM32_DLLS" GECKO_VERSION=1.0.0 GECKO_ARCH=-x86 GECKO_EXTENSION=cab GECKO_SHA1SUM=2de16b443826295f646cd5d54313ca421fd71210 ;; *) - GECKO_DIR="$SYSTEM32_DLLS" + GECKO_DIR="$W_SYSTEM32_DLLS" GECKO_VERSION=1.1.0 GECKO_ARCH=-x86 GECKO_EXTENSION=tar.bz2 GECKO_SHA1SUM=647a488b306f3865527ce03df3c16c06afce1677 + GECKO64_DIR="$SYSTEM64_DLLS" + GECKO64_ARCH=-x86_64 + GECKO64_SHA1SUM=d6b286e0066f3d08f0a3510bd7b506d7c5b3991d ;; esac - if test ! -f "$WINETRICKS_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.$GECKO_EXTENSION + if test ! -f "$W_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.$GECKO_EXTENSION then # FIXME: busted if using curl! - download . "http://downloads.sourceforge.net/wine/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.$GECKO_EXTENSION" $GECKO_SHA1SUM wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.$GECKO_EXTENSION + w_download . "http://downloads.sourceforge.net/wine/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.$GECKO_EXTENSION" $GECKO_SHA1SUM wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.$GECKO_EXTENSION fi - cat > "$WINETRICKS_TMP"/geckopath.reg <<_EOF_ + cat > "$W_TMP"/geckopath.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\\Software\\Wine\\MSHTML\\$GECKO_VERSION] _EOF_ - printf '"GeckoPath"="' >>"$WINETRICKS_TMP"/geckopath.reg + printf '"GeckoPath"="' >>"$W_TMP"/geckopath.reg case $GECKO_VERSION in 0.*) printf 'c:\\windows\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' | - sed "s/\\\\/\\\\\\\\/g" >> "$WINETRICKS_TMP"/geckopath.reg + sed "s/\\\\/\\\\\\\\/g" >> "$W_TMP"/geckopath.reg ;; 1.*) printf 'c:\\windows\\system32\\gecko\\'$GECKO_VERSION'\\wine_gecko\\"' | - sed "s/\\\\/\\\\\\\\/g" >> "$WINETRICKS_TMP"/geckopath.reg + sed "s/\\\\/\\\\\\\\/g" >> "$W_TMP"/geckopath.reg ;; esac @@ -2302,103 +2668,130 @@ _EOF_ cd "$GECKO_DIR/gecko/$GECKO_VERSION" if [ "$GECKO_EXTENSION" = "cab" ] then - try_cabextract $WINETRICKS_UNIXQUIET "$WINETRICKS_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.cab + w_try_cabextract "$W_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.cab elif [ "$GECKO_EXTENSION" = "tar.bz2" ] then - bunzip2 -cd "$WINETRICKS_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.tar.bz2 | tar -xf - + bunzip2 -cd "$W_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.tar.bz2 | tar -xf - if test $? -ne 0 then - die Gecko debug redistributable extraction failed + w_die Gecko debug redistributable extraction failed fi else - die unrecognized Gecko debug redistributable extension + w_die unrecognized Gecko debug redistributable extension fi cd "$olddir" + + # Repeat for 64-bit. You don't need to set registry, though.. + if [ $W_ARCH = win64 ] + then + if test ! -f "$W_CACHE"/wine_gecko-$GECKO_VERSION$GECKO64_ARCH-dbg.$GECKO_EXTENSION + then + # FIXME: busted if using curl! + w_download . "http://downloads.sourceforge.net/wine/wine_gecko-$GECKO_VERSION$GECKO64_ARCH-dbg.$GECKO_EXTENSION" $GECKO64_SHA1SUM wine_gecko-$GECKO_VERSION$GECKO64_ARCH-dbg.$GECKO_EXTENSION + fi + + GECKOCAB="wine_gecko-$GECKO_VERSION$GECKO64_ARCH.cab" + for candidate in "$WINEDIR/../share/wine/gecko/$GECKOCAB" "$WINEDIR/../gecko/$GECKOCAB" + do + gotsum=`$SHA1SUM 2>/dev/null < "$candidate" | sed 's/ .*//'` + if [ "$gotsum"x = "$GECKO64_SHA1SUM"x ] + then + GECKOPATH="$candidate" + break + fi + done + + mkdir -p "$GECKO64_DIR/gecko/$GECKO_VERSION" + cd "$GECKO64_DIR/gecko/$GECKO_VERSION" + bunzip2 -cd "$W_CACHE"/wine_gecko-$GECKO_VERSION$GECKO64_ARCH-dbg.tar.bz2 | tar -xf - + if test $? -ne 0 + then + w_die Gecko debug redistributable extraction failed + fi + fi # set install-path - try_regedit "$WINETRICKS_TMP_WIN"\\geckopath.reg + w_try_regedit "$W_TMP_WIN"\\geckopath.reg # register the dll, since it was disabled before - try $WINE regsvr32 mshtml + w_try_regsvr mshtml } #---------------------------------------------------------------- -load_gdiplus() { +load_gdiplus() +{ # http://www.microsoft.com/downloads/details.aspx?familyid=6A63AB9C-DF12-4D41-933C-BE590FEAA05A&displaylang=en - download . http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe b9a84bc3de92863bba1f5eb1d598446567fbc646 - # Used to use $WINETRICKS_QUIET, but that mean that in non-q + w_download gdiplus http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe b9a84bc3de92863bba1f5eb1d598446567fbc646 + # Used to use $W_UNATTENDED_SLASH_Q, but that mean that in non-q # mode, a mysterious "Extraction Complete" dialog was all user saw. # Showing that isn't useful, so always use /q. - try $WINE "$WINETRICKS_CACHE"/WindowsXP-KB975337-x86-ENU.exe /extract:$WINETRICKS_TMP_WIN /q + w_try $WINE "$W_CACHE"/gdiplus/WindowsXP-KB975337-x86-ENU.exe /extract:$W_TMP_WIN /q # And then make it globally available. - try cp "$WINETRICKS_TMP/asms/10/msft/windows/gdiplus/gdiplus.dll" "$SYSTEM32_DLLS" + w_try cp "$W_TMP/asms/10/msft/windows/gdiplus/gdiplus.dll" "$W_SYSTEM32_DLLS" # For some reason, native,builtin isn't good enough...? - override_dlls native gdiplus + w_override_dlls native gdiplus } #---------------------------------------------------------------- -load_gfw() { +load_gfw() +{ # http://www.microsoft.com/games/en-us/live/pages/livejoin.aspx - download . http://download.microsoft.com/download/5/5/8/55846E20-4A46-4EF8-B272-7F988BC9090A/gfwlivesetupmin.exe 6f9e0ba052c68c8b51bb0e3ce6024d0e1c7b20b2 + w_download . http://download.microsoft.com/download/5/5/8/55846E20-4A46-4EF8-B272-7F988BC9090A/gfwlivesetupmin.exe 6f9e0ba052c68c8b51bb0e3ce6024d0e1c7b20b2 # FIXME: Depends on .Net 20, but is it really needed? For now, skip it. - try $WINE "$WINETRICKS_CACHE"/gfwlivesetupmin.exe /nodotnet $WINETRICKS_QUIET - - # Now get msasn1.dll, which xlive.dll depends on: - # http://www.microsoft.com/downloads/details.aspx?FamilyID=1001AAF1-749F-49F4-8010-297BD6CA33A0&displaylang=en - # FIXME: This is a huge download for a single dll. - download . http://download.microsoft.com/download/E/6/A/E6A04295-D2A8-40D0-A0C5-241BFECD095E/W2KSP4_EN.EXE fadea6d94a014b039839fecc6e6a11c20afa4fa8 - cd "$WINETRICKS_TMP" - try_cabextract "$WINETRICKS_CACHE"/W2KSP4_EN.EXE i386/msasn1.dl_ - try cp msasn1.dll "$SYSTEM32_DLLS" - try rm -rf i386 - cd "$olddir" + w_try $WINE "$W_CACHE"/gfwlivesetupmin.exe /nodotnet $W_UNATTENDED_SLASH_Q + + w_try w_call msasn1 } #---------------------------------------------------------------- -load_glsl_disable() { +load_glsl_disable() +{ echo "Disabling GLSL" - cat > "$WINETRICKS_TMP"/disableglsl.reg <<_EOF_ + cat > "$W_TMP"/disableglsl.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "UseGLSL"="disabled" _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\disableglsl.reg + w_try_regedit "$W_TMP_WIN"\\disableglsl.reg } #---------------------------------------------------------------- -load_glsl_enable() { +load_glsl_enable() +{ echo "Enabling GLSL" - cat > "$WINETRICKS_TMP"/enableglsl.reg <<_EOF_ + cat > "$W_TMP"/enableglsl.reg <<_EOF_ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "UseGLSL"="enabled" _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\enableglsl.reg + w_try_regedit "$W_TMP_WIN"\\enableglsl.reg } #---------------------------------------------------------------- -load_glut() { - download . http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip fb4731885c05b3cf2c79e85aabe8fc9949616ef4 - try_unzip -o $WINETRICKS_UNIXQUIET -d "$DRIVE_C" "$WINETRICKS_CACHE"/glut-3.7.6-bin.zip - try cp "$DRIVE_C"/glut-3.7.6-bin/glut32.dll "$SYSTEM32_DLLS" - warn "If you want to compile glut programs, add c:/glut-3.7.6-bin to LIB and INCLUDE" +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-3.7.6-bin.zip + 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" } #---------------------------------------------------------------- -load_hosts() { +load_hosts() +{ # Create fake system32\drivers\etc\hosts and system32\drivers\etc\services files. # The hosts file is used to map network names to IP addresses without DNS. # The services file is used map service names to network ports. @@ -2407,156 +2800,102 @@ load_hosts() { # See http://bugs.winehq.org/show_bug.cgi?id=12076 # It's in system32 for both win32/win64 - mkdir -p "$WINDIR"/system32/drivers/etc - touch "$WINDIR"/system32/drivers/etc/hosts - touch "$WINDIR"/system32/drivers/etc/services + mkdir -p "$W_WINDIR_UNIX"/system32/drivers/etc + touch "$W_WINDIR_UNIX"/system32/drivers/etc/hosts + touch "$W_WINDIR_UNIX"/system32/drivers/etc/services } #---------------------------------------------------------------- set_heapcheck() { - cat > "$WINETRICKS_TMP"/heapcheck.reg <<_EOF_ + cat > "$W_TMP"/heapcheck.reg <<_EOF_ REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager] "GlobalFlag"=dword:00200030 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\heapcheck.reg + w_try_regedit "$W_TMP_WIN"\\heapcheck.reg } #---------------------------------------------------------------- -load_ie6_full() { - download . http://browsers-us.mirrors.zensoft.net/ie/win32/6.0/ie60.exe 8e483db28ff01a7cabd39147ab6c59753ea1f533 - - cd "$WINETRICKS_TMP" - try_unzip "$WINETRICKS_CACHE"/ie60.exe - cd "IE 6.0 Full" - - load_msls31 - - # Unregister Wine IE - if [ ! -f "$SYSTEM32_DLLS"/plugin.ocx ] - then - try $WINE iexplore -unregserver - fi - - # Change the override to the native so we are sure we use and register them - override_dlls native,builtin iexplore.exe itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi urlmon - - # Remove the fake dlls, if any - mv "$programfilesdir_unix"/"Internet Explorer"/iexplore.exe "$programfilesdir_unix"/"Internet Explorer"/iexplore.exe.bak - for dll in itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi urlmon - do - test -f "$SYSTEM32_DLLS"/$dll.dll && - mv "$SYSTEM32_DLLS"/$dll.dll "$SYSTEM32_DLLS"/$dll.dll.bak - done - - # The installer doesn't want to install iexplore.exe in XP mode. - set_winver win2k - - # Workaround http://bugs.winehq.org/show_bug.cgi?id=21009 - # See also http://code.google.com/p/winezeug/issues/detail?id=78 - rm -f "$SYSTEM32_DLLS"/browseui.dll "$SYSTEM32_DLLS"/inseng.dll - - $WINE ie6setup.exe - - # IE6 exits with 194 to signal a reboot - status=$? - case $status in - 0|194) ;; - *) die ie6 installation failed - esac - - # Work around DLL registration bug until ierunonce/RunOnce/wineboot is fixed - # FIXME: whittle down this list - cd "$SYSTEM32_DLLS" - for i in actxprxy.dll browseui.dll browsewm.dll cdfview.dll ddraw.dll \ - dispex.dll dsound.dll iedkcs32.dll iepeers.dll iesetup.dll \ - imgutil.dll inetcomm.dll inseng.dll isetup.dll jscript.dll laprxy.dll \ - mlang.dll mshtml.dll mshtmled.dll msi.dll msident.dll \ - 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 \ - 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 - done - - # Set windows version back to user's default. Leave at win2k for better rendering (is there a bug for that?) - unset_winver +load_icodecs() +{ + # 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 + w_try $WINE "$W_CACHE"/"codinstl.exe" + w_try_regsvr "$W_SYSTEM32_DLLS/ir50_32.dll" + # Work around bug in codec's installer? + # http://support.britannica.com/other/touchthesky/win/issues/TSTUw_150.htm + # http://appdb.winehq.org/objectManager.php?sClass=version&iId=7091 + w_override_dlls native ir50_32.dll } -load_ie6() { - if test "$WINE" = "" +#---------------------------------------------------------------- + +load_ie6() +{ + # Installer doesn't support Win64, and I can't find a x64 version on microsoft.com + if [ $W_ARCH = win64 ] then - echo "No need to install ie6 on real windows" - return 0 + w_die "This package does not work on a 64-bit installation" fi - # If this is just a dependency check, don't re-install - if test $PACKAGE != ie6 && test -f "$SYSTEM32_DLLS"/plugin.ocx - then - echo "prerequisite ie6 (or ie7) already installed, skipping" - return - fi + w_download ie6 http://browsers-us.mirrors.zensoft.net/ie/win32/6.0/ie60.exe 8e483db28ff01a7cabd39147ab6c59753ea1f533 + + cd "$W_TMP" + $WINE "$W_CACHE"/ie6/ie60.exe load_msls31 # Unregister Wine IE - if [ ! -f "$SYSTEM32_DLLS"/plugin.ocx ] + if [ ! -f "$W_SYSTEM32_DLLS"/plugin.ocx ] then - 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 - override_dlls native,builtin iexplore.exe itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi urlmon + w_override_dlls native,builtin iexplore.exe itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi urlmon # Remove the fake dlls, if any - mv "$programfilesdir_unix"/"Internet Explorer"/iexplore.exe "$programfilesdir_unix"/"Internet Explorer"/iexplore.exe.bak + 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 do - test -f "$SYSTEM32_DLLS"/$dll.dll && - mv "$SYSTEM32_DLLS"/$dll.dll "$SYSTEM32_DLLS"/$dll.dll.bak + test -f "$W_SYSTEM32_DLLS"/$dll.dll && + mv "$W_SYSTEM32_DLLS"/$dll.dll "$W_SYSTEM32_DLLS"/$dll.dll.bak done # The installer doesn't want to install iexplore.exe in XP mode. - set_winver win2k + w_set_winver win2k - # Workaround a IE6 Installer bug, not Wine's fault - # See http://bugs.winehq.org/show_bug.cgi?id=5409 - # Actual value downloaded doesn't matter - rm -f "$WINETRICKS_CACHE"/ie6sites.dat - download . http://www.microsoft.com/windows/ie/ie6sp1/download/rtw/x86/ie6sites.dat - - # Install - download . http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/EN-US/ie6setup.exe f3ab61a785eb9611fa583612e83f3b69377f2cef - # Workaround http://bugs.winehq.org/show_bug.cgi?id=21009 # See also http://code.google.com/p/winezeug/issues/detail?id=78 - rm -f "$SYSTEM32_DLLS"/browseui.dll "$SYSTEM32_DLLS"/inseng.dll + rm -f "$W_SYSTEM32_DLLS"/browseui.dll "$W_SYSTEM32_DLLS"/inseng.dll - # Silent install recipe from: - # http://www.axonpro.sk/japo/info/MS/SILENT%20INSTALL/Unattended-Silent%20Installation%20Switches%20for%20Windows%20Apps.htm - if [ $WINETRICKS_QUIET ] + # Work around http://bugs.winehq.org/show_bug.cgi?id=25432 + w_try_cabextract -F inseng.dll "$W_TMP/IE 6.0 Full/ACTSETUP.CAB" + mv inseng.dll "$W_SYSTEM32_DLLS" + w_override_dlls native inseng.dll + + cd "$W_TMP/IE 6.0 Full" + if [ $W_UNATTENDED_SLASH_Q ] then - $WINE "$WINETRICKS_CACHE"/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 "$WINETRICKS_CACHE"/ie6setup.exe + $WINE IE6SETUP.EXE fi + # IE6 exits with 194 to signal a reboot status=$? case $status in 0|194) ;; - *) die ie6 installation failed + *) w_die ie6 installation failed esac # Work around DLL registration bug until ierunonce/RunOnce/wineboot is fixed # FIXME: whittle down this list - cd "$SYSTEM32_DLLS" + cd "$W_SYSTEM32_DLLS" for i in actxprxy.dll browseui.dll browsewm.dll cdfview.dll ddraw.dll \ dispex.dll dsound.dll iedkcs32.dll iepeers.dll iesetup.dll \ imgutil.dll inetcomm.dll inseng.dll isetup.dll jscript.dll laprxy.dll \ @@ -2572,53 +2911,69 @@ load_ie6() { done # Set windows version back to user's default. Leave at win2k for better rendering (is there a bug for that?) - unset_winver - - # try $WINE "$programfilesdir_unix"/"Internet Explorer"/IEXPLORE.EXE http://www.winehq.org + w_unset_winver } #---------------------------------------------------------------- -load_ie7() { +load_ie7() +{ # Unregister Wine IE - if [ ! -f "$SYSTEM32_DLLS"/plugin.ocx ] + if [ ! -f "$W_SYSTEM32_DLLS"/plugin.ocx ] then - 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 - 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 xmllite # Bundled updspapi cannot work on wine - override_dlls builtin updspapi + w_override_dlls builtin updspapi # Remove the fake dlls from the existing WINEPREFIX for dll in itircl itss jscript mshtml msimtf shdoclc shdocvw shlwapi urlmon do - test -f "$SYSTEM32_DLLS"/$dll.dll && - mv "$SYSTEM32_DLLS"/$dll.dll "$SYSTEM32_DLLS"/$dll.dll.bak + test -f "$W_SYSTEM32_DLLS"/$dll.dll && + mv "$W_SYSTEM32_DLLS"/$dll.dll "$W_SYSTEM32_DLLS"/$dll.dll.bak done # See http://bugs.winehq.org/show_bug.cgi?id=16013 # Find instructions to create this file in dlls/wintrust/tests/crypt.c - download . http://winezeug.googlecode.com/svn/trunk/winetricks_files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f + w_download ie7 http://winezeug.googlecode.com/svn/trunk/winetricks_files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f # Put a dummy catalog file in place - mkdir -p "$SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\} - try cp -f "$WINETRICKS_CACHE"/winetest.cat "$SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}/oem0.cat + 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 # Install - download . http://download.microsoft.com/download/3/8/8/38889DC1-848C-4BF2-8335-86C573AD86D9/IE7-WindowsXP-x86-enu.exe d39b89c360fbaa9706b5181ae4718100687a5326 - if [ $WINETRICKS_QUIET ] + w_download ie7 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" = "" then - $WINE "$WINETRICKS_CACHE"/IE7-WindowsXP-x86-enu.exe /quiet + quiet="" else - $WINE "$WINETRICKS_CACHE"/IE7-WindowsXP-x86-enu.exe + quiet="/quiet" 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" + + # FIXME: can't check status, as it always reports failure on wine? + if w_workaround_wine_bug 21947 + then + WINEDEBUG=warn+heap $WINE IE7-WindowsXP-x86-enu.exe $quiet + else + $WINE IE7-WindowsXP-x86-enu.exe $quiet + 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 "$SYSTEM32_DLLS" + cd "$W_SYSTEM32_DLLS" for i in actxprxy.dll browseui.dll browsewm.dll cdfview.dll ddraw.dll \ dispex.dll dsound.dll iedkcs32.dll iepeers.dll iesetup.dll \ imgutil.dll inetcomm.dll inseng.dll isetup.dll jscript.dll laprxy.dll \ @@ -2634,64 +2989,73 @@ load_ie7() { done # Seeing is believing - if [ "$WINETRICKS_QUIET" = "" ] + if [ "$W_UNATTENDED_SLASH_Q" = "" ] then - warn "Starting ie7. To start it later, use the command $WINE '${programfilesdir_win}\\\\Internet Explorer\\\\iexplore'" - $WINE "${programfilesdir_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 & else - warn "To start ie7, use the command $WINE '${programfilesdir_win}\\\\Internet Explorer\\\\iexplore'" + w_warn "To start ie7, use the command $WINE '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'" fi } #---------------------------------------------------------------- -load_ie8() { +load_ie8() +{ # Unregister Wine IE - if [ ! -f "$SYSTEM32_DLLS"/plugin.ocx ] + if [ ! -f "$W_SYSTEM32_DLLS"/plugin.ocx ] then - try $WINE iexplore -unregserver + w_try $WINE iexplore -unregserver fi load_msls31 # Change the override to the native so we are sure we use and register them - 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 xmllite # Bundled updspapi cannot work on wine - override_dlls builtin updspapi + 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 do - test -f "$SYSTEM32_DLLS"/$dll.dll && - mv "$SYSTEM32_DLLS"/$dll.dll "$SYSTEM32_DLLS"/$dll.dll.bak + test -f "$W_SYSTEM32_DLLS"/$dll.dll && + mv "$W_SYSTEM32_DLLS"/$dll.dll "$W_SYSTEM32_DLLS"/$dll.dll.bak done # See http://bugs.winehq.org/show_bug.cgi?id=16013 # Find instructions to create this file in dlls/wintrust/tests/crypt.c - download . http://winezeug.googlecode.com/svn/trunk/winetricks_files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f + w_download ie8 http://winezeug.googlecode.com/svn/trunk/winetricks_files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f # Put a dummy catalog file in place - mkdir -p "$SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\} - try cp -f "$WINETRICKS_CACHE"/winetest.cat "$SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}/oem0.cat + mkdir -p "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\} + w_try cp -f "$W_CACHE"/ie8/winetest.cat "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}/oem0.cat - # FIXME: According to http://www.wine-reviews.net/wine-reviews/microsoft/internet-explorer-8-on-linux-with-wine.html - # may also need native msctf, msimtf, and uxtheme - - # Install - download . http://download.microsoft.com/download/C/C/0/CC0BD555-33DD-411E-936B-73AC6F95AE11/IE8-WindowsXP-x86-ENU.exe e489483e5001f95da04e1ebf3c664173baef3e26 - if [ $WINETRICKS_QUIET ] + w_download ie8 http://download.microsoft.com/download/C/C/0/CC0BD555-33DD-411E-936B-73AC6F95AE11/IE8-WindowsXP-x86-ENU.exe e489483e5001f95da04e1ebf3c664173baef3e26 + if [ $W_UNATTENDED_SLASH_Q ] then - # 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... - $WINE "$WINETRICKS_CACHE"/IE8-WindowsXP-x86-ENU.exe /quiet /forcerestart + quiet="/quiet /forcerestart" else - $WINE "$WINETRICKS_CACHE"/IE8-WindowsXP-x86-ENU.exe + quiet="" fi + cd "$W_CACHE"/ie8 + + # KLUDGE: if / is writable, having a z: mapping to it causes ie8 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" + + # 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 + + # 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 "$SYSTEM32_DLLS" + cd "$W_SYSTEM32_DLLS" for i in actxprxy.dll browseui.dll browsewm.dll cdfview.dll ddraw.dll \ dispex.dll dsound.dll iedkcs32.dll iepeers.dll iesetup.dll \ imgutil.dll inetcomm.dll isetup.dll jscript.dll laprxy.dll \ @@ -2706,50 +3070,49 @@ load_ie8() { $WINE regsvr32 /i $i > /dev/null 2>&1 done - # Seeing is believing - if [ "$WINETRICKS_QUIET" = "" ] - then - warn "Starting ie8. To start it later, use the command $WINE '${programfilesdir_win}\\\\Internet Explorer\\\\iexplore'" - $WINE "${programfilesdir_win}\\Internet Explorer\\iexplore" http://www.winehq.org/ > /dev/null 2>&1 & - else - warn "To start ie8, use the command $WINE '${programfilesdir_win}\\\\Internet Explorer\\\\iexplore'. It doesn't work well yet though, see: http://bugs.winehq.org/show_bug.cgi?id=12433" - fi + # FIXME: According to http://www.wine-reviews.net/wine-reviews/microsoft/internet-explorer-8-on-linux-with-wine.html + # may also need native msctf, msimtf, and uxtheme. Is this why the UI doesn't work yet? + + w_warn "To start ie8, use the command $WINE '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'... but it doesn't work yet. See http://code.google.com/p/winezeug/issues/detail?id=159 for an ugly workaround." } #---------------------------------------------------------------- -load_jet40() { +load_jet40() +{ # http://support.microsoft.com/kb/239114 # See also http://bugs.winehq.org/show_bug.cgi?id=6085 - download . http://download.microsoft.com/download/4/3/9/4393c9ac-e69e-458d-9f6d-2fe191c51469/jet40sp8_9xnt.exe 8cd25342030857969ede2d8fcc34f3f7bcc2d6d4 - try $WINE "$WINETRICKS_CACHE"/jet40sp8_9xnt.exe $WINETRICKS_QUIET + w_download . http://download.microsoft.com/download/4/3/9/4393c9ac-e69e-458d-9f6d-2fe191c51469/jet40sp8_9xnt.exe 8cd25342030857969ede2d8fcc34f3f7bcc2d6d4 + w_try $WINE "$W_CACHE"/jet40sp8_9xnt.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_kde() { - download . http://www.winkde.org/pub/kde/ports/win32/installer/kdewin-installer-gui-0.9.7-0.exe 9fe2f13b76375e70e780ce6850d0de35b08b4ec3 - mkdir -p "$programfilesdir_unix/kde" - try cp "$WINETRICKS_CACHE"/kdewin-installer-gui-0.9.7-0.exe "$programfilesdir_unix/kde" - cd "$programfilesdir_unix/kde" - try $WINE "$programfilesdir_win\\kde\\kdewin-installer-gui-0.9.7-0.exe" - cd "$olddir" +load_kde() +{ + w_download . http://www.winkde.org/pub/kde/ports/win32/installer/kdewin-installer-gui-0.9.7-0.exe 9fe2f13b76375e70e780ce6850d0de35b08b4ec3 + mkdir -p "$W_PROGRAMS_UNIX/kde" + w_try cp "$W_CACHE"/kdewin-installer-gui-0.9.7-0.exe "$W_PROGRAMS_UNIX/kde" + cd "$W_PROGRAMS_UNIX/kde" + w_try $WINE "$W_PROGRAMS_WIN\\kde\\kdewin-installer-gui-0.9.7-0.exe" } #---------------------------------------------------------------- -load_l3codecx() { +load_l3codecx() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F l3codecx.ax "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F l3codecx.ax "$W_TMP/dxnt.cab" - try $WINE regsvr32 l3codecx.ax + w_try_regsvr l3codecx.ax } #---------------------------------------------------------------- -load_liberation() { +load_liberation() +{ # http://www.redhat.com/promo/fonts/ case `uname -s` in SunOS|Solaris) @@ -2760,20 +3123,19 @@ load_liberation() { ;; esac - download . https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-1.04.tar.gz 097882c92e3260742a3dc3bf033792120d8635a3 - cd "$WINETRICKS_TMP" - gunzip -dc "$WINETRICKS_CACHE"/liberation-fonts-1.04.tar.gz | tar -xf - - mv liberation-fonts-1.04/*.ttf "$winefontsdir" - rm -rf "$WINETRICKS_TMP"/* - cd "$olddir" + w_download . https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-1.04.tar.gz 097882c92e3260742a3dc3bf033792120d8635a3 + cd "$W_TMP" + gunzip -dc "$W_CACHE"/liberation-fonts-1.04.tar.gz | tar -xf - + mv liberation-fonts-1.04/*.ttf "$W_FONTSDIR_UNIX" } #---------------------------------------------------------------- -load_lucida() { - download . ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/NT40TSE/hotfixes-postSP3/Euro-fix/eurofixi.exe 64c47ad92265f6f10b0fd909a703d4fd1b05b2d5 - try_cabextract -d "$winefontsdir" -L -F 'lucon.ttf' "$WINETRICKS_CACHE"/eurofixi.exe - register_font lucon.ttf "Lucida Console" +load_lucida() +{ + w_download . ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/NT40TSE/hotfixes-postSP3/Euro-fix/eurofixi.exe 64c47ad92265f6f10b0fd909a703d4fd1b05b2d5 + w_try_cabextract -d "$W_FONTSDIR_UNIX" -L -F 'lucon.ttf' "$W_CACHE"/eurofixi.exe + w_register_font lucon.ttf "Lucida Console" } #---------------------------------------------------------------- @@ -2781,295 +3143,333 @@ load_lucida() { set_native_mdac() { # Set those overrides globally so user programs get MDAC's odbc # instead of wine's unixodbc - override_dlls native,builtin odbc32 odbccp32 oledb32 + w_override_dlls native,builtin odbc32 odbccp32 oledb32 } #---------------------------------------------------------------- -load_mdac25() { - download mdac25 http://download.microsoft.com/download/e/e/4/ee4fe9ee-6fa1-4ab6-ab8c-fe1769f4edcf/mdac_typ.exe 09e974a5dbebaaa08c7985a4a1126886dc05fd87 +load_mdac25() +{ + w_download mdac25 http://download.microsoft.com/download/e/e/4/ee4fe9ee-6fa1-4ab6-ab8c-fe1769f4edcf/mdac_typ.exe 09e974a5dbebaaa08c7985a4a1126886dc05fd87 set_native_mdac - set_winver nt40 - if [ $WINETRICKS_QUIET ] + w_set_winver nt40 + if [ $W_UNATTENDED_SLASH_Q ] then - try $WINE "$WINETRICKS_CACHE"/mdac25/mdac_typ.exe /q /C:"setup /QNT" + w_try $WINE "$W_CACHE"/mdac25/mdac_typ.exe /q /C:"setup /QNT" else - try $WINE "$WINETRICKS_CACHE"/mdac25/mdac_typ.exe + w_try $WINE "$W_CACHE"/mdac25/mdac_typ.exe fi - unset_winver + w_unset_winver } #---------------------------------------------------------------- -load_mdac27() { - download mdac27 http://download.microsoft.com/download/3/b/f/3bf74b01-16ba-472d-9a8c-42b2b4fa0d76/mdac_typ.exe f68594d1f578c3b47bf0639c46c11c5da161feee +load_mdac27() +{ + w_download mdac27 http://download.microsoft.com/download/3/b/f/3bf74b01-16ba-472d-9a8c-42b2b4fa0d76/mdac_typ.exe f68594d1f578c3b47bf0639c46c11c5da161feee set_native_mdac - set_winver win2k - if [ $WINETRICKS_QUIET ] + w_set_winver win2k + if [ $W_UNATTENDED_SLASH_Q ] then - try $WINE "$WINETRICKS_CACHE"/mdac27/mdac_typ.exe /q /C:"setup /QNT" + w_try $WINE "$W_CACHE"/mdac27/mdac_typ.exe /q /C:"setup /QNT" else - try $WINE "$WINETRICKS_CACHE"/mdac27/mdac_typ.exe + w_try $WINE "$W_CACHE"/mdac27/mdac_typ.exe fi - unset_winver + w_unset_winver } #---------------------------------------------------------------- -load_mdac28() { - download mdac28 http://download.microsoft.com/download/c/d/f/cdfd58f1-3973-4c51-8851-49ae3777586f/MDAC_TYP.EXE 91bd59f0b02b67f3845105b15a0f3502b9a2216a +load_mdac28() +{ + w_download mdac28 http://download.microsoft.com/download/c/d/f/cdfd58f1-3973-4c51-8851-49ae3777586f/MDAC_TYP.EXE 91bd59f0b02b67f3845105b15a0f3502b9a2216a set_native_mdac - set_winver win98 - if [ $WINETRICKS_QUIET ] + w_set_winver win98 + if [ $W_UNATTENDED_SLASH_Q ] then - try $WINE "$WINETRICKS_CACHE"/mdac28/mdac_typ.exe /q /C:"setup /QNT" + w_try $WINE "$W_CACHE"/mdac28/mdac_typ.exe /q /C:"setup /QNT" else - try $WINE "$WINETRICKS_CACHE"/mdac28/mdac_typ.exe + w_try $WINE "$W_CACHE"/mdac28/mdac_typ.exe fi - unset_winver + w_unset_winver } #---------------------------------------------------------------- -load_mfc40() { +load_mfc40() +{ # See http://support.microsoft.com/kb/122244 - download . http://download.microsoft.com/download/ole/ole2v/3.5/w351/en-us/ole2v.exe c6cac71f32405ccb09c6f375e0738e6e13f073e4 - try_unzip -o $WINETRICKS_UNIXQUIET -d "$WINETRICKS_TMP" "$WINETRICKS_CACHE"/ole2v.exe - try cp -f "$WINETRICKS_TMP"/MFC40.DLL "$SYSTEM32_DLLS" - - rm -rf "$WINETRICKS_TMP"/* + w_download . http://download.microsoft.com/download/ole/ole2v/3.5/w351/en-us/ole2v.exe c6cac71f32405ccb09c6f375e0738e6e13f073e4 + w_try_unzip -d "$W_TMP" "$W_CACHE"/ole2v.exe + w_try cp -f "$W_TMP"/MFC40.DLL "$W_SYSTEM32_DLLS" } #---------------------------------------------------------------- -load_mingw_min() { +load_mingw_min() +{ # If this is just a dependency check, don't re-install - if test $PACKAGE != mingw_min && test $PACKAGE != mingw && test $PACKAGE != mingw-min && test -f "$DRIVE_C"/MinGW/bin/gcc.exe + if test $W_PACKAGE != mingw_min && test $W_PACKAGE != mingw && test $W_PACKAGE != mingw-min && test -f "$W_DRIVE_C"/MinGW/bin/gcc.exe then echo "prerequisite mingw_min already installed, skipping" return fi # See http://mingw.org/wiki/Getting_Started - download . http://sourceforge.net/projects/mingw/files/binutils-2.19.1-mingw32-bin.tar.gz 1ab72f3af3fe96d08c3c9bff60c47913704d5774 - download . http://sourceforge.net/projects/mingw/files/gcc-core-4.4.0-mingw32-bin.tar.gz b88b8f3644ca0cdf2c41cd03f820bf7823a8eabb - download . http://sourceforge.net/projects/mingw/files/gcc-core-4.4.0-mingw32-dll.tar.gz 0372ecf4caf75d0d9fe4a7739ca234f1a3de831b - download . http://sourceforge.net/projects/mingw/files/gmp-4.2.4-mingw32-dll.tar.gz a14dd928382f093f67cb3cd57c140625b1b265bb - download . http://sourceforge.net/projects/mingw/files/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma 5b60ce4d9ec9cf91aee437915a2469b915e1235f - download . http://sourceforge.net/projects/mingw/files/mingwrt-3.16-mingw32-dev.tar.gz 770ff5001989d8a9a1ec4f3621d8f264a24e178f - download . http://sourceforge.net/projects/mingw/files/mingwrt-3.16-mingw32-dll.tar.gz b8032e97c79e16a3c540043f0f39821df1531ae9 - download . http://sourceforge.net/projects/mingw/files/mpfr-2.4.1-mingw32-dll.tar.gz 43b7ecb2c0c785c44321ff6c4376f51375713a7b - download . http://sourceforge.net/projects/mingw/files/pthreads-w32-2.8.0-mingw32-dll.tar.gz f922f8c0c42921fd4482a3d2e6f779d6384040c1 - download . http://sourceforge.net/projects/mingw/files/w32api-3.13-mingw32-dev.tar.gz 5eb7d8ec0fe032a92bea3a2c8282a78df2f1793c + w_download . http://sourceforge.net/projects/mingw/files/binutils-2.19.1-mingw32-bin.tar.gz 1ab72f3af3fe96d08c3c9bff60c47913704d5774 + w_download . http://sourceforge.net/projects/mingw/files/gcc-core-4.4.0-mingw32-bin.tar.gz b88b8f3644ca0cdf2c41cd03f820bf7823a8eabb + w_download . http://sourceforge.net/projects/mingw/files/gcc-core-4.4.0-mingw32-dll.tar.gz 0372ecf4caf75d0d9fe4a7739ca234f1a3de831b + w_download . http://sourceforge.net/projects/mingw/files/gmp-4.2.4-mingw32-dll.tar.gz a14dd928382f093f67cb3cd57c140625b1b265bb + w_download . http://sourceforge.net/projects/mingw/files/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma 5b60ce4d9ec9cf91aee437915a2469b915e1235f + w_download . http://sourceforge.net/projects/mingw/files/mingwrt-3.16-mingw32-dev.tar.gz 770ff5001989d8a9a1ec4f3621d8f264a24e178f + w_download . http://sourceforge.net/projects/mingw/files/mingwrt-3.16-mingw32-dll.tar.gz b8032e97c79e16a3c540043f0f39821df1531ae9 + w_download . http://sourceforge.net/projects/mingw/files/mpfr-2.4.1-mingw32-dll.tar.gz 43b7ecb2c0c785c44321ff6c4376f51375713a7b + w_download . http://sourceforge.net/projects/mingw/files/pthreads-w32-2.8.0-mingw32-dll.tar.gz f922f8c0c42921fd4482a3d2e6f779d6384040c1 + w_download . http://sourceforge.net/projects/mingw/files/w32api-3.13-mingw32-dev.tar.gz 5eb7d8ec0fe032a92bea3a2c8282a78df2f1793c - mkdir "$DRIVE_C"/MinGW - cd "$DRIVE_C"/MinGW - gzip -d -c "$WINETRICKS_CACHE"/binutils-2.19.1-mingw32-bin.tar.gz | tar x - gzip -d -c "$WINETRICKS_CACHE"/mingwrt-3.16-mingw32-dev.tar.gz | tar x - gzip -d -c "$WINETRICKS_CACHE"/mingwrt-3.16-mingw32-dll.tar.gz | tar x - gzip -d -c "$WINETRICKS_CACHE"/w32api-3.13-mingw32-dev.tar.gz | tar x - gzip -d -c "$WINETRICKS_CACHE"/gmp-4.2.4-mingw32-dll.tar.gz | tar x - lzma -d -c "$WINETRICKS_CACHE"/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma | tar x - gzip -d -c "$WINETRICKS_CACHE"/mpfr-2.4.1-mingw32-dll.tar.gz | tar x - gzip -d -c "$WINETRICKS_CACHE"/pthreads-w32-2.8.0-mingw32-dll.tar.gz | tar x - gzip -d -c "$WINETRICKS_CACHE"/gcc-core-4.4.0-mingw32-bin.tar.gz | tar x - gzip -d -c "$WINETRICKS_CACHE"/gcc-core-4.4.0-mingw32-dll.tar.gz | tar x + mkdir "$W_DRIVE_C"/MinGW + cd "$W_DRIVE_C"/MinGW + gzip -d -c "$W_CACHE"/binutils-2.19.1-mingw32-bin.tar.gz | tar x + gzip -d -c "$W_CACHE"/mingwrt-3.16-mingw32-dev.tar.gz | tar x + gzip -d -c "$W_CACHE"/mingwrt-3.16-mingw32-dll.tar.gz | tar x + gzip -d -c "$W_CACHE"/w32api-3.13-mingw32-dev.tar.gz | tar x + gzip -d -c "$W_CACHE"/gmp-4.2.4-mingw32-dll.tar.gz | tar x + lzma -d -c "$W_CACHE"/libiconv-1.13.1-1-mingw32-dll-2.tar.lzma | tar x + gzip -d -c "$W_CACHE"/mpfr-2.4.1-mingw32-dll.tar.gz | tar x + gzip -d -c "$W_CACHE"/pthreads-w32-2.8.0-mingw32-dll.tar.gz | tar x + gzip -d -c "$W_CACHE"/gcc-core-4.4.0-mingw32-bin.tar.gz | tar x + gzip -d -c "$W_CACHE"/gcc-core-4.4.0-mingw32-dll.tar.gz | tar x append_path 'C:\\MinGW\\bin' } #---------------------------------------------------------------- -load_mingw_gdb() { +load_mingw_gdb() +{ # See http://mingw.org/wiki/Getting_Started load_mingw_min - download . $SOURCEFORGE/mingw/GNU%20Source-Level%20Debugger/gdb-7.0-2-mingw32-bin.tar.gz a560cb0e3980d0ed853994c84038260212f58925 + w_download . $SOURCEFORGE/mingw/GNU%20Source-Level%20Debugger/gdb-7.0-2-mingw32-bin.tar.gz a560cb0e3980d0ed853994c84038260212f58925 - cd "$DRIVE_C"/MinGW - gzip -d -c "$WINETRICKS_CACHE"/gdb-7.0-2-mingw32-bin.tar.gz | tar x + cd "$W_DRIVE_C"/MinGW + gzip -d -c "$W_CACHE"/gdb-7.0-2-mingw32-bin.tar.gz | tar x } #---------------------------------------------------------------- -load_mono26() { +load_mono26() +{ # Load Mono, have it handle all .net requests - download . http://ftp.novell.com/pub/mono/archive/2.6.7/windows-installer/2/mono-2.6.7-gtksharp-2.12.10-win32-2.exe c31c06063aa82006dff2f8df22dcc6ba046afbc2 - try $WINE "$WINETRICKS_CACHE"/mono-2.6.7-gtksharp-2.12.10-win32-2.exe $WINETRICKS_SILENT - - # FIXME: what should this be for mono 2.6? - cat > "$WINETRICKS_TMP"/mono_2.0.reg <<_EOF_ -REGEDIT4 - -[HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727] -"Install"=dword:00000001 -"SP"=dword:00000001 - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\policy\v2.0] -"4322"="3706-4322" -_EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\mono_2.0.reg - rm -f "$WINETRICKS_TMP"/mono_2.0.reg + w_download . http://ftp.novell.com/pub/mono/archive/2.6.7/windows-installer/2/mono-2.6.7-gtksharp-2.12.10-win32-2.exe c31c06063aa82006dff2f8df22dcc6ba046afbc2 + w_try $WINE "$W_CACHE"/mono-2.6.7-gtksharp-2.12.10-win32-2.exe $W_UNATTENDED_SLASH_SILENT } #---------------------------------------------------------------- -load_mozillabuild() { - download . http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.4.exe - try $WINE "$WINETRICKS_CACHE"/MozillaBuildSetup-1.4.exe $WINETRICKS_S +load_mono28() +{ + # Load Mono, have it handle all .net requests + w_download . http://ftp.novell.com/pub/mono/archive/2.8.1/windows-installer/3/mono-2.8.1-gtksharp-2.12.10-win32-3.exe e491cbcadf486bdb3993efe6dc98e90c4e19425e + w_try $WINE "$W_CACHE"/mono-2.8.1-gtksharp-2.12.10-win32-3.exe $W_UNATTENDED_SLASH_SILENT } #---------------------------------------------------------------- -load_mpc() { - download . $SOURCEFORGE/mpc-hc/MPC%20HomeCinema%20-%20Win32/MPC-HC%20v1.3.1249.0_32%20bits/MPC-Homecinema.1.3.1249.0.%28x86%29.zip 6c46846b5298f35ccc81925aa5304546b9a7e513 - mkdir -p "$programfilesdir_unix/Media Player Classic" - cd "$programfilesdir_unix/Media Player Classic" - try_unzip "$WINETRICKS_CACHE/MPC-Homecinema.1.3.1249.0.%28x86%29.zip" - - - append_path "$programfilesdir_win"'\\Media Player Classic' - - cd "$olddir" - warn "MPC now available as $programfilesdir_win\Media Player Classic\mpc-hc.exe" +load_mozillabuild() +{ + w_download . http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.4.exe + w_try $WINE "$W_CACHE"/MozillaBuildSetup-1.4.exe $W_UNATTENDED_SLASH_S } #---------------------------------------------------------------- -load_msi2() { +load_mpc() +{ + w_download . $SOURCEFORGE/mpc-hc/MPC%20HomeCinema%20-%20Win32/MPC-HC%20v1.3.1249.0_32%20bits/MPC-Homecinema.1.3.1249.0.%28x86%29.zip 6c46846b5298f35ccc81925aa5304546b9a7e513 + mkdir -p "$W_PROGRAMS_UNIX/Media Player Classic" + cd "$W_PROGRAMS_UNIX/Media Player Classic" + w_try_unzip "$W_CACHE/MPC-Homecinema.1.3.1249.0.%28x86%29.zip" + + w_warn "MPC now available as $W_PROGRAMS_WIN\Media Player Classic\mpc-hc.exe" +} + +#---------------------------------------------------------------- + +load_msasn1() +{ + # http://www.microsoft.com/downloads/details.aspx?FamilyID=1001AAF1-749F-49F4-8010-297BD6CA33A0&displaylang=en + # FIXME: This is a huge w_download for a single dll. + w_download msasn1 http://download.microsoft.com/download/E/6/A/E6A04295-D2A8-40D0-A0C5-241BFECD095E/W2KSP4_EN.EXE fadea6d94a014b039839fecc6e6a11c20afa4fa8 + cd "$W_TMP" + w_try_cabextract -F i386/msasn1.dl_ "$W_CACHE"/msasn1/W2KSP4_EN.EXE + w_try_cabextract i386/msasn1.dl_ + w_try cp msasn1.dll "$W_SYSTEM32_DLLS" + w_try rm -rf i386 +} + +#---------------------------------------------------------------- + +load_msi2() +{ # Install native msi per http://wiki.winehq.org/NativeMsi # http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=CEBBACD8-C094-4255-B702-DE3BB768148F - download . http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366 + w_download . http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366 # Pick win98 so we can install native msi - set_winver win98 + w_set_winver win98 # Avoid "err:setupapi:SetupDefaultQueueCallbackA copy error 5 ..." - rm -f "$SYSTEM32_DLLS"/msi.dll - rm -f "$SYSTEM32_DLLS"/msiexec.exe + rm -f "$W_SYSTEM32_DLLS"/msi.dll + rm -f "$W_SYSTEM32_DLLS"/msiexec.exe - WINEDLLOVERRIDES="msi,msiexec.exe=n" try $WINE "$WINETRICKS_CACHE"/InstMSIA.exe $WINETRICKS_QUIET + WINEDLLOVERRIDES="msi,msiexec.exe=n" w_try $WINE "$W_CACHE"/InstMSIA.exe $W_UNATTENDED_SLASH_Q - override_dlls native,builtin msi msiexec.exe + w_override_dlls native,builtin msi msiexec.exe # and undo version win98 - unset_winver + w_unset_winver } #---------------------------------------------------------------- -load_mshflxgd() { +load_mshflxgd() +{ # http://msdn.microsoft.com/en-us/library/aa240864(VS.60).aspx # orig: 5f9c7a81022949bfe39b50f2bbd799c448bb7377 # Jan 2009: 7ad74e589d5eefcee67fa14e65417281d237a6b6 # May 2009: bd8aa796e16e5f213414af78931e0379d9cbe292 - download . http://activex.microsoft.com/controls/vb6/MSHFLXGD.CAB bd8aa796e16e5f213414af78931e0379d9cbe292 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/MSHFLXGD.CAB - try cp -f "$WINETRICKS_TMP"/[Mm][Ss][Hh][Ff][Ll][Xx][Gg][Dd].[Oo][Cc][Xx] "$SYSTEM32_DLLS" + w_download . http://activex.microsoft.com/controls/vb6/MSHFLXGD.CAB bd8aa796e16e5f213414af78931e0379d9cbe292 + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/MSHFLXGD.CAB + w_try cp -f "$W_TMP"/[Mm][Ss][Hh][Ff][Ll][Xx][Gg][Dd].[Oo][Cc][Xx] "$W_SYSTEM32_DLLS" } #---------------------------------------------------------------- -load_msls31() { +load_msls31() +{ # Install native Microsoft Line Services (needed by e-Sword, possibly only when using native riched20) - download . http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/InstMsiA.exe - try cp -f "$WINETRICKS_TMP"/msls31.dll "$SYSTEM32_DLLS" + w_download msls31 http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366 + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msls31/InstMsiA.exe + w_try cp -f "$W_TMP"/msls31.dll "$W_SYSTEM32_DLLS" } #---------------------------------------------------------------- -load_msmask() { +load_msmask() +{ # http://msdn.microsoft.com/en-us/library/11405hcf(VS.71).aspx # http://bugs.winehq.org/show_bug.cgi?id=2934 # old: 3c6b26f68053364ea2e09414b615dbebafb9d5c3 # May 2009: 30e55679e4a13fe4d9620404476f215f93239292 - download . http://activex.microsoft.com/controls/vb6/MSMASK32.CAB 30e55679e4a13fe4d9620404476f215f93239292 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/MSMASK32.CAB - try cp -f "$WINETRICKS_TMP"/[Mm][Ss][Mm][Aa][Ss][Kk]32.[Oo][Cc][Xx] "$SYSTEM32_DLLS"/msmask32.ocx - try $WINE regsvr32 msmask32.ocx + w_download . http://activex.microsoft.com/controls/vb6/MSMASK32.CAB 30e55679e4a13fe4d9620404476f215f93239292 + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/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 } #---------------------------------------------------------------- -load_mspaint() { +load_mspaint() +{ # http://helpforlinux.blogspot.com/2008/12/run-ms-paint-in-linux.html - download . http://download.microsoft.com/download/winntwks40/paint/1/nt4/en-us/paintnt.exe a22c4e367ef9d2cd23f0a8ae8d9ebff5bc1e8a0b - try_unzip "$WINETRICKS_CACHE"/paintnt.exe -d "$WINDIR" - warn "Paint is now installed to $WINDIR/MSPAINT.EXE" + w_download . http://download.microsoft.com/download/winntwks40/paint/1/nt4/en-us/paintnt.exe a22c4e367ef9d2cd23f0a8ae8d9ebff5bc1e8a0b + w_try_unzip "$W_CACHE"/paintnt.exe -d "$W_WINDIR_UNIX" + w_warn "Paint is now installed to $W_WINDIR_UNIX/MSPAINT.EXE" } #---------------------------------------------------------------- -load_msscript() { +load_msscript() +{ # http://msdn.microsoft.com/scripting/scriptcontrol/x86/sct10en.exe # http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac - download . http://download.microsoft.com/download/d/2/a/d2a7430c-6d5b-48e9-96c4-3c751be7bffe/sct10en.exe fd9f2f23357ab11ae70682d6864f7e9f188adf2a - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/sct10en.exe - try cp -f "$WINETRICKS_TMP"/msscript.ocx "$SYSTEM32_DLLS" - try $WINE regsvr32 msscript.ocx + w_download . http://download.microsoft.com/download/d/2/a/d2a7430c-6d5b-48e9-96c4-3c751be7bffe/sct10en.exe fd9f2f23357ab11ae70682d6864f7e9f188adf2a + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/sct10en.exe + w_try cp -f "$W_TMP"/msscript.ocx "$W_SYSTEM32_DLLS" + w_try_regsvr msscript.ocx } #---------------------------------------------------------------- -load_msxml3() { +load_msxml3() +{ # Service Pack 5 - #download http://download.microsoft.com/download/a/5/e/a5e03798-2454-4d4b-89a3-4a47579891d8/msxml3.msi + #w_download http://download.microsoft.com/download/a/5/e/a5e03798-2454-4d4b-89a3-4a47579891d8/msxml3.msi # Service Pack 7 - download . http://download.microsoft.com/download/8/8/8/888f34b7-4f54-4f06-8dac-fa29b19f33dd/msxml3.msi d4c2178dfb807e1a0267fce0fd06b8d51106d913 + w_download msxml3 http://download.microsoft.com/download/8/8/8/888f34b7-4f54-4f06-8dac-fa29b19f33dd/msxml3.msi d4c2178dfb807e1a0267fce0fd06b8d51106d913 # http://bugs.winehq.org/show_bug.cgi?id=7849 fixed since 0.9.37 - override_dlls native,builtin msxml3 - try $WINE msiexec /i "$WINETRICKS_CACHE"/msxml3.msi $WINETRICKS_QUIET + 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 } #---------------------------------------------------------------- -load_msxml4() { +load_msxml4() +{ # If this is just a dependency check, don't re-install - if test $PACKAGE != msxml4 && test -f "$SYSTEM32_DLLS"/msxml4.dll + if test $W_PACKAGE != msxml4 && test -f "$W_SYSTEM32_DLLS"/msxml4.dll then echo "prerequisite msxml4 already installed, skipping" return fi # MS06-071: http://www.microsoft.com/downloads/details.aspx?familyid=24B7D141-6CDF-4FC4-A91B-6F18FE6921D4 - # download . http://download.microsoft.com/download/e/2/e/e2e92e52-210b-4774-8cd9-3a7a0130141d/msxml4-KB927978-enu.exe d364f9fe80c3965e79f6f64609fc253dfeb69c25 + # w_download msxml4 http://download.microsoft.com/download/e/2/e/e2e92e52-210b-4774-8cd9-3a7a0130141d/msxml4-KB927978-enu.exe d364f9fe80c3965e79f6f64609fc253dfeb69c25 # MS07-042: http://www.microsoft.com/downloads/details.aspx?FamilyId=021E12F5-CB46-43DF-A2B8-185639BA2807 - # download . http://download.microsoft.com/download/9/4/2/9422e6b6-08ee-49cb-9f05-6c6ee755389e/msxml4-KB936181-enu.exe 73d75d7b41f8a3d49f272e74d4f73bb5e82f1acf + # w_download msxml4 http://download.microsoft.com/download/9/4/2/9422e6b6-08ee-49cb-9f05-6c6ee755389e/msxml4-KB936181-enu.exe 73d75d7b41f8a3d49f272e74d4f73bb5e82f1acf # SP3 (2009): http://www.microsoft.com/downloads/details.aspx?familyid=7F6C0CB4-7A5E-4790-A7CF-9E139E6819C0 - download msxml4sp3 http://download.microsoft.com/download/A/2/D/A2D8587D-0027-4217-9DAD-38AFDB0A177E/msxml.msi aa70c5c1a7a069af824947bcda1d9893a895318b - override_dlls native,builtin msxml4 - try $WINE msiexec /i "$WINETRICKS_CACHE"/msxml4sp3/msxml.msi $WINETRICKS_QUIET + w_download msxml4 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 } #---------------------------------------------------------------- -load_msxml6() { +load_msxml6() +{ # If this is just a dependency check, don't re-install - if test $PACKAGE != msxml6 && test -f "$SYSTEM32_DLLS"/msxml6.dll + # FIXME: this check broken for win64? + if test $W_PACKAGE != msxml6 && test -f "$W_SYSTEM32_DLLS"/msxml6.dll then echo "prerequisite msxml6 already installed, skipping" return fi - # http://www.microsoft.com/downloads/details.aspx?FamilyID=993c0bcf-3bcf-4009-be21-27e85e1857b1 - # download . http://download.microsoft.com/download/2/e/0/2e01308a-e17f-4bf9-bf48-161356cf9c81/msxml6.msi 2308743ddb4cb56ae910e461eeb3eab0a9e58058 # Service Pack 1 # http://www.microsoft.com/downloads/details.aspx?familyid=D21C292C-368B-4CE1-9DAB-3E9827B70604 - download . http://download.microsoft.com/download/e/a/f/eafb8ee7-667d-4e30-bb39-4694b5b3006f/msxml6_x86.msi - override_dlls native,builtin msxml6 - try $WINE msiexec /i "$WINETRICKS_CACHE"/msxml6_x86.msi $WINETRICKS_QUIET + case $W_ARCH in + win32) + w_download msxml6 http://download.microsoft.com/download/e/a/f/eafb8ee7-667d-4e30-bb39-4694b5b3006f/msxml6_x86.msi 5125220e985b33c946bbf9f60e2b222c7570bfa2 + cd "$W_CACHE"/msxml6 + w_override_dlls native,builtin msxml6 + rm -f "$W_SYSTEM32_DLLS/msxml6.dll" + w_try $WINE msiexec /i msxml6_x86.msi $W_UNATTENDED_SLASH_Q + ;; + win64) + # FIXME: Currently fails, wine bug? + w_download msxml6 http://download.microsoft.com/download/2/e/0/2e01308a-e17f-4bf9-bf48-161356cf9c81/msxml6_x64.msi 1eb84eeae7729ea5db7fe79779f4e216114261ba + cd "$W_CACHE"/msxml6 + w_override_dlls native,builtin msxml6 + w_try $WINE msiexec /i "$W_CACHE"/msxml6_x64.msi $W_UNATTENDED_SLASH_Q + ;; + esac } #---------------------------------------------------------------- -load_nvidiasdk95() { - download . http://developer.download.nvidia.com/SDK/9.5/NVIDIA_SDK_9.52.0324.0405.exe - try $WINE "$WINETRICKS_CACHE"/NVIDIA_SDK_9.52.0324.0405.exe +load_nvidiasdk95() +{ + w_download . http://developer.download.nvidia.com/SDK/9.5/NVIDIA_SDK_9.52.0324.0405.exe + w_try $WINE "$W_CACHE"/NVIDIA_SDK_9.52.0324.0405.exe } #---------------------------------------------------------------- -load_ogg() { +load_ogg() +{ # flac, ogg, speex, vorbis, ogm source, ogg source # see following URLs for more info # http://xiph.org/dshow/ @@ -3077,60 +3477,76 @@ load_ogg() { # http://cross-lfs.org/~mlankhorst/direct-schro.txt # http://www.diracvideo.org/git?p=direct-schro.git;a=summary - download . http://downloads.xiph.org/releases/oggdsf/opencodecs_0.84.17338.exe 6151ab79e6ae246208cdf707e080f01c93d95deb - try $WINE "$WINETRICKS_CACHE"/opencodecs_0.84.17338.exe $WINETRICKS_S + w_download . http://downloads.xiph.org/releases/oggdsf/opencodecs_0.84.17338.exe 6151ab79e6ae246208cdf707e080f01c93d95deb + w_try $WINE "$W_CACHE"/opencodecs_0.84.17338.exe $W_UNATTENDED_SLASH_S } #---------------------------------------------------------------- -load_ole2() { +load_ole2() +{ # http://support.microsoft.com/kb/123087/EN-US/ - download . http://download.microsoft.com/download/win31/update/2.03/win/en-us/ww1116.exe b803991c40f387464b61f606536b7c98a88245d2 - try_unzip -o $WINETRICKS_UNIXQUIET -d "$WINETRICKS_TMP" "$WINETRICKS_CACHE"/ww1116.exe - set_winver win31 - cd "$WINETRICKS_TMP" - try $WINE setup.exe - cd "$olddir" - unset_winver + w_download . http://download.microsoft.com/download/win31/update/2.03/win/en-us/ww1116.exe b803991c40f387464b61f606536b7c98a88245d2 + w_try_unzip -d "$W_TMP" "$W_CACHE"/ww1116.exe + w_set_winver win31 + cd "$W_TMP" + w_try $WINE setup.exe + w_unset_winver - override_dlls native,builtin COMPOBJ OLE2CONV OLE2DISP OLE2 - override_dlls native,builtin OLE2NLS OLE2PROX STORAGE TYPELIB + w_override_dlls native,builtin COMPOBJ OLE2CONV OLE2DISP OLE2 + w_override_dlls native,builtin OLE2NLS OLE2PROX STORAGE TYPELIB } #---------------------------------------------------------------- -load_openwatcom() { +load_opensymbol() +{ + # The OpenSymbol fonts are a replacement for the Windows Wingdings font from OpenOffice.org. + # Need to w_download from Debian since I can't find a standalone download from OpenOffice + # Note: The source download package on debian is for _all_ of OpenOffice, which is 266 MB. + w_download opensymbol http://ftp.us.debian.org/debian/pool/main/o/openoffice.org/ttf-opensymbol_3.2.1-11_all.deb 51f79c66f7361fae49053d8456ff1e0973748fb8 + w_try cd "$W_TMP" + w_try ar x "$W_CACHE/opensymbol/ttf-opensymbol_3.2.1-11_all.deb" data.tar.bz2 + w_try tar jvxf data.tar.bz2 ./usr/share/fonts/truetype/openoffice/opens___.ttf + w_try mv "$W_TMP/usr/share/fonts/truetype/openoffice/opens___.ttf" "$W_FONTSDIR_UNIX" + w_register_font opens___.ttf "OpenSymbol" +} + +#---------------------------------------------------------------- + +load_openwatcom() +{ # http://www.openwatcom.org - download . "http://ftp.openwatcom.org/ftp/open-watcom-c-win32-1.9.exe" 236ac33ebd463006be4ecd83d7ebea1c026eb55a - if [ $WINETRICKS_QUIET ] + w_download . "http://ftp.openwatcom.org/ftp/open-watcom-c-win32-1.9.exe" 236ac33ebd463006be4ecd83d7ebea1c026eb55a + if [ $W_UNATTENDED_SLASH_Q ] then # Options documented at http://bugzilla.openwatcom.org/show_bug.cgi?id=898 # But they don't seem to work on wine, so jam them into setup.inf # Pick smallest installation that supports 16 bit C and C++ - cd "$WINETRICKS_TMP" - cp "$WINETRICKS_CACHE"/open-watcom-c-win32-1.9.exe . - try_unzip open-watcom-c-win32-1.9.exe setup.inf + cd "$W_TMP" + cp "$W_CACHE"/open-watcom-c-win32-1.9.exe . + w_try_unzip open-watcom-c-win32-1.9.exe setup.inf sed -i 's/tools16=.*/tools16=true/' setup.inf - try zip -f open-watcom-c-win32-1.9.exe - try $WINE open-watcom-c-win32-1.9.exe -s - cd "$olddir" + w_try zip -f open-watcom-c-win32-1.9.exe + w_try $WINE open-watcom-c-win32-1.9.exe -s else - try $WINE "$WINETRICKS_CACHE"/open-watcom-c-win32-1.9.exe + w_try $WINE "$W_CACHE"/open-watcom-c-win32-1.9.exe fi - if test ! -f "$DRIVE_C"/WATCOM/binnt/wcc.exe + if test ! -f "$W_DRIVE_C"/WATCOM/binnt/wcc.exe then - warn "c:/watcom/binnt/wcc.exe not found; you probably didn't select 16 bit tools, and won't be able to buld win16test" + w_warn "c:/watcom/binnt/wcc.exe not found; you probably didn't select 16 bit tools, and won't be able to buld win16test" fi } #---------------------------------------------------------------- -load_pdh() { +load_pdh() +{ # http://support.microsoft.com/kb/284996 - download . http://download.microsoft.com/download/platformsdk/Redist/5.0.2195.2668/NT4/EN-US/pdhinst.exe f42448660def8cd7f42b34aa7bc7264745f4425e - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/pdhinst.exe - try_unzip -o $WINETRICKS_UNIXQUIET -d "$WINETRICKS_TMP" "$WINETRICKS_TMP"/pdh.exe - try cp -f "$WINETRICKS_TMP"/x86/Pdh.Dll "$SYSTEM32_DLLS"/pdh.dll + 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"/pdhinst.exe + w_try_unzip -d "$W_TMP" "$W_TMP"/pdh.exe + w_try cp -f "$W_TMP"/x86/Pdh.Dll "$W_SYSTEM32_DLLS"/pdh.dll } #---------------------------------------------------------------- @@ -3138,10 +3554,11 @@ load_pdh() { load_physx() { # http://www.nvidia.com/object/physx_9.09.0814.html - # download . http://us.download.nvidia.com/Windows/9.09.0814/PhysX_9.09.0814_SystemSoftware.exe e19f7c3385a4a68e7acb85301bb4d2d0d1eaa1e2 + # w_download physx 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 - download . http://us.download.nvidia.com/Windows/9.10.0129/PhysX_9.10.0129_SystemSoftware.exe 33a8b54d842c7246946de15b1a48209c386c9c4b - try $WINE "$WINETRICKS_CACHE"/PhysX_9.10.0129_SystemSoftware.exe $WINETRICKS_QUIET + w_download physx http://us.download.nvidia.com/Windows/9.10.0129/PhysX_9.10.0129_SystemSoftware.exe 33a8b54d842c7246946de15b1a48209c386c9c4b + cd "$W_CACHE"/physx + w_try $WINE PhysX_9.10.0129_SystemSoftware.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- @@ -3152,11 +3569,10 @@ load_psdk2003() # Note: aborts on 64 bit windows with dialog saying "don't run on WoW" # http://www.microsoft.com/downloads/details.aspx?familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb - download psdk2003 http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-x86.exe 5c7dc2e1eb902b376d7797cc383fefdfc64ff9c9 + w_download psdk2003 http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-x86.exe 5c7dc2e1eb902b376d7797cc383fefdfc64ff9c9 echo "This can take up to an hour." - cd "$WINETRICKS_CACHE"/psdk2003 - try $WINE PSDK-x86.exe - cd "$olddir" + cd "$W_CACHE"/psdk2003 + w_try $WINE PSDK-x86.exe } #---------------------------------------------------------------- @@ -3164,13 +3580,12 @@ load_psdk2003() load_psdkvista() { # http://www.microsoft.com/downloads/details.aspx?familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb - warn "Vista SDK doesn't work yet as of wine-1.1.28" + w_warn "Vista SDK doesn't work yet as of wine-1.1.28" load_dotnet20 - download psdkvista download.microsoft.com/download/c/a/1/ca145d10-e254-475c-85f9-1439f4cd2a9e/Setup.exe 756c21a7fc9b831f7200f3f44ae55cc7689e8063 - #chmod +x "$WINETRICKS_CACHE"/psdkvista/Setup.exe - cd "$WINETRICKS_CACHE"/psdkvista - try $WINE Setup.exe - cd "$olddir" + w_download psdkvista download.microsoft.com/download/c/a/1/ca145d10-e254-475c-85f9-1439f4cd2a9e/Setup.exe 756c21a7fc9b831f7200f3f44ae55cc7689e8063 + #chmod +x "$W_CACHE"/psdkvista/Setup.exe + cd "$W_CACHE"/psdkvista + w_try $WINE Setup.exe } #---------------------------------------------------------------- @@ -3186,16 +3601,15 @@ load_psdkwin7() # 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 - download psdkwin7 http://download.microsoft.com/download/7/A/B/7ABD2203-C472-4036-8BA0-E505528CCCB7/winsdk_web.exe a01dcc67a38f461e80ea649edf1353f306582507 - cd "$WINETRICKS_CACHE"/psdkwin7 - 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" - try $WINE winsdk_web.exe - cd "$olddir" + w_download psdkwin7 http://download.microsoft.com/download/7/A/B/7ABD2203-C472-4036-8BA0-E505528CCCB7/winsdk_web.exe a01dcc67a38f461e80ea649edf1353f306582507 + cd "$W_CACHE"/psdkwin7 + 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" + w_try $WINE winsdk_web.exe # FIXME: don't do this if running on real Windows? # Work around bug http://bugs.winehq.org/show_bug.cgi?id=21362 # Assume user installed in default location - cat > "$WINETRICKS_TMP"/set-psdk7.reg <<_EOF_ + cat > "$W_TMP"/set-psdk7.reg <<_EOF_ REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs] @@ -3209,82 +3623,84 @@ REGEDIT4 "ProductVersion"="7.0.7600.16385.40715" "ProductName"="Microsoft Windows SDK for Windows 7 (7.0.7600.16385.40715)" _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\set-psdk7.reg + w_try_regedit "$W_TMP_WIN"\\set-psdk7.reg } #---------------------------------------------------------------- -load_python26() { +load_python26() +{ # If this is just a dependency check, don't re-install - if test $PACKAGE != python26 && test -f "$WINEPREFIX"/drive_c/Python26/python.exe + if test $W_PACKAGE != python26 && test -f "$WINEPREFIX"/drive_c/Python26/python.exe then echo "prerequisite python26 already installed, skipping" return fi - download . http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi 2d1503b0e8b7e4c72a276d4d9027cf4856b208b8 - download . $SOURCEFORGE/project/pywin32/pywin32/Build%20214/pywin32-214.win32-py2.6.exe eca58f29b810d8e3e7951277ebb3e35ac35794a3 - cd "$WINETRICKS_CACHE" - try $WINE msiexec /i python-2.6.2.msi ALLUSERS=1 $WINETRICKS_QUIET + w_download . http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi 2d1503b0e8b7e4c72a276d4d9027cf4856b208b8 + w_download . $SOURCEFORGE/project/pywin32/pywin32/Build%20214/pywin32-214.win32-py2.6.exe eca58f29b810d8e3e7951277ebb3e35ac35794a3 + cd "$W_CACHE" + w_try $WINE msiexec /i python-2.6.2.msi ALLUSERS=1 $W_UNATTENDED_SLASH_Q # FIXME: unzip this instead of running it if quiet install? - try $WINE pywin32-214.win32-py2.6.exe - cd "$olddir" + w_try $WINE pywin32-214.win32-py2.6.exe } #---------------------------------------------------------------- -load_python_comtypes() { +load_python_comtypes() +{ load_python26 - download . $SOURCEFORGE/project/comtypes/comtypes/0.6.1/comtypes-0.6.1-1.zip 814318cdae0ab2471a9cd500847bf12f4df9a57c - cd "$WINETRICKS_CACHE" - try_unzip comtypes-0.6.1-1.zip + w_download . $SOURCEFORGE/project/comtypes/comtypes/0.6.1/comtypes-0.6.1-1.zip 814318cdae0ab2471a9cd500847bf12f4df9a57c + cd "$W_CACHE" + w_try_unzip comtypes-0.6.1-1.zip cd comtypes-0.6.1 - try $WINE "C:\Python26\python.exe" setup.py install - cd "$olddir" + w_try $WINE "C:\Python26\python.exe" setup.py install } #---------------------------------------------------------------- -load_quartz() { +load_quartz() +{ helper_directx_dl - try_cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$SYSTEM32_DLLS" -L -F 'quartz.dll' "$WINETRICKS_TMP/dxnt.cab" + w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'quartz.dll' "$W_TMP/dxnt.cab" - try $WINE regsvr32 quartz.dll + w_try_regsvr quartz.dll - override_dlls native quartz + w_override_dlls native quartz } #---------------------------------------------------------------- -load_quicktime72() { +load_quicktime72() +{ echo "Quicktime needs gdiplus..." load_gdiplus echo "Quicktime needs vcrun2005..." load_vcrun2005 # http://www.apple.com/support/downloads/quicktime72forwindows.html - download quicktime72 'http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=14402&cat=59&platform=osx&method=sa/QuickTimeInstaller.exe' bb89981f10cf21de57b9453e53cf81b9194271a9 + w_download quicktime72 'http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=14402&cat=59&platform=osx&method=sa/QuickTimeInstaller.exe' bb89981f10cf21de57b9453e53cf81b9194271a9 unset QUICKTIME_QUIET - if test "$WINETRICKS_QUIET"x != x + if test "$W_UNATTENDED_SLASH_Q"x != x then QUICKTIME_QUIET="/qn" # ISSETUPDRIVEN=0 fi # set vista mode to inhibit directdraw overlay use that blacks the screen - set_winver vista - try $WINE "$WINETRICKS_CACHE"/quicktime72/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 test "$WINETRICKS_QUIET"x = x + w_set_winver vista + w_try $WINE "$W_CACHE"/quicktime72/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 test "$W_UNATTENDED_SLASH_Q"x = x then echo "You probably want to select Advanced / Safe Mode in the Quicktime control panel" - try $WINE control "$programfilesdir_win\\QuickTime\\QTSystem\\QuickTime.cpl" + w_try $WINE control "$W_PROGRAMS_WIN\\QuickTime\\QTSystem\\QuickTime.cpl" fi - unset_winver + w_unset_winver # user might want to set vista mode himself, or run # wine control ".wine/drive_c/Program Files/QuickTime/QTSystem/QuickTime.cpl" # and pick Advanced / Safe Mode (gdi only). @@ -3295,29 +3711,30 @@ load_quicktime72() { #---------------------------------------------------------------- -load_quicktime76() { +load_quicktime76() +{ echo "Quicktime needs gdiplus..." load_gdiplus echo "Quicktime needs vcrun2005..." load_vcrun2005 # http://www.apple.com/quicktime/download/ - download quicktime76 'http://appldnld.apple.com/QuickTime/061-8938.20100915.Qts3T/QuickTimeInstaller.exe' 38e33492ea1200abeda87256872e5a3dd47e584f + w_download quicktime76 'http://appldnld.apple.com/QuickTime/061-8938.20100915.Qts3T/QuickTimeInstaller.exe' 38e33492ea1200abeda87256872e5a3dd47e584f unset QUICKTIME_QUIET - if test "$WINETRICKS_QUIET"x != x + if test "$W_UNATTENDED_SLASH_Q"x != x then QUICKTIME_QUIET="/qn" # ISSETUPDRIVEN=0 fi # set vista mode to inhibit directdraw overlay use that blacks the screen - set_winver vista - try $WINE "$WINETRICKS_CACHE"/quicktime76/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 test "$WINETRICKS_QUIET"x = x + w_set_winver vista + w_try $WINE "$W_CACHE"/quicktime76/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 test "$W_UNATTENDED_SLASH_Q"x = x then echo "You probably want to select Advanced / Safe Mode in the Quicktime control panel" - try $WINE control "$programfilesdir_win\\QuickTime\\QTSystem\\QuickTime.cpl" + w_try $WINE control "$W_PROGRAMS_WIN\\QuickTime\\QTSystem\\QuickTime.cpl" fi - unset_winver + w_unset_winver # user might want to set vista mode himself, or run # wine control ".wine/drive_c/Program Files/QuickTime/QTSystem/QuickTime.cpl" # and pick Advanced / Safe Mode (gdi only). @@ -3357,58 +3774,59 @@ volnum() { #---------------------------------------------------------------- -load_riched20() { +load_riched20() +{ # http://support.microsoft.com/?kbid=249973 - download . http://download.microsoft.com/download/winntsp/Patch/RTF/NT4/EN-US/Q249973i.EXE f0b7663f15dbd31410435483ba832318c7a70470 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/Q249973i.EXE - try cp -f "$WINETRICKS_TMP"/riched??.dll "$SYSTEM32_DLLS" - override_dlls native,builtin riched20 riched32 - - rm -rf "$WINETRICKS_TMP"/* + w_download . http://download.microsoft.com/download/winntsp/Patch/RTF/NT4/EN-US/Q249973i.EXE f0b7663f15dbd31410435483ba832318c7a70470 + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/Q249973i.EXE + w_try cp -f "$W_TMP"/riched??.dll "$W_SYSTEM32_DLLS" + w_override_dlls native,builtin riched20 riched32 } #---------------------------------------------------------------- -load_riched30() { +load_riched30() +{ # http://www.novell.com/documentation/nm1/readmeen_web/readmeen_web.html#Akx3j64 # claims that Groupwise Messenger's View / Text Size command # only works with riched30, and recommends getting it by installing # msi 2, which just happens to come with riched30 version of riched20 # (though not with a corresponding riched32, which might be a problem) # http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=CEBBACD8-C094-4255-B702-DE3BB768148F - download . http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/InstMsiA.exe - try cp -f "$WINETRICKS_TMP"/riched20.dll "$SYSTEM32_DLLS" - override_dlls native,builtin riched20 - - rm -rf "$WINETRICKS_TMP"/* + w_download . http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366 + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/InstMsiA.exe + w_try cp -f "$W_TMP"/riched20.dll "$W_SYSTEM32_DLLS" + w_override_dlls native,builtin riched20 } #---------------------------------------------------------------- -load_richtx32() { - download . http://activex.microsoft.com/controls/vb6/richtx32.cab da404b566df3ad74fe687c39404a36c3e7cadc07 - try_cabextract "$WINETRICKS_CACHE"/richtx32.cab -d "$SYSTEM32_DLLS" -F RichTx32.Ocx - try $WINE regsvr32 RichTx32.ocx +load_richtx32() +{ + w_download . http://activex.microsoft.com/controls/vb6/richtx32.cab da404b566df3ad74fe687c39404a36c3e7cadc07 + w_try_cabextract "$W_CACHE"/richtx32.cab -d "$W_SYSTEM32_DLLS" -F RichTx32.Ocx + w_try_regsvr RichTx32.ocx } #---------------------------------------------------------------- -load_secur32(){ +load_secur32() +{ # http://www.microsoft.com/downloads/details.aspx?familyid=c4e408d7-6716-4a12-ad3a-8029667f5c84 - download . http://download.microsoft.com/download/6/9/5/69501788-B62F-44D8-933F-B6FAA576CA87/Windows2000-KB959426-x86-ENU.EXE bf930a4d2982165a0793465bb255d494ba5b4cf7 - try_cabextract "$WINETRICKS_CACHE"/Windows2000-KB959426-x86-ENU.EXE -d "$SYSTEM32_DLLS" -F secur32.dll - override_dlls native,builtin secur32 + w_download secur32 http://download.microsoft.com/download/6/9/5/69501788-B62F-44D8-933F-B6FAA576CA87/Windows2000-KB959426-x86-ENU.EXE bf930a4d2982165a0793465bb255d494ba5b4cf7 + w_try_cabextract "$W_CACHE"/secur32/Windows2000-KB959426-x86-ENU.EXE -d "$W_SYSTEM32_DLLS" -F secur32.dll + w_override_dlls native,builtin secur32 } #---------------------------------------------------------------- -load_safari() { +load_safari() +{ - download . http://appldnld.apple.com.edgesuite.net/content.info.apple.com/Safari5/061-7138.20100607.Y7U87/SafariSetup.exe e56d5d79d9cfbb85ac46ac78aa497d7f3d8dbc3d - cd "$WINETRICKS_CACHE" + w_download . http://appldnld.apple.com.edgesuite.net/content.info.apple.com/Safari5/061-7138.20100607.Y7U87/SafariSetup.exe e56d5d79d9cfbb85ac46ac78aa497d7f3d8dbc3d + cd "$W_CACHE" # Workaround http://bugs.winehq.org/show_bug.cgi?id=21146 - try mkdir -p "$appdata_unix/Apple Computer/Preferences" + w_try mkdir -p "$appdata_unix/Apple Computer/Preferences" cat > "$appdata_unix/Apple Computer/Preferences/com.apple.Safari.plist" <<_EOF_ @@ -3420,22 +3838,23 @@ load_safari() { _EOF_ - if test "$WINETRICKS_QUIET" + if test "$W_UNATTENDED_SLASH_Q" then - 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." - try $WINE SafariSetup.exe /qn + 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 else - try $WINE SafariSetup.exe + w_try $WINE SafariSetup.exe fi } #---------------------------------------------------------------- -load_shockwave() { +load_shockwave() +{ # Not silent enough, use msi instead - #download . http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/Shockwave_Installer_Full.exe 840e34e9b067cf247bfa9092665b8966158f38e3 - #try $WINE "$WINETRICKS_CACHE"/Shockwave_Installer_Full.exe $WINETRICKS_S + #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 # old sha1sum: 6a91a9da4b54c3fdc97130a15e1a173117e5f4ff # 2009-07-31 sha1sum: 0bb506ef67a268e8d3fb6c7ce556320ee10b9da5 # 2009-12-13 sha1sum: d35649883bf13cb1a86f5650e1050d15533ac0f4 @@ -3444,67 +3863,74 @@ load_shockwave() { # 2010-09-02 sha1sum: fed20eccc29fec2f64162b7265343514d43884bc # 2010-11-03 sha1sum: 2ff28665543e80f3bd4ff1933ac05ec9314aaac6 - download . http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/sw_lic_full_installer.msi 2ff28665543e80f3bd4ff1933ac05ec9314aaac6 - try $WINE msiexec /i "$WINETRICKS_CACHE"/sw_lic_full_installer.msi $WINETRICKS_QUIET + w_download . http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/sw_lic_full_installer.msi 2ff28665543e80f3bd4ff1933ac05ec9314aaac6 + w_try $WINE msiexec /i "$W_CACHE"/sw_lic_full_installer.msi $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_steam() { - download . http://storefront.steampowered.com/download/SteamInstall.msi a0ca8791b7b2e96665ee059e03eebbfb3d95be55 - try $WINE msiexec /i "$WINETRICKS_CACHE"/SteamInstall.msi $WINETRICKS_QUIET - if ! test -f "$WINDIR/Fonts/Times.TTF" +load_steam() +{ + if ! test -f "$W_FONTSDIR_UNIX/Times.TTF" then - warn "Installing corefonts to prvent a Steam crash; see wine bug 22751" + w_warn "Installing corefonts to prvent a Steam crash; see wine bug 22751" load_corefonts fi - warn "Once Steam is running, disable player notifications and in-game chat in Settings, or games will crash on launch; see wine bug 22053" + w_download steam http://storefront.steampowered.com/download/SteamInstall.msi a0ca8791b7b2e96665ee059e03eebbfb3d95be55 + cd "$W_CACHE"/steam + w_try $WINE msiexec /i SteamInstall.msi $W_UNATTENDED_SLASH_Q + if w_workaround_wine_bug 22053 + then + w_warn "Once Steam is running, disable player notifications and in-game chat in Settings, or games will crash on launch; see wine bug 22053" + fi } #---------------------------------------------------------------- -load_tahoma() { +load_tahoma() +{ # The tahoma and tahomabd fonts are needed by e.g. Steam - download . http://download.microsoft.com/download/office97pro/fonts/1/w95/en-us/tahoma32.exe 888ce7b7ab5fd41f9802f3a65fd0622eb651a068 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/tahoma32.exe - try cp -f "$WINETRICKS_TMP"/Tahoma.TTF "$winefontsdir"/tahoma.ttf - try cp -f "$WINETRICKS_TMP"/Tahomabd.TTF "$winefontsdir"/tahomabd.ttf - chmod +w "$winefontsdir"/tahoma*.ttf - rm -rf "$WINETRICKS_TMP"/* + w_download tahoma 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 + chmod +w "$W_FONTSDIR_UNIX"/tahoma*.ttf } #---------------------------------------------------------------- -load_takao() { +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 - download . http://launchpad.net/takao-fonts/003.02/003.02.01/+download/takao-fonts-ttf-003.02.01.zip 4f636d5c7c1bc16b96ea723adb16838cfb6df059 - cp -f $WINETRICKS_CACHE/takao-fonts-ttf-003.02.01.zip $WINETRICKS_TMP - try_unzip -d $WINETRICKS_TMP $WINETRICKS_TMP/takao-fonts-ttf-003.02.01.zip - try cp -f "$WINETRICKS_TMP"/takao-fonts-ttf-003.02.01/*.ttf "$winefontsdir" + w_download . http://launchpad.net/takao-fonts/003.02/003.02.01/+download/takao-fonts-ttf-003.02.01.zip 4f636d5c7c1bc16b96ea723adb16838cfb6df059 + cp -f "$W_CACHE"/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 cp -f "$W_TMP"/takao-fonts-ttf-003.02.01/*.ttf "$W_FONTSDIR_UNIX" - register_font TakaoGothic.ttf "TakaoGothic" - register_font TakaoPGothic.ttf "TakaoPGothic" - register_font TakaoMincho.ttf "TakaoMincho" - register_font TakaoPMincho.ttf "TakaoPMincho" - register_font TakaoExGothic.ttf "TakaoExGothic" - register_font TakaoExMincho.ttf "TakaoExMincho" + w_register_font TakaoGothic.ttf "TakaoGothic" + w_register_font TakaoPGothic.ttf "TakaoPGothic" + w_register_font TakaoMincho.ttf "TakaoMincho" + w_register_font TakaoPMincho.ttf "TakaoPMincho" + w_register_font TakaoExGothic.ttf "TakaoExGothic" + w_register_font TakaoExMincho.ttf "TakaoExMincho" } #---------------------------------------------------------------- -load_unifont() { +load_unifont() +{ # The GNU Unifont provides glyphs for just about everything in common language. It is intended for multilingual usage. # See http://unifoundry.com/unifont.html for project page - download . http://unifoundry.com/unifont-5.1.20080907.zip bb8a3960dc0a96aa305de28312ea8a0ab64123d2 - cp -f $WINETRICKS_CACHE/unifont-5.1.20080907.zip $WINETRICKS_TMP - try_unzip -d $WINETRICKS_TMP $WINETRICKS_TMP/unifont-5.1.20080907.zip - try cp -f "$WINETRICKS_TMP"/unifont-5.1.20080907.ttf "$winefontsdir/unifont.ttf" + w_download . http://unifoundry.com/unifont-5.1.20080907.zip bb8a3960dc0a96aa305de28312ea8a0ab64123d2 + cp -f "$W_CACHE"/unifont-5.1.20080907.zip "$W_TMP" + w_try_unzip -d "$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" - register_font unifont.ttf "Unifont" + w_register_font unifont.ttf "Unifont" - cat > "$WINETRICKS_TMP"/unifont.reg <<_EOF_ + cat > "$W_TMP"/unifont.reg <<_EOF_ REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes] @@ -3512,231 +3938,233 @@ REGEDIT4 _EOF_ - try_regedit "$WINETRICKS_TMP_WIN"\\unifont.reg + w_try_regedit "$W_TMP_WIN"\\unifont.reg } #---------------------------------------------------------------- #---------------------------------------------------------------- -load_urlmon() { - # This is an updated urlmon from IE 6.0 - # See http://www.microsoft.com/downloads/details.aspx?familyid=85BB441A-5BB1-4A82-86EC-A249AF287513 - # (Works for Dolphin Smalltalk, see http://bugs.winehq.org/show_bug.cgi?id=8258) - download . http://download.microsoft.com/download/8/2/0/820faffc-3ea0-4914-bca3-584235964ded/Q837251.exe bcc79b92ac3c06c4de3692672c3d70bdd36be892 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE/Q837251.exe" - try cp -f "$WINETRICKS_TMP"/URLMON.DLL "$SYSTEM32_DLLS"/urlmon.dll - override_dlls native,builtin urlmon -} - -load_usp10() { +load_usp10() +{ # http://www.microsoft.com/downloads/details.aspx?familyid=cebbacd8-c094-4255-b702-de3bb768148f - download . http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366 - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/InstMsiA.exe - try cp -f "$WINETRICKS_TMP"/usp10.dll "$SYSTEM32_DLLS" - override_dlls native,builtin usp10 + w_download . http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366 + w_try_cabextract --directory="$W_TMP" "$W_CACHE"/InstMsiA.exe + w_try cp -f "$W_TMP"/usp10.dll "$W_SYSTEM32_DLLS" + w_override_dlls native,builtin usp10 } #---------------------------------------------------------------- -load_utorrent() { +load_utorrent() +{ # Torrent client supported on Windows,Mac OSX, Linux through WINE - # Oct 2010 sha1sum 8382b8a7bc625d68b6efe18a7b9e5488dc0119ee - # Nov 6 2010 sha1sum 263a91693d0976473cd321cd6f1b0103a814f3adx - download . http://download.utorrent.com/2.0.4/utorrent.exe 263a91693d0976473cd321cd6f1b0103a814f3ad + # Oct 2010 2.0.4 sha1sum 8382b8a7bc625d68b6efe18a7b9e5488dc0119ee + # Nov 6 2010 2.0.4 sha1sum 263a91693d0976473cd321cd6f1b0103a814f3ad + # Dev 17 2010 2.2 sha1sum 0c95bdfba07421fe706b30ee2ec6779217c5dce4, hangs, see wine bug 24946 + w_download utorrent http://download.utorrent.com/2.0.4/utorrent.exe 263a91693d0976473cd321cd6f1b0103a814f3ad - try cp -f "$WINETRICKS_CACHE"/utorrent.exe "$WINDIR"/utorrent.exe - warn "utorrent is now installed to $WINDIR/utorrent.exe" + w_try cp -f "$W_CACHE"/utorrent/utorrent.exe "$W_WINDIR_UNIX"/utorrent.exe + w_warn "utorrent is now installed to $W_WINDIR_UNIX/utorrent.exe" } #---------------------------------------------------------------- -load_vb2run() { +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 - download . ftp://ftp.microsoft.com/Softlib/MSLFILES/VBRUN200.EXE ac0568b73ee375408778e9b505df995f79ab907e - try_unzip -o $WINETRICKS_UNIXQUIET -d "$WINETRICKS_TMP" "$WINETRICKS_CACHE"/VBRUN200.EXE - try cp -f "$WINETRICKS_TMP/VBRUN200.DLL" "$SYSTEM32_DLLS" + w_download . ftp://ftp.microsoft.com/Softlib/MSLFILES/VBRUN200.EXE ac0568b73ee375408778e9b505df995f79ab907e + w_try_unzip -d "$W_TMP" "$W_CACHE"/VBRUN200.EXE + w_try cp -f "$W_TMP/VBRUN200.DLL" "$W_SYSTEM32_DLLS" } #---------------------------------------------------------------- -load_vb3run() { +load_vb3run() +{ # See http://support.microsoft.com/kb/196285 - download . http://download.microsoft.com/download/vb30/utility/1/w9xnt4/en-us/vb3run.exe 518fcfefde9bf680695cadd06512efadc5ac2aa7 - try_unzip -o $WINETRICKS_UNIXQUIET -d "$WINETRICKS_TMP" "$WINETRICKS_CACHE"/vb3run.exe - try cp -f "$WINETRICKS_TMP/Vbrun300.dll" "$SYSTEM32_DLLS" + 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.exe + w_try cp -f "$W_TMP/Vbrun300.dll" "$W_SYSTEM32_DLLS" } #---------------------------------------------------------------- -load_vb4run() { +load_vb4run() +{ # See http://support.microsoft.com/kb/196286 - download . http://download.microsoft.com/download/vb40ent/sample27/1/w9xnt4/en-us/vb4run.exe 83e968063272e97bfffd628a73bf0ff5f8e1023b - try_unzip -o $WINETRICKS_UNIXQUIET -d "$WINETRICKS_TMP" "$WINETRICKS_CACHE"/vb4run.exe - try cp -f "$WINETRICKS_TMP/Vb40032.dll" "$SYSTEM32_DLLS" - try cp -f "$WINETRICKS_TMP/Vb40016.dll" "$SYSTEM32_DLLS" + 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.exe + w_try cp -f "$W_TMP/Vb40032.dll" "$W_SYSTEM32_DLLS" + w_try cp -f "$W_TMP/Vb40016.dll" "$W_SYSTEM32_DLLS" } #---------------------------------------------------------------- -load_vbvm50() { - download . http://download.microsoft.com/download/vb50pro/utility/1/win98/en-us/msvbvm50.exe 28bfaf09b8ac32cf5ffa81252f3e2fadcb3a8f27 - try $WINE "$WINETRICKS_CACHE"/msvbvm50.exe $WINETRICKS_QUIET +load_vbvm50() +{ + w_download . http://download.microsoft.com/download/vb50pro/utility/1/win98/en-us/msvbvm50.exe 28bfaf09b8ac32cf5ffa81252f3e2fadcb3a8f27 + w_try $WINE "$W_CACHE"/msvbvm50.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_vbrun60() { - if test ! -f "$WINETRICKS_CACHE"/vbrun60sp6.exe +load_vbrun60() +{ + if test ! -f "$W_CACHE"/vbrun60sp6.exe then - download . http://download.microsoft.com/download/5/a/d/5ad868a0-8ecd-4bb0-a882-fe53eb7ef348/VB6.0-KB290887-X86.exe 73ef177008005675134d2f02c6f580515ab0d842 - rm -rf "$WINETRICKS_TMP"/* + w_download . http://download.microsoft.com/download/5/a/d/5ad868a0-8ecd-4bb0-a882-fe53eb7ef348/VB6.0-KB290887-X86.exe 73ef177008005675134d2f02c6f580515ab0d842 + rm -rf "$W_TMP"/* - try $WINE "$WINETRICKS_CACHE"/VB6.0-KB290887-X86.exe "/T:$winetricks_tmp_win" /c $WINETRICKS_QUIET - if test ! -f "$WINETRICKS_TMP"/vbrun60sp6.exe + w_try $WINE "$W_CACHE"/VB6.0-KB290887-X86.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q + if test ! -f "$W_TMP"/vbrun60sp6.exe then - die vbrun60sp6.exe not found + w_die vbrun60sp6.exe not found fi - try mv "$WINETRICKS_TMP"/vbrun60sp6.exe "$WINETRICKS_CACHE" + w_try mv "$W_TMP"/vbrun60sp6.exe "$W_CACHE" fi # Delete some fake DLLs to ensure that the installer overwrites them. - rm -f "$SYSTEM32_DLLS"/comcat.dll - rm -f "$SYSTEM32_DLLS"/oleaut32.dll - rm -f "$SYSTEM32_DLLS"/olepro32.dll - rm -f "$SYSTEM32_DLLS"/stdole2.tlb + rm -f "$W_SYSTEM32_DLLS"/comcat.dll + rm -f "$W_SYSTEM32_DLLS"/oleaut32.dll + rm -f "$W_SYSTEM32_DLLS"/olepro32.dll + rm -f "$W_SYSTEM32_DLLS"/stdole2.tlb # Exits with status 43 for some reason? - $WINE "$WINETRICKS_CACHE"/vbrun60sp6.exe $WINETRICKS_QUIET + $WINE "$W_CACHE"/vbrun60sp6.exe $W_UNATTENDED_SLASH_Q status=$? case $status in 0|43) ;; - *) die $PACKAGE installation failed + *) w_die $W_PACKAGE installation failed esac } #---------------------------------------------------------------- -load_vcrun6() { +load_vcrun6() +{ # Load the Visual C++ 6 runtime libraries, including the elusive mfc42u.dll # If this is just a dependency check, don't re-install - if test $PACKAGE != vcrun6 && test -f "$SYSTEM32_DLLS"/mfc42u.dll + if test $W_PACKAGE != vcrun6 && test -f "$W_SYSTEM32_DLLS"/mfc42u.dll then echo "prerequisite vcrun6 already installed, skipping" return fi - if test ! -f "$WINETRICKS_CACHE"/vcredist.exe + if test ! -f "$W_CACHE"/vcredist.exe then - download . http://download.microsoft.com/download/vc60pro/update/1/w9xnt4/en-us/vc6redistsetup_enu.exe 382c8f5a7f41189af8d4165cf441f274b7e2a457 - rm -rf "$WINETRICKS_TMP"/* + w_download . http://download.microsoft.com/download/vc60pro/update/1/w9xnt4/en-us/vc6redistsetup_enu.exe 382c8f5a7f41189af8d4165cf441f274b7e2a457 + rm -rf "$W_TMP"/* - try $WINE "$WINETRICKS_CACHE"/vc6redistsetup_enu.exe "/T:$winetricks_tmp_win" /c $WINETRICKS_QUIET - if test ! -f "$WINETRICKS_TMP"/vcredist.exe + w_try $WINE "$W_CACHE"/vc6redistsetup_enu.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q + if test ! -f "$W_TMP"/vcredist.exe then - die vcredist.exe not found + w_die vcredist.exe not found fi - mv "$WINETRICKS_TMP"/vcredist.exe "$WINETRICKS_CACHE" + mv "$W_TMP"/vcredist.exe "$W_CACHE" fi # Delete some fake dlls to avoid vcredist installer warnings - rm -f "$SYSTEM32_DLLS"/comcat.dll - rm -f "$SYSTEM32_DLLS"/msvcrt.dll - rm -f "$SYSTEM32_DLLS"/oleaut32.dll - rm -f "$SYSTEM32_DLLS"/olepro32.dll - rm -f "$SYSTEM32_DLLS"/stdole2.tlb + rm -f "$W_SYSTEM32_DLLS"/comcat.dll + rm -f "$W_SYSTEM32_DLLS"/msvcrt.dll + rm -f "$W_SYSTEM32_DLLS"/oleaut32.dll + rm -f "$W_SYSTEM32_DLLS"/olepro32.dll + rm -f "$W_SYSTEM32_DLLS"/stdole2.tlb # vcredist still exits with status 43. Anyone know why? - $WINE "$WINETRICKS_CACHE"/vcredist.exe + $WINE "$W_CACHE"/vcredist.exe status=$? case $status in 0|43) ;; - *) die $PACKAGE installation failed + *) w_die $W_PACKAGE installation failed esac # And then some apps need mfc42u.dll, dunno what right way # is to get it, vcredist doesn't install it by default? - try_cabextract "$WINETRICKS_CACHE"/vcredist.exe -d "$SYSTEM32_DLLS" -F mfc42u.dll + w_try_cabextract "$W_CACHE"/vcredist.exe -d "$W_SYSTEM32_DLLS" -F mfc42u.dll - override_dlls native,builtin msvcrt + w_override_dlls native,builtin msvcrt } #---------------------------------------------------------------- -load_vcrun6sp6() { +load_vcrun6sp6() +{ if test ! -f vcredistsp6.exe then - download . http://download.microsoft.com/download/1/9/f/19fe4660-5792-4683-99e0-8d48c22eed74/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. We'll also try to avoid + # so we'll simplify extraction with cabextract. We'll also w_try to avoid # overwriting the older vcrun6 redist by renaming the extracted file. - try_cabextract "$WINETRICKS_CACHE"/Vs6sp6.exe -d "$WINETRICKS_TMP" -F vcredist.exe - try mv "$WINETRICKS_TMP"/vcredist.exe "$WINETRICKS_CACHE"/vcredistsp6.exe + w_try_cabextract "$W_CACHE"/Vs6sp6.exe -d "$W_TMP" -F vcredist.exe + w_try mv "$W_TMP"/vcredist.exe "$W_CACHE"/vcredistsp6.exe fi # Delete some fake dlls to avoid vcredist installer warnings - try rm -f "$SYSTEM32_DLLS"/comcat.dll - try rm -f "$SYSTEM32_DLLS"/msvcrt.dll - try rm -f "$SYSTEM32_DLLS"/oleaut32.dll - try rm -f "$SYSTEM32_DLLS"/olepro32.dll - try rm -f "$SYSTEM32_DLLS"/stdole2.tlb + w_try rm -f "$W_SYSTEM32_DLLS"/comcat.dll + w_try rm -f "$W_SYSTEM32_DLLS"/msvcrt.dll + w_try rm -f "$W_SYSTEM32_DLLS"/oleaut32.dll + 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 "$WINETRICKS_CACHE"/vcredistsp6.exe + $WINE "$W_CACHE"/vcredistsp6.exe status=$? case $status in 0|43) ;; - *) die $PACKAGE installation failed + *) w_die $W_PACKAGE installation failed esac # And then some apps need mfc42u.dll, dunno what right way # is to get it, vcredist doesn't install it by default? - try_cabextract "$WINETRICKS_CACHE"/vcredistsp6.exe -d "$SYSTEM32_DLLS" -F mfc42u.dll + w_try_cabextract "$W_CACHE"/vcredistsp6.exe -d "$W_SYSTEM32_DLLS" -F mfc42u.dll - override_dlls native,builtin msvcrt + w_override_dlls native,builtin msvcrt } #---------------------------------------------------------------- -load_vcrun2003() { +load_vcrun2003() +{ # Load the Visual C++ 2003 runtime libraries # Sadly, I know of no Microsoft URL for these echo "Installing BZFlag (which comes with the Visual C++ 2003 runtimes)" - download . $SOURCEFORGE/bzflag/BZEditW32_1.6.5_Installer.exe bdd1b32c4202fd77e6513fd507c8236888b09121 - try $WINE "$WINETRICKS_CACHE"/BZEditW32_1.6.5_Installer.exe $WINETRICKS_S - try cp "$programfilesdir_unix/BZEdit1.6.5"/m*71* "$SYSTEM32_DLLS" + w_download . $SOURCEFORGE/bzflag/BZEditW32_1.6.5_Installer.exe bdd1b32c4202fd77e6513fd507c8236888b09121 + w_try $WINE "$W_CACHE"/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" } #---------------------------------------------------------------- -load_vcrun2005() { +load_vcrun2005() +{ # Load the latest Visual C++ 2005 runtime libraries # If this is just a dependency check, don't re-install # SP1 + ATL security fix build 4053 (MS09-035) # See http://www.microsoft.com/downloads/details.aspx?familyid=766A6AF7-EC73-40FF-B072-9112BAB119C2 - if test $PACKAGE != vcrun2005 && test -d "$WINDIR"/winsxs/x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_b77cec8e + if test $W_PACKAGE != vcrun2005 && test -d "$W_WINDIR_UNIX"/winsxs/x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_b77cec8e then echo "prerequisite vcrun2005 already installed, skipping" return fi - download vcrun2005-ms09-035 http://download.microsoft.com/download/6/B/B/6BB661D6-A8AE-4819-B79F-236472F6070C/vcredist_x86.exe e052789ebad7dc8d6f8505a9295b0576babd125e - cd "$WINETRICKS_CACHE" + w_download vcrun2005-ms09-035 http://download.microsoft.com/download/6/B/B/6BB661D6-A8AE-4819-B79F-236472F6070C/vcredist_x86.exe e052789ebad7dc8d6f8505a9295b0576babd125e + cd "$W_CACHE" cd vcrun2005-ms09-035 - override_dlls native,builtin msvcr80 - try $WINE vcredist_x86.exe $WINETRICKS_QUIET - cd "$olddir" + w_override_dlls native,builtin msvcr80 + w_try $WINE vcredist_x86.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_vcrun2008() { +load_vcrun2008() +{ # For the moment, assume windows already has this. case "$OS" in "Windows_NT") @@ -3753,40 +4181,47 @@ load_vcrun2008() { # If this is just a dependency check, don't re-install # SP1 + ATL security fix build 4148 (MS09-035) # See http://www.microsoft.com/downloads/details.aspx?familyid=2051a0c1-c9b5-4b0a-a8f5-770a549fd78c - if test $PACKAGE != vcrun2008 && test -d "$WINDIR"/winsxs/x86_Microsoft.VC90.MFC_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_a57c1f53 + if test $W_PACKAGE != vcrun2008 && test -d "$W_WINDIR_UNIX"/winsxs/x86_Microsoft.VC90.MFC_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_a57c1f53 then echo "prerequisite vcrun2008 already installed, skipping" return fi - download vcrun2008-ms09-035 http://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x86.exe bd18409cfe75b88c2a9432d36d96f4bf125a3237 - override_dlls native,builtin msvcr90 - try $WINE "$WINETRICKS_CACHE"/vcrun2008-ms09-035/vcredist_x86.exe $WINETRICKS_QUIET + w_download vcrun2008-ms09-035 http://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x86.exe bd18409cfe75b88c2a9432d36d96f4bf125a3237 + w_override_dlls native,builtin msvcr90 + w_try $WINE "$W_CACHE"/vcrun2008-ms09-035/vcredist_x86.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_vcrun2010() { +load_vcrun2010() +{ # Load the Visual C++ 2010 runtime libraries # See http://www.microsoft.com/downloads/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84 - download vcrun2010 http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe 372d9c1670343d3fb252209ba210d4dc4d67d358 - override_dlls native,builtin msvcr100 + w_download vcrun2010 http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe 372d9c1670343d3fb252209ba210d4dc4d67d358 + w_override_dlls native,builtin msvcr100 # Workaround Wine bug http://bugs.winehq.org/show_bug.cgi?id=23427 load_msxml3 - try $WINE "$WINETRICKS_CACHE"/vcrun2010/vcredist_x86.exe $WINETRICKS_QUIET + w_try $WINE "$W_CACHE"/vcrun2010/vcredist_x86.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_vjrun20() { +load_vjrun20() +{ + if [ $W_ARCH = win64 ] + then + w_warn "vjrun20 depends on dotnet20, which doesn't work on 64-bit wine yet. Skipping." + return + fi load_dotnet20 # See http://www.microsoft.com/downloads/details.aspx?FamilyId=E9D87F37-2ADC-4C32-95B3-B5E3A21BAB2C - download vjrun20 http://download.microsoft.com/download/9/2/3/92338cd0-759f-4815-8981-24b437be74ef/vjredist.exe 80a098e36b90d159da915aebfbfbacf35f302bd8 - if [ $WINETRICKS_QUIET ] + w_download vjrun20 http://download.microsoft.com/download/9/2/3/92338cd0-759f-4815-8981-24b437be74ef/vjredist.exe 80a098e36b90d159da915aebfbfbacf35f302bd8 + if [ $W_UNATTENDED_SLASH_Q ] then - try $WINE "$WINETRICKS_CACHE"/vjrun20/vjredist.exe /q /C:"install /QNT" + w_try $WINE "$W_CACHE"/vjrun20/vjredist.exe /q /C:"install /QNT" else - try $WINE "$WINETRICKS_CACHE"/vjrun20/vjredist.exe + w_try $WINE "$W_CACHE"/vjrun20/vjredist.exe fi } @@ -3795,17 +4230,16 @@ load_vjrun20() { load_vc2003toolkit() { # http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-vc/2679/ANN-Microsoft-Visual-C-Toolkit-2003 - #download . http://download.microsoft.com/download/3/9/b/39bac755-0a1e-4d0b-b72c-3a158b7444c4/VCToolkitSetup.exe 956c81c3106b97042c4126b23c81885c4b5211f4 + #w_download . http://download.microsoft.com/download/3/9/b/39bac755-0a1e-4d0b-b72c-3a158b7444c4/VCToolkitSetup.exe 956c81c3106b97042c4126b23c81885c4b5211f4 # I'm going to link to this for now even though it's not straight from microsoft # because it's a developer tool rather than a runtime, and # I'm in the middle of trying to get lots of open source windows # apps to build on Wine; see http://wiki.winehq.org/UnitTestSuites # (Plus the sha1sum, which I still have from a copy straight from microsoft, # protects us somewhat against corrupted copies.) - download . http://npg.dl.ac.uk/MIDAS/MIDAS_Release/VCToolkitSetup.exe 956c81c3106b97042c4126b23c81885c4b5211f4 - cd "$WINETRICKS_CACHE" - try $WINE VCToolkitSetup.exe - cd "$olddir" + w_download . http://npg.dl.ac.uk/MIDAS/MIDAS_Release/VCToolkitSetup.exe 956c81c3106b97042c4126b23c81885c4b5211f4 + cd "$W_CACHE" + w_try $WINE VCToolkitSetup.exe } #---------------------------------------------------------------- @@ -3818,56 +4252,55 @@ load_vc2005express() load_msxml6 # http://go.microsoft.com/fwlink/?LinkId=51410 - download vc2005express http://download.microsoft.com/download/8/3/a/83aad8f9-38ba-4503-b3cd-ba28c360c27b/ENU/vcsetup.exe 0292ae1d576edd8ee5350a27113c94c9f9958d5c + w_download vc2005express http://download.microsoft.com/download/8/3/a/83aad8f9-38ba-4503-b3cd-ba28c360c27b/ENU/vcsetup.exe 0292ae1d576edd8ee5350a27113c94c9f9958d5c - if [ $WINETRICKS_QUIET ] + if [ $W_UNATTENDED_SLASH_Q ] then # Thanks to Aaron Stebner's unattended install recipe # http://blogs.msdn.com/astebner/archive/2006/03/19/555326.aspx # "http://go.microsoft.com/fwlink/?LinkId=51417" - download vc2005express http://download.microsoft.com/download/0/5/A/05AA45B9-A4BE-4872-8D57-733DF5297284/Ixpvc.exe ce0da62b5649f33c7a150de276d799fb2d68d12a + w_download vc2005express http://download.microsoft.com/download/0/5/A/05AA45B9-A4BE-4872-8D57-733DF5297284/Ixpvc.exe ce0da62b5649f33c7a150de276d799fb2d68d12a - cd "$WINETRICKS_TMP" + cd "$W_TMP" rm -rf vc2005express.tmp || true mkdir vc2005express.tmp cd vc2005express.tmp - try_cabextract "$WINETRICKS_CACHE"/vc2005express/vcsetup.exe - cp "$WINETRICKS_CACHE"/vc2005express/Ixpvc.exe . + w_try_cabextract "$W_CACHE"/vc2005express/vcsetup.exe + cp "$W_CACHE"/vc2005express/Ixpvc.exe . chmod +x Ixpvc.exe # Add /qn after ReallySuppress for a really silent install (but then you won't see any errors) - try $WINE Ixpvc /t:"$WINETRICKS_TMP_WIN\\\\vc2005express.tmp" /q:a /c:"msiexec /i vcsetup.msi VSEXTUI=1 ADDLOCAL=ALL REBOOT=ReallySuppress" + w_try $WINE Ixpvc /t:"$W_TMP_WIN\\\\vc2005express.tmp" /q:a /c:"msiexec /i vcsetup.msi VSEXTUI=1 ADDLOCAL=ALL REBOOT=ReallySuppress" cd .. rm -rf vc2005express.tmp || true else - warn "Don't forget to install the IDE, or mt.exe won't be installed" - cd "$WINETRICKS_CACHE"/vc2005express - try $WINE vcsetup.exe + w_warn "Don't forget to install the IDE, or mt.exe won't be installed" + cd "$W_CACHE"/vc2005express + w_try $WINE vcsetup.exe # The interactive installer seems to be asynchronous, so wait until one of the last files is created - while test ! -f "$programfilesdir_unix/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" + while test ! -f "$W_PROGRAMS_UNIX/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" do echo "Waiting for install to finish..." sleep 10 done fi - cd "$olddir" } #---------------------------------------------------------------- load_vc2005expresssp1() { - warn "$PACKAGE does not work yet" - if test ! -f "$programfilesdir_unix/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" + w_warn "$W_PACKAGE does not work yet" + if test ! -f "$W_PROGRAMS_UNIX/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" then - die "install vc2005express first (this verb will be merged into that once it's debugged)" + w_die "install vc2005express first (this verb will be merged into that once it's debugged)" fi # http://www.microsoft.com/downloads/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E - download vc2005express download.microsoft.com/download/7/7/3/7737290f-98e8-45bf-9075-85cc6ae34bf1/VS80sp1-KB926748-X86-INTL.exe 8b9a0172efad64774aa122f29e093ad2043b308d - try $WINE "$WINETRICKS_CACHE"/vc2005express/VS80sp1-KB926748-X86-INTL.exe + w_download vc2005express download.microsoft.com/download/7/7/3/7737290f-98e8-45bf-9075-85cc6ae34bf1/VS80sp1-KB926748-X86-INTL.exe 8b9a0172efad64774aa122f29e093ad2043b308d + w_try $WINE "$W_CACHE"/vc2005express/VS80sp1-KB926748-X86-INTL.exe } load_vcdmount() @@ -3887,37 +4320,37 @@ load_vcdmount() # Locate vcdmount.exe. VCD_DIR="Elaborate Bytes/VirtualCloneDrive" - if test ! -x "$programfilesdir_unix/$VCD_DIR/vcdmount.exe" && test ! -x "$programfilesdir_x86_unix/$VCD_DIR/vcdmount.exe" + if test ! -x "$W_PROGRAMS_UNIX/$VCD_DIR/vcdmount.exe" && test ! -x "$W_PROGRAMS_X86_UNIX/$VCD_DIR/vcdmount.exe" then - warn "Installing Virtual CloneDrive" - download . http://static.slysoft.com/SetupVirtualCloneDrive.exe + w_warn "Installing Virtual CloneDrive" + w_download . http://static.slysoft.com/SetupVirtualCloneDrive.exe # have to use cmd else vista won't let cygwin run .exe's? - chmod +x "$WINETRICKS_CACHE"/SetupVirtualCloneDrive.exe - cd "$WINETRICKS_CACHE" + chmod +x "$W_CACHE"/SetupVirtualCloneDrive.exe + cd "$W_CACHE" cmd /c SetupVirtualCloneDrive.exe cd "$olddir" fi - if test -x "$programfilesdir_unix/$VCD_DIR/vcdmount.exe" + if test -x "$W_PROGRAMS_UNIX/$VCD_DIR/vcdmount.exe" then - VCD_DIR="$programfilesdir_unix/$VCD_DIR" - elif test -x "$programfilesdir_x86_unix/$VCD_DIR/vcdmount.exe" + VCD_DIR="$W_PROGRAMS_UNIX/$VCD_DIR" + elif test -x "$W_PROGRAMS_X86_UNIX/$VCD_DIR/vcdmount.exe" then - VCD_DIR="$programfilesdir_x86_unix/$VCD_DIR" + VCD_DIR="$W_PROGRAMS_X86_UNIX/$VCD_DIR" else - die "can't find Virtual CloneDrive?" + w_die "can't find Virtual CloneDrive?" fi # FIXME: Use WMI to locate the drive named # "ELBY CLONEDRIVE..." using WMI as described in # http://delphihaven.wordpress.com/2009/07/05/using-wmi-to-get-a-drive-friendly-name/ # For now, you just have to hardcode it for your system :-( - warn "You probably need to edit the script to tell it which drive VirtualCloneDrive picked" + w_warn "You probably need to edit the script to tell it which drive VirtualCloneDrive picked" for letter in e f g h do ISO_MOUNT_ROOT=/cygdrive/$letter test -d $ISO_MOUNT_ROOT || break done - test -d $ISO_MOUNT_ROOT && die "cannot find the VirtualCloneDrive" + test -d $ISO_MOUNT_ROOT && w_die "cannot find the VirtualCloneDrive" } iso_mount() @@ -3929,7 +4362,7 @@ iso_mount() load_vcdmount my_img_win="`$XXXPATH -w $my_img | tr '\012' ' ' | sed 's/ $//'`" cd "$VCD_DIR" - try vcdmount.exe /l=$letter "$my_img_win" + w_try vcdmount.exe /l=$letter "$my_img_win" cd "$olddir" while ! test -d "$ISO_MOUNT_ROOT" do @@ -3940,12 +4373,12 @@ iso_mount() # Linux case "$SUDO" in gksudo) - try $SUDO "mkdir -p $ISO_MOUNT_ROOT" - try $SUDO "mount -o ro,loop $my_img $ISO_MOUNT_ROOT" + w_try $SUDO "mkdir -p $ISO_MOUNT_ROOT" + w_try $SUDO "mount -o ro,loop $my_img $ISO_MOUNT_ROOT" ;; *) - try $SUDO mkdir -p $ISO_MOUNT_ROOT - try $SUDO mount -o ro,loop "$my_img" $ISO_MOUNT_ROOT + w_try $SUDO mkdir -p $ISO_MOUNT_ROOT + w_try $SUDO mount -o ro,loop "$my_img" $ISO_MOUNT_ROOT ;; esac fi @@ -3964,11 +4397,11 @@ iso_umount() case "$SUDO" in gksudo) $SUDO "umount $ISO_MOUNT_ROOT" - try $SUDO "rm -rf $ISO_MOUNT_ROOT" + w_try $SUDO "rm -rf $ISO_MOUNT_ROOT" ;; *) $SUDO umount $ISO_MOUNT_ROOT - try $SUDO rm -rf $ISO_MOUNT_ROOT + w_try $SUDO rm -rf $ISO_MOUNT_ROOT ;; esac fi @@ -3983,34 +4416,35 @@ load_vc2005trial() load_msxml6 load_vcdmount - if test ! -x "$programfilesdir_unix/7-Zip/7z.exe" + if test ! -x "$W_PROGRAMS_UNIX/7-Zip/7z.exe" then - warn "Installing 7-zip file archiver for vc2005trial image extraction" + w_warn "Installing 7-zip file archiver for vc2005trial image extraction" load_7zip fi # This is the last file that 7-zip extracts. - if test ! -f "$WINETRICKS_CACHE/vc2005trial/vs/wcu/runmsi.exe" + if test ! -f "$W_CACHE/vc2005trial/vs/wcu/runmsi.exe" then - warn "Downloading/checksumming Visual C++ 2005 Trial. This will take some time!" - download . http://download.microsoft.com/download/6/f/5/6f5f7a01-50bb-422d-8742-c099c8896969/En_vs_2005_vsts_180_Trial.img f66ae07618d67e693ca0524d3582208c20e07823 - try $WINE "$programfilesdir_win"/7-Zip/7z.exe x -y -o"$WINETRICKS_CACHE_WIN"/vc2005trial "$WINETRICKS_CACHE_WIN"/En_vs_2005_vsts_180_Trial.img + w_warn "Downloading/checksumming Visual C++ 2005 Trial. This will take some time!" + w_download . http://download.microsoft.com/download/6/f/5/6f5f7a01-50bb-422d-8742-c099c8896969/En_vs_2005_vsts_180_Trial.img f66ae07618d67e693ca0524d3582208c20e07823 + w_try $WINE "$W_PROGRAMS_WIN"/7-Zip/7z.exe x -y -o"$W_CACHE_WIN"/vc2005trial "$W_CACHE_WIN"/En_vs_2005_vsts_180_Trial.img fi - verify_sha1sum 15433993ab7573c5154dbea2dcb65450f2adbf5c "$WINETRICKS_CACHE/vc2005trial/vs/wcu/runmsi.exe" + verify_sha1sum 15433993ab7573c5154dbea2dcb65450f2adbf5c "$W_CACHE/vc2005trial/vs/wcu/runmsi.exe" # FIXME: do this right rm -f /cygdrive/c/Users/$USER/AppData/local/temp/dd_vsinstall80.txt - if [ $WINETRICKS_QUIET ] + if [ $W_UNATTENDED_SLASH_Q ] then - download . "http://winezeug.googlecode.com/svn/trunk/winetricks_files/vc2005trial.ahk" e22a01c0c6f92dabd3d6d471798357b8c5c01272 - download . "http://winezeug.googlecode.com/svn/trunk/appinstall/tools/autohotkey/autohotkey.exe" 7af551a851da5ccb8a98ba980b6b19ec5892884d - try cd "$WINETRICKS_CACHE"/vc2005trial/vs/Setup - try $WINE "$WINETRICKS_CACHE_WIN"/autohotkey.exe "$WINETRICKS_CACHE_WIN"/vc2005trial.ahk + w_download . "http://winezeug.googlecode.com/svn/trunk/winetricks_files/vc2005trial.ahk" e22a01c0c6f92dabd3d6d471798357b8c5c01272 + # FIXME: use standard install of autohotkey + w_download . "http://winezeug.googlecode.com/svn/trunk/appinstall/tools/autohotkey/autohotkey.exe" 7af551a851da5ccb8a98ba980b6b19ec5892884d + w_try cd "$W_CACHE"/vc2005trial/vs/Setup + w_try $WINE "$W_CACHE_WIN"/autohotkey.exe "$W_CACHE_WIN"/vc2005trial.ahk else - try cd "$WINETRICKS_CACHE"/vc2005trial/vs/Setup - try $WINE setup.exe + w_try cd "$W_CACHE"/vc2005trial/vs/Setup + w_try $WINE setup.exe # FIXME: unify these and make the windows one right if test "$WINE" = "" @@ -4027,7 +4461,6 @@ load_vc2005trial() echo waiting for setup to finish done fi - cd "$olddir" fi } @@ -4035,19 +4468,18 @@ load_vc2005trial() load_vc2005sp1() { - if test ! -f "$programfilesdir_unix/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" + if test ! -f "$W_PROGRAMS_UNIX/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" then - die "install vc2005trial first (this verb will be merged into that once it's debugged)" + w_die "install vc2005trial first (this verb will be merged into that once it's debugged)" fi # http://www.microsoft.com/downloads/details.aspx?FamilyID=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc - download vc2005sp1 http://download.microsoft.com/download/6/3/c/63c69e5d-74c9-48ea-b905-30ac3831f288/VS80sp1-KB926601-X86-ENU.exe d4b5c73253a7a4f5b4b389f41b94fea4a7247b57 + w_download vc2005sp1 http://download.microsoft.com/download/6/3/c/63c69e5d-74c9-48ea-b905-30ac3831f288/VS80sp1-KB926601-X86-ENU.exe d4b5c73253a7a4f5b4b389f41b94fea4a7247b57 # http://www.microsoft.com/downloads/details.aspx?FamilyID=7c8729dc-06a2-4538-a90d-ff9464dc0197 - download vc2005sp1 http://download.microsoft.com/download/D/2/3/D23F9F62-3DEE-4EC0-B3B9-D64E9F573D1F/VS80sp1-KB971090-X86-INTL.exe - cd "$WINETRICKS_CACHE"/vc2005sp1 - try $WINE VS80sp1-KB926601-X86-ENU.exe - try $WINE VS80sp1-KB971090-X86-INTL.exe - cd "$olddir" + w_download vc2005sp1 http://download.microsoft.com/download/D/2/3/D23F9F62-3DEE-4EC0-B3B9-D64E9F573D1F/VS80sp1-KB971090-X86-INTL.exe + cd "$W_CACHE"/vc2005sp1 + w_try $WINE VS80sp1-KB926601-X86-ENU.exe + w_try $WINE VS80sp1-KB971090-X86-INTL.exe } #---------------------------------------------------------------- @@ -4059,7 +4491,7 @@ load_one_hotfix() downloadfile=$3 hotfix=$4 - cd "$WINETRICKS_CACHE/vs2005hotfixes" + cd "$W_CACHE/vs2005hotfixes" if test ! -f $downloadfile then case "$OS" in @@ -4071,30 +4503,29 @@ load_one_hotfix() fi while test ! -f $downloadfile do - echo "Waiting for you to save $downloadfile in $WINETRICKS_CACHE_WIN/vs2005hotfixes" + echo "Waiting for you to save $downloadfile in $W_CACHE_WIN/vs2005hotfixes" sleep 1 done if test ! -f $hotfix then - try_unzip -o $downloadfile + w_try_unzip -o $downloadfile fi - try $WINE $hotfix - cd "$olddir" + w_try $WINE $hotfix } load_vc2005hotfix() { # Loads the hotfixes recommended in http://dev.chromium.org/developers/how-tos/build-instructions-windows#TOC-Additional-free-downloads - warn "This does not work in Wine yet." - if test ! -f "$programfilesdir_unix/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" + w_warn "This does not work in Wine yet." + if test ! -f "$W_PROGRAMS_UNIX/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" then - die "install vc2005trial and vc2005sp1 first" + w_die "install vc2005trial and vc2005sp1 first" fi - mkdir -p "$WINETRICKS_CACHE/vs2005hotfixes" + mkdir -p "$W_CACHE/vs2005hotfixes" case "$OS" in - "Windows_NT") $WINE cygstart "$WINETRICKS_CACHE_WIN\\vs2005hotfixes" ;; - *) xdg-open "$WINETRICKS_CACHE/vs2005hotfixes" ;; + "Windows_NT") $WINE cygstart "$W_CACHE_WIN\\vs2005hotfixes" ;; + *) xdg-open "$W_CACHE/vs2005hotfixes" ;; esac load_one_hotfix KB935225 7258 306439_ENU_i386_zip.exe VS80sp1-KB935225-X86-ENU.exe @@ -4113,7 +4544,7 @@ save_vc2005_tarball() # In Windows, do "winetricks vc2005trial vc2005sp1 vc2005hotfix vc2005save", # then reboot to Linux, grab vc8.tgz from the Windows partition, # and do "winetricks vc2005trial vc2005load". - tar -C "$programfilesdir_x86_unix" \ + tar -C "$W_PROGRAMS_X86_UNIX" \ --exclude "Crystal Reports" \ --exclude "DIA SDK" \ --exclude "EnterpriseFrameworks" \ @@ -4131,7 +4562,7 @@ save_vc2005_tarball() load_vc2005_tarball() { - tar -C "$programfilesdir_x86_unix" -xzvf vc8.tgz + tar -C "$W_PROGRAMS_X86_UNIX" -xzvf vc8.tgz } #---------------------------------------------------------------- @@ -4143,21 +4574,21 @@ load_vc2008trial() load_msxml6 load_vcdmount - warn "Visual C++ 2008 Trial does not yet work in Wine, and this recipe isn't quite debugged even in windows yet." - warn "Downloading/checksumming Visual C++ 2008 Trial. This will take some time!" + w_warn "Visual C++ 2008 Trial does not yet work in Wine, and this recipe isn't quite debugged even in windows yet." + w_warn "Downloading/checksumming Visual C++ 2008 Trial. This will take some time!" # http://www.microsoft.com/downloads/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b - download vc2008trial http://download.microsoft.com/download/8/1/d/81d3f35e-fa03-485b-953b-ff952e402520/VS2008ProEdition90dayTrialENUX1435622.iso dfb601096f62fd75af6ad62b277be79793f53b56 + w_download vc2008trial http://download.microsoft.com/download/8/1/d/81d3f35e-fa03-485b-953b-ff952e402520/VS2008ProEdition90dayTrialENUX1435622.iso dfb601096f62fd75af6ad62b277be79793f53b56 iso_umount - iso_mount "$WINETRICKS_CACHE"/vc2008trial/VS2008ProEdition90dayTrialENUX1435622.iso + iso_mount "$W_CACHE"/vc2008trial/VS2008ProEdition90dayTrialENUX1435622.iso # FIXME: do this right rm -f /cygdrive/c/Users/$USER/AppData/local/temp/dd_vsinstall80.txt if true then - try cd "$ISO_MOUNT_ROOT/Setup" - try $WINE setup.exe + w_try cd "$ISO_MOUNT_ROOT/Setup" + w_try $WINE setup.exe # FIXME: unify these and make the windows one right if test "$WINE" = "" @@ -4174,7 +4605,6 @@ load_vc2008trial() echo waiting for setup to finish done fi - cd "$olddir" fi iso_umount @@ -4184,230 +4614,345 @@ load_vc2008trial() load_vc2008sp1() { - echo pfdu is ${programfilesdir_unix} + echo pfdu is ${W_PROGRAMS_UNIX} echo setting FOO - FOO="${programfilesdir_unix}/Microsoft Visual Studio 9.0/Microsoft Visual Studio 2008 Professional Edition - ENU" + FOO="${W_PROGRAMS_UNIX}/Microsoft Visual Studio 9.0/Microsoft Visual Studio 2008 Professional Edition - ENU" echo FOO set to $FOO if test ! -d "$FOO" then - die "install vc2008trial first (this verb will be merged into that once it's debugged)" + w_die "install vc2008trial first (this verb will be merged into that once it's debugged)" fi # http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E - download vc2008sp1 http://download.microsoft.com/download/f/6/7/f67fdf05-0586-413f-8231-affbe12f80a8/VS90sp1-KB945140-ENU.exe 91c146dffa96c6d8f9ceb2b5235b04349cf93ed9 - cd "$WINETRICKS_CACHE"/vc2008sp1 - try $WINE VS90sp1-KB945140-ENU.exe - cd "$olddir" + w_download vc2008sp1 http://download.microsoft.com/download/f/6/7/f67fdf05-0586-413f-8231-affbe12f80a8/VS90sp1-KB945140-ENU.exe 91c146dffa96c6d8f9ceb2b5235b04349cf93ed9 + cd "$W_CACHE"/vc2008sp1 + w_try $WINE VS90sp1-KB945140-ENU.exe } #---------------------------------------------------------------- -load_vlc() { - download . $SOURCEFORGE/vlc/vlc-1.1.0-win32.exe 501b6cb12d4916ed11ec9dac9e394add9227b3be - try $WINE "$WINETRICKS_CACHE"/vlc-1.1.0-win32.exe $WINETRICKS_S +load_vlc() +{ + w_download . $SOURCEFORGE/vlc/vlc-1.1.0-win32.exe 501b6cb12d4916ed11ec9dac9e394add9227b3be + w_try $WINE "$W_CACHE"/vlc-1.1.0-win32.exe $W_UNATTENDED_SLASH_S } #---------------------------------------------------------------- -load_windowscodecs() { - download . http://download.microsoft.com/download/f/f/1/ff178bb1-da91-48ed-89e5-478a99387d4f/wic_x86_enu.exe 53c18652ac2f8a51303deb48a1b7abbdb1db427f +load_windowscodecs() +{ + w_download . http://download.microsoft.com/download/f/f/1/ff178bb1-da91-48ed-89e5-478a99387d4f/wic_x86_enu.exe 53c18652ac2f8a51303deb48a1b7abbdb1db427f # Avoid a file existence check. - rm -f "$SYSTEM32_DLLS"/windowscodecs.dll - override_dlls native,builtin windowscodecs + rm -f "$W_SYSTEM32_DLLS"/windowscodecs.dll + w_override_dlls native,builtin windowscodecs # Always run the WIC installer in passive mode. # See http://bugs.winehq.org/show_bug.cgi?id=16876 and # http://bugs.winehq.org/show_bug.cgi?id=23232 - try $WINE "$WINETRICKS_CACHE"/wic_x86_enu.exe /passive + w_try $WINE "$W_CACHE"/wic_x86_enu.exe /passive } - #---------------------------------------------------------------- -load_winhttp() { +load_winhttp() +{ # See https://www.microsoft.com/downloads/en/details.aspx?FamilyID=3ee866a0-3a09-4fdf-8bdb-c906850ab9f2 - download . http://download.microsoft.com/download/5/d/8/5d802926-6bab-45fa-b96e-bee15413523b/Windows2000-KB842773-x86-ENU.EXE e676d47e065a314bbf1d15b096a67aede6b0539a - try_cabextract -d "$SYSTEM32_DLLS" -L -F winhttp.dll "$WINETRICKS_CACHE"/Windows2000-KB842773-x86-ENU.EXE - override_dlls native,builtin winhttp + w_download winhttp http://download.microsoft.com/download/5/d/8/5d802926-6bab-45fa-b96e-bee15413523b/Windows2000-KB842773-x86-ENU.EXE e676d47e065a314bbf1d15b096a67aede6b0539a + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F winhttp.dll "$W_CACHE"/winhttp/Windows2000-KB842773-x86-ENU.EXE + w_override_dlls native,builtin winhttp } #---------------------------------------------------------------- -load_wininet() { +load_wininet() +{ # This is an updated wininet from IE 5.0.1. # (Good enough for Active Worlds browser. Also helps "Avatar - Legends of the Arena" get to login screen.) # See http://www.microsoft.com/downloads/details.aspx?familyid=6DEE32AB-B618-4FB3-9A45-CDD08162E167 - download . http://download.microsoft.com/download/ie5/Update/1/WIN98/EN-US/3725.exe b048e0b4e303298de3317b16f7008c43ca71ddfe - try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE/3725.exe" - try cp -f "$WINETRICKS_TMP"/Wininet.dll "$SYSTEM32_DLLS"/wininet.dll - override_dlls native,builtin wininet + w_download . http://download.microsoft.com/download/ie5/Update/1/WIN98/EN-US/3725.exe b048e0b4e303298de3317b16f7008c43ca71ddfe + w_try_cabextract --directory="$W_TMP" "$W_CACHE/3725.exe" + w_try cp -f "$W_TMP"/Wininet.dll "$W_SYSTEM32_DLLS"/wininet.dll + w_override_dlls native,builtin wininet } #---------------------------------------------------------------- -load_wme9() { +load_wme9() +{ + if [ $W_ARCH = win64 ] + then + w_die "Installer doesn't support 64-bit architecture." + fi # See also http://www.microsoft.com/downloads/details.aspx?FamilyID=5691ba02-e496-465a-bba9-b2f1182cdf24 - download wme9 http://download.microsoft.com/download/8/1/f/81f9402f-efdd-439d-b2a4-089563199d47/WMEncoder.exe 7a3f8781f3e5705651992ef0150ee30bc1295116 + w_download wme9 http://download.microsoft.com/download/8/1/f/81f9402f-efdd-439d-b2a4-089563199d47/WMEncoder.exe 7a3f8781f3e5705651992ef0150ee30bc1295116 - try $WINE "$WINETRICKS_CACHE"/wme9/WMEncoder.exe $WINETRICKS_QUIET + w_try $WINE "$W_CACHE"/wme9/WMEncoder.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_wmp9() { +load_wmi() +{ + if test $W_ARCH = win64 + then + w_die "Installer doesn't support 64-bit architecture." + fi + + # WMI for NT4.0 need validation: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c174cfb1-ef67-471d-9277-4c2b1014a31e + # See also http://www.microsoft.com/downloads/en/details.aspx?FamilyId=98A4C5BA-337B-4E92-8C18-A63847760EA5 + w_download . http://download.microsoft.com/download/platformsdk/wmi9x/1.5/W9X/EN-US/wmi9x.exe 62752e9c1b879688c26f205eebf07d3783906c3e + + w_set_winver win98 + w_override_dlls native,builtin wbemprox.dll wmiutils.dll + # 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 + w_try $WINE "$W_CACHE"/wmi9x.exe $W_UNATTENDED_SLASH_S + w_unset_winver +} + +#---------------------------------------------------------------- + +load_wmp9() +{ # Not really expected to work well yet; see # http://appdb.winehq.org/appview.php?versionId=1449 - load_wsh57 + if [ $W_ARCH = win64 ] + then + w_die "Installer doesn't support 64-bit architecture." + fi - set_winver win2k + w_call wsh57 + + w_set_winver win2k # See also http://www.microsoft.com/windows/windowsmedia/player/9series/default.aspx - download wmp9 http://download.microsoft.com/download/1/b/c/1bc0b1a3-c839-4b36-8f3c-19847ba09299/MPSetup.exe 580536d10657fa3868de2869a3902d31a0de791b + w_download wmp9 http://download.microsoft.com/download/1/b/c/1bc0b1a3-c839-4b36-8f3c-19847ba09299/MPSetup.exe 580536d10657fa3868de2869a3902d31a0de791b + + # Also grab the codecs + # See http://www.microsoft.com/downloads/details.aspx?FamilyID=06fcaab7-dcc9-466b-b0c4-04db144bb601 + w_download wmp9 http://download.microsoft.com/download/5/c/2/5c29d825-61eb-4b16-8eb8-58367d0464d5/WM9Codecs9x.exe 8b76bdcbea0057eb12b7966edab4b942ddacc253 # Have to run twice; see http://bugs.winehq.org/show_bug.cgi?id=1886 - try $WINE "$WINETRICKS_CACHE"/wmp9/MPSetup.exe $WINETRICKS_QUIET - try $WINE "$WINETRICKS_CACHE"/wmp9/MPSetup.exe $WINETRICKS_QUIET - - # Also install the codecs - # See http://www.microsoft.com/downloads/details.aspx?FamilyID=06fcaab7-dcc9-466b-b0c4-04db144bb601 - download . http://download.microsoft.com/download/5/c/2/5c29d825-61eb-4b16-8eb8-58367d0464d5/WM9Codecs9x.exe 8b76bdcbea0057eb12b7966edab4b942ddacc253 - try $WINE "$WINETRICKS_CACHE"/WM9Codecs9x.exe $WINETRICKS_QUIET + cd "$W_CACHE"/wmp9 + w_try $WINE MPSetup.exe $W_UNATTENDED_SLASH_Q + w_try $WINE MPSetup.exe $W_UNATTENDED_SLASH_Q + w_try $WINE WM9Codecs9x.exe $W_UNATTENDED_SLASH_Q # Disable WMP's services, since they depend on unimplemented stuff, they trigger the GUI debugger several times - try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdr4_2K" - try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdralw2k" + w_try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdr4_2K" + w_try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdralw2k" - unset_winver + w_unset_winver } #---------------------------------------------------------------- -load_wmp10() { +load_wmp10() +{ # See http://appdb.winehq.org/appview.php?iVersionId=3212 load_wsh57 # See also http://www.microsoft.com/windows/windowsmedia/player/10 - download . http://download.microsoft.com/download/1/2/A/12A31F29-2FA9-4F50-B95D-E45EF7013F87/MP10Setup.exe 69862273a5d9d97b4a2e5a3bd93898d259e86657 + w_download . http://download.microsoft.com/download/1/2/A/12A31F29-2FA9-4F50-B95D-E45EF7013F87/MP10Setup.exe 69862273a5d9d97b4a2e5a3bd93898d259e86657 # Crashes on exit, but otherwise ok; see http://bugs.winehq.org/show_bug.cgi?id=12633 - echo Executing $WINE "$WINETRICKS_CACHE"/MP10Setup.exe $WINETRICKS_QUIET - try $WINE "$WINETRICKS_CACHE"/MP10Setup.exe $WINETRICKS_QUIET + echo Executing $WINE "$W_CACHE"/MP10Setup.exe $W_UNATTENDED_SLASH_Q + w_try $WINE "$W_CACHE"/MP10Setup.exe $W_UNATTENDED_SLASH_Q # Also install the codecs # See http://www.microsoft.com/downloads/details.aspx?FamilyID=06fcaab7-dcc9-466b-b0c4-04db144bb601 - download . http://download.microsoft.com/download/5/c/2/5c29d825-61eb-4b16-8eb8-58367d0464d5/WM9Codecs9x.exe 8b76bdcbea0057eb12b7966edab4b942ddacc253 - set_winver win2k - try $WINE "$WINETRICKS_CACHE"/WM9Codecs9x.exe $WINETRICKS_QUIET + w_download . http://download.microsoft.com/download/5/c/2/5c29d825-61eb-4b16-8eb8-58367d0464d5/WM9Codecs9x.exe 8b76bdcbea0057eb12b7966edab4b942ddacc253 + w_set_winver win2k + w_try $WINE "$W_CACHE"/WM9Codecs9x.exe $W_UNATTENDED_SLASH_Q # Disable WMP's services, since they depend on unimplemented stuff, they trigger the GUI debugger several times - try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdr4_2K" - try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdralw2k" + w_try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdr4_2K" + w_try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdralw2k" - unset_winver + w_unset_winver } #---------------------------------------------------------------- -load_wenquanyi() { +load_wenquanyi() +{ # See http://wenq.org/enindex.cgi # Donate at http://wenq.org/enindex.cgi?Download(en)#MicroHei_Beta if you want to help support free CJK font development - download . $SOURCEFORGE/wqy/wqy-microhei-0.2.0-beta.tar.gz 28023041b22b6368bcfae076de68109b81e77976 - cd "$WINETRICKS_TMP/" - gunzip -dc "$WINETRICKS_CACHE/wqy-microhei-0.2.0-beta.tar.gz" | tar -xf - - try mv wqy-microhei/wqy-microhei.ttc "$winefontsdir" - register_font wqy-microhei.ttc "WenQuanYi Micro Hei" - cd "$olddir" + w_download . $SOURCEFORGE/wqy/wqy-microhei-0.2.0-beta.tar.gz 28023041b22b6368bcfae076de68109b81e77976 + cd "$W_TMP/" + gunzip -dc "$W_CACHE/wqy-microhei-0.2.0-beta.tar.gz" | tar -xf - + w_try mv wqy-microhei/wqy-microhei.ttc "$W_FONTSDIR_UNIX" + w_register_font wqy-microhei.ttc "WenQuanYi Micro Hei" } #---------------------------------------------------------------- -load_wsh57() { - # If this is just a dependency check, don't re-install - if test $PACKAGE != wsh56 && test $PACKAGE != wsh57 && test -f "$SYSTEM32_DLLS"/scrrun.dll +load_wsh57() +{ + if test -f "$W_SYSTEM32_DLLS"/scrrun.dll then - echo "prerequisite wsh57 already installed, skipping" + echo "wsh57 already installed, skipping" return fi # See also http://www.microsoft.com/downloads/details.aspx?FamilyID=47809025-D896-482E-A0D6-524E7E844D81&displaylang=en - download . http://download.microsoft.com/download/4/4/d/44de8a9e-630d-4c10-9f17-b9b34d3f6417/scripten.exe b15c6a834b7029e2dfed22127cf905b06857e6f5 + w_download wsh57 http://download.microsoft.com/download/4/4/d/44de8a9e-630d-4c10-9f17-b9b34d3f6417/scripten.exe b15c6a834b7029e2dfed22127cf905b06857e6f5 - try_cabextract -d "$SYSTEM32_DLLS" "$WINETRICKS_CACHE"/scripten.exe + w_try_cabextract -d "$W_SYSTEM32_DLLS" "$W_CACHE"/wsh57/scripten.exe # Wine doesn't provide the other dll's (yet?) - override_dlls native,builtin jscript.dll - try $WINE regsvr32 dispex.dll jscript.dll scrobj.dll scrrun.dll vbscript.dll wshcon.dll wshext.dll + w_override_dlls native,builtin jscript wscript.exe + w_try_regsvr dispex.dll jscript.dll scrobj.dll scrrun.dll vbscript.dll wshcon.dll wshext.dll + + # Needed to run vbscript + cat > "$W_TMP"/vbscript.reg <<_EOF_ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\Software\Classes\.vbs] +@="vbsfile" + +[HKEY_LOCAL_MACHINE\Software\Classes\vbsfile] +@="VBScript Script File" +"FriendlyTypeName"=hex(2):40,25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,53,79,73,\ + 74,65,6d,33,32,5c,77,73,68,65,78,74,2e,64,6c,6c,2c,2d,34,38,30,32,00 + +[HKEY_LOCAL_MACHINE\Software\Classes\vbsfile\ScriptEngine] +@="VBScript" + +[HKEY_LOCAL_MACHINE\Software\Classes\vbsfile\Shell\Open\Command] +@=hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,53,79,73,74,65,6d,33,32,5c,57,\ + 53,63,72,69,70,74,2e,65,78,65,20,22,25,31,22,20,25,2a,00 +_EOF_ + w_try_regedit "$W_TMP"/vbscript.reg } #---------------------------------------------------------------- -load_wsh56js() { +load_wsh56js() +{ # This installs jscript 5.6 (but not vbscript) # See also http://www.microsoft.com/downloads/details.aspx?FamilyID=16dd21a1-c4ee-4eca-8b80-7bd1dfefb4f8&DisplayLang=en - download . http://download.microsoft.com/download/b/c/3/bc3a0c36-fada-497d-a3de-8b0139766f3b/Windows2000-KB917344-56-x86-enu.exe add5f74c5bd4da6cfae47f8306de213ec6ed52c8 + w_download . http://download.microsoft.com/download/b/c/3/bc3a0c36-fada-497d-a3de-8b0139766f3b/Windows2000-KB917344-56-x86-enu.exe add5f74c5bd4da6cfae47f8306de213ec6ed52c8 - try $WINE "$WINETRICKS_CACHE"/Windows2000-KB917344-56-x86-enu.exe $WINETRICKS_QUIET + w_try $WINE "$W_CACHE"/Windows2000-KB917344-56-x86-enu.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_wsh56vb() { +load_wsh56vb() +{ # This installs vbscript 5.6 (but not jscript) # See also http://www.microsoft.com/downloads/details.aspx?familyid=4F728263-83A3-464B-BCC0-54E63714BC75 - download . http://download.microsoft.com/download/IE60/Patch/Q318089/W9XNT4Me/EN-US/vbs56men.exe 48f14a93db33caff271da0c93f334971f9d7cb22 + w_download . http://download.microsoft.com/download/IE60/Patch/Q318089/W9XNT4Me/EN-US/vbs56men.exe 48f14a93db33caff271da0c93f334971f9d7cb22 - try $WINE "$WINETRICKS_CACHE"/vbs56men.exe $WINETRICKS_QUIET + w_try $WINE "$W_CACHE"/vbs56men.exe $W_UNATTENDED_SLASH_Q } #---------------------------------------------------------------- -load_xact() { +load_xact() +{ helper_directx_dl ; # xactengine?_?.dll, X3DAudio?_?.dll, xaudio?_?.dll, xapofx?_?.dll - extract - try_cabextract -d "$WINETRICKS_TMP" -L -F '*_xact_*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$WINETRICKS_TMP" -L -F '*_x3daudio_*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME - try_cabextract -d "$WINETRICKS_TMP" -L -F '*_xaudio_*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME - for x in `ls "$WINETRICKS_TMP"/*.cab` + w_try_cabextract -d "$W_TMP" -L -F '*_xact_*x86*' "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_TMP" -L -F '*_x3daudio_*x86*' "$W_CACHE"/$DIRECTX_NAME + w_try_cabextract -d "$W_TMP" -L -F '*_xaudio_*x86*' "$W_CACHE"/$DIRECTX_NAME + for x in "$W_TMP"/*.cab do - try_cabextract -d "$SYSTEM32_DLLS" -L -F '*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F '*.dll' "$x" done # xactengine?_?.dll, xaudio?_?.dll - register - for x in `ls "$SYSTEM32_DLLS"/xactengine* "$SYSTEM32_DLLS"/xaudio*` + for x in "$W_SYSTEM32_DLLS"/xactengine* "$W_SYSTEM32_DLLS"/xaudio* do - try $WINE regsvr32 `basename $x` + w_try_regsvr `basename "$x"` done } #---------------------------------------------------------------- -load_xinput() { +load_xinput() +{ helper_directx_dl ; # xinput1_1.dll xinput1_2.dll xinput1_3.dll xinput9_1_0.dll - try_cabextract -d "$WINETRICKS_TMP" -L -F '*_xinput_*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME - for x in `ls "$WINETRICKS_TMP"/*.cab` + w_try_cabextract -d "$W_TMP" -L -F '*_xinput_*x86*' "$W_CACHE"/$DIRECTX_NAME + for x in "$W_TMP"/*.cab do - try_cabextract -d "$SYSTEM32_DLLS" -L -F '*.dll' "$x" + w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F '*.dll' "$x" done } #---------------------------------------------------------------- -load_xvid() { +load_xmllite() +{ + w_download xmllite http://download.microsoft.com/download/f/9/6/f964059a-3747-4ed8-9326-ba1e639031b1/WindowsXP-KB915865-v11-x86-ENU.exe 226d246a1c64e693791de5c727509002d089b0d5 + + # See http://bugs.winehq.org/show_bug.cgi?id=16013 + # Find instructions to create this file in dlls/wintrust/tests/crypt.c + w_download xmllite http://winezeug.googlecode.com/svn/trunk/winetricks_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 + + cd "$W_CACHE"/xmllite + w_override_dlls native xmllite + w_try $WINE WindowsXP-KB915865-v11-x86-ENU.exe $W_UNATTENDED_SLASH_Q +} + +#---------------------------------------------------------------- + +load_xvid() +{ # xvid load_vcrun6 - download . http://www.koepi.info/Xvid-1.2.2-07062009.exe 435203e7f713c4484ca4f50f43e847f3dc118962 - try $WINE "$WINETRICKS_CACHE"/Xvid-1.2.2-07062009.exe $WINETRICKS_SILENT + w_download . http://www.koepi.info/Xvid-1.2.2-07062009.exe 435203e7f713c4484ca4f50f43e847f3dc118962 + w_try $WINE "$W_CACHE"/Xvid-1.2.2-07062009.exe $W_UNATTENDED_SLASH_SILENT } #--------- Main program ----------------------------------------- +# Call a verb, don't let it affect environment +# Supports just one argument at the moment +w_call() +{ + rm -rf "$W_TMP" + mkdir -p "$W_TMP" + + if ! ( load_$1 $2 ) + then + w_die "$1 failed" + fi + + (cd "$W_TMP" && rm -rf ./*) +} + +report_usage() +{ + # If and only if user has opted in to usage tracking, report the usage. + case "$W_TRACK_USAGE" in + 1) ;; + *) return;; + esac + + echo "You gave the --optin option, so reporting '$CMDLINE' to the winetricks maintainer so he knows which winetricks verbs get used and which don't. Use --optout to disable future reports." + + # Just do a HEAD request with the raw commandline. + # Yes, this can be fooled by caches. That's ok. + if [ -x "`which wget 2>/dev/null`" ] + then + wget --spider "http://kegel.com/data/winetricks-usage?$VERSION-$CMDLINE" > /dev/null 2>&1 || true + elif [ -x "`which curl 2>/dev/null`" ] + then + curl -I "http://kegel.com/data/winetricks-usage?$VERSION-$CMDLINE" > /dev/null 2>&1 || true + fi +} + # On Solaris, choose more modern commands (needed for id -u). case `uname -s` in SunOS) PATH="/usr/xpg6/bin:/usr/xpg4/bin:$PATH" @@ -4417,50 +4962,26 @@ esac detect_menu detect_sudo -case "$OS" in - "Windows_NT") - ;; - *) - # Prevent running with wrong user id. - # It's bad to create files as the wrong user! - die_if_user_not_dirowner "$WINEPREFIX" - #die_if_user_not_dirowner "$WINETRICKS_CACHE" - - if [ ! -x "`which "$WINE" 2>/dev/null`" ] - then - die "Cannot find wine ($WINE)" - fi - - # Create wineprefix if not already there - test -d "$WINEPREFIX" || WINEDLLOVERRIDES=mshtml= $WINE cmd /c echo yes > /dev/null 2>&1 - ;; -esac - -mkdir -p "$WINETRICKS_TMP" - case $GUI in -1) showmenu ; set $todo ;; + 1) showmenu ; set $todo ;; esac -mkdir -p "$WINETRICKS_CACHE" +mkdir -p "$W_CACHE" olddir=`pwd` -# Clean up after failed runs, if needed -rm -rf "$WINETRICKS_TMP"/* # The folder-name is localized! -programfilesdir_win="`unset WINEDEBUG; WINEDLLOVERRIDES=mshtml= $WINE cmd.exe /c echo "%ProgramFiles%" | tr -d '\015'`" -test x"$programfilesdir_win" != x || die "$WINE cmd.exe /c echo '%ProgramFiles%' returned empty string" -programfilesdir_unix="`unset WINEDEBUG; $XXXPATH -u "$programfilesdir_win" | tr -d '\015' `" -test x"$programfilesdir_unix" != x || die "winepath -u $programfilesdir_win returned empty string" -winetricks_tmp_win="`$XXXPATH -w "$WINETRICKS_TMP"`" +W_PROGRAMS_WIN="`early_wine cmd.exe /c echo "%ProgramFiles%" | tr -d '\015'`" +test x"$W_PROGRAMS_WIN" != x || w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned empty string" +W_PROGRAMS_UNIX="`unset WINEDEBUG; $XXXPATH -u "$W_PROGRAMS_WIN" | tr -d '\015' `" +test x"$W_PROGRAMS_UNIX" != x || w_die "winepath -u $W_PROGRAMS_WIN returned empty string" # 64 bit windows has a second directory for program files -programfilesdir_x86_win="${programfilesdir_win} (x86)" -programfilesdir_x86_unix="${programfilesdir_unix} (x86)" -if ! test -d "$programfilesdir_x86_unix" +W_PROGRAMS_X86_WIN="${W_PROGRAMS_WIN} (x86)" +W_PROGRAMS_X86_UNIX="${W_PROGRAMS_UNIX} (x86)" +if ! test -d "$W_PROGRAMS_X86_UNIX" then - programfilesdir_x86_win="${programfilesdir_win}" - programfilesdir_x86_unix="${programfilesdir_unix}" + W_PROGRAMS_X86_WIN="${W_PROGRAMS_WIN}" + W_PROGRAMS_X86_UNIX="${W_PROGRAMS_UNIX}" fi # localized, and different across Windows versions: @@ -4471,13 +4992,13 @@ appdata_unix="`unset WINEDEBUG; $XXXPATH -u "$appdata_win" | tr -d '\015' `" # See also http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx) # # Did the user rename Fonts to fonts? -if test ! -d "$WINDIR"/Fonts && test -d "$WINDIR"/fonts +if test ! -d "$W_WINDIR_UNIX"/Fonts && test -d "$W_WINDIR_UNIX"/fonts then - winefontsdir="$WINDIR"/fonts + W_FONTSDIR_UNIX="$W_WINDIR_UNIX"/fonts else - winefontsdir="$WINDIR"/Fonts + W_FONTSDIR_UNIX="$W_WINDIR_UNIX"/Fonts fi -mkdir -p "${winefontsdir}" +mkdir -p "${W_FONTSDIR_UNIX}" # Mac folks tend to not have sha1sum, but we can make do with openssl if [ -x "`which sha1sum 2>/dev/null`" ] @@ -4487,196 +5008,231 @@ elif [ -x "`which openssl 2>/dev/null`" ] then SHA1SUM="openssl dgst -sha1" else - die "No sha1sum utility available." + w_die "No sha1sum utility available." fi # Warn the user if on win(e)64, since a lot of winetricks is broken for it -if [ "$ARCH" = "win64" ] +if [ "$W_ARCH" = "win64" ] then - echo "You're using a 64-bit WINEPREFIX, most of winetricks hasn't been fixed for win64 yet. You can force a 32-bit WINEPREFIX by using WINEARCH=win32." + w_warn "You're using a 64-bit WINEPREFIX, most of winetricks has been fixed for 64-bit, but you may still have problems. You can force a 32-bit WINEPREFIX by using WINEARCH=win32." fi +# Load opt-in status +if test -f $W_CACHE/track_usage +then + W_TRACK_USAGE=`cat $W_CACHE/track_usage` +else + # No opt-in status found. If GUI active, ask user whether they would like to opt in. + case $GUI-$MENU in + 1-zenity) + case $LANG in + *) + title="One-time question about helping Winetricks development" + question="Would you like to help winetricks development by letting winetricks report statistics? You can turn reporting off at any time with the command 'winetricks --optout' or by removing the file $W_CACHE/track_usage" + thanks='Thanks! You won'\''t be asked this question again.' + declined="OK, winetricks will *not* report statistics. You won't be asked this question again." + ;; + esac + if zenity --question --text "$question" --title "$title" + then + zenity --info --text "$thanks" + W_TRACK_USAGE=1 + else + zenity --info --text "$declined" + W_TRACK_USAGE=0 + fi + echo $W_TRACK_USAGE > $W_CACHE/track_usage + ;; + esac +fi + +CMDLINE="$*" while test "$1" != "" do - PACKAGE=$1 + W_PACKAGE=$1 case $1 in - -q) WINETRICKS_QUIET="/q" - WINETRICKS_QUIET_T="/qt" # Microsoft Control Pad - WINETRICKS_UNIXQUIET="-q" - WINETRICKS_SILENT="/silent" - WINETRICKS_UNIXSILENT="-silent" - WINETRICKS_S="/S" # for NSIS installers + -q) W_UNATTENDED_SLASH_Q="/q" + W_UNATTENDED_SLASH_Q_T="/qt" # Microsoft Control Pad + W_UNATTENDED_DASH_Q="-q" + W_UNATTENDED_SLASH_SILENT="/silent" + W_UNATTENDED_DASH_SILENT="-silent" + W_UNATTENDED_SLASH_S="/S" # for NSIS installers WINEDEBUG=${WINEDEBUG:-"fixme-all"} export WINEDEBUG ;; -v) set -x;; - 7zip|7-zip) load_7zip;; - abiword) load_abiword;; - adobeair) load_adobeair;; - amstream) load_amstream;; - l3codecx) load_l3codecx;; - art2kmin|art2k7min) load_art2kmin;; - atmlib) load_atmlib;; - autohotkey|ahk) load_autohotkey;; - baekmuk) load_baekmuk;; - cmake) load_cmake;; - comctl32.ocx) load_comctl32ocx;; - comctl32|cc580) load_cc580;; - comdlg32.ocx) load_comdlg32ocx;; - colorprofile) load_colorprofile;; - controlpad|fm20) load_controlpad;; - corefonts) load_corefonts;; - crypt32) load_crypt32;; - cygwin) load_cygwin;; - d3dx9) load_d3dx9;; - d3dx9_26) load_d3dx9_xx 26;; - d3dx9_28) load_d3dx9_xx 28;; - d3dx9_31) load_d3dx9_xx 31;; - d3dx9_35) load_d3dx9_xx 35;; - d3dx9_36) load_d3dx9_xx 36;; - d3dx9_42) load_d3dx9_xx 42;; - d3dx10) load_d3dx10;; - d3dxof) load_d3dxof;; - dcom98) load_dcom98;; - devenum) load_devenum;; - dinput8) load_dinput8;; - dirac) load_dirac;; - directmusic) load_directmusic;; - directplay|dxplay|dplay) load_directplay;; - directx9) DIRECTX_WINDOWS=win2k ; load_directx9;; - directx9-beta) DIRECTX_WINDOWS=winxp ; load_directx9 ; load_directmusic ; load_directplay ;; - divx) load_divx;; - dotnet1|dotnet11) load_dotnet11; load_fontfix;; - dotnet11sdk) load_dotnet11sdk;; - dotnet2|dotnet20) load_dotnet20;; - dotnet20sdk) load_dotnet20sdk;; - dotnet20sp2) load_dotnet20sp2; load_fontfix;; - dotnet3|dotnet30) load_dotnet30; load_fontfix;; - dotnet35) load_dotnet35; load_fontfix;; - dmsynth) load_dmsynth;; - droid) load_droid;; - dsound) load_dsound;; - dxsdk_nov2006) load_dxsdk_nov2006;; - eadm) load_eadm;; - eufonts) load_eufonts;; - fakechinese) load_fakechinese;; - fakejapanese) load_fakejapanese;; - fakekorean) load_fakekorean;; - ffdshow) load_ffdshow;; - firefox|firefox3) load_firefox;; - flash) load_flash;; - fontfix) load_fontfix;; - fontsmooth-bgr|fs-bgr) load_fs_bgr;; - fontsmooth-disable|fs-disable) load_fs_disable;; - fontsmooth-gray|fontsmooth-grayscale|fontsmooth-enable|fs-enable) load_fs_grayscale;; - fontsmooth-rgb|fs-rgb|fs-cleartype) load_fs_rgb;; - gdiplus) load_gdiplus;; - gecko) load_gecko;; - gecko-dbg|geckodbg|gecko_dbg|geckodebug|gecko_debug|gecko-debug) load_gecko_dbg;; - gfw|xlive) load_gfw;; - glsl-disable) load_glsl_disable;; - glsl-enable) load_glsl_enable;; - glut) load_glut;; - hosts) load_hosts;; - ie6_full) load_ie6_full;; - ie6) load_ie6;; - ie7) load_ie7;; - ie8) load_ie8;; - jet40) load_jet40;; - kde) load_kde;; - liberation) load_liberation;; - lucida) load_lucida;; - mdac25) load_mdac25;; - mdac26|mdac27) load_mdac27;; - mdac28) load_mdac28;; - mfc40) load_mfc40;; - mingw|mingw-min|mingw_min) load_mingw_min;; - mingw-gdb|mingw_gdb) load_mingw_gdb;; - mono26) load_mono26;; - mozillabuild) load_mozillabuild;; - mpc) load_mpc;; - msi2) load_msi2;; - mshflxgd) load_mshflxgd;; - msls31) load_msls31;; - msmask) load_msmask;; - mspaint|paint) load_mspaint;; - msscript) load_msscript;; - msxml3) load_msxml3;; - msxml4) load_msxml4;; - msxml6) load_msxml6;; - nvidiasdk95) load_nvidiasdk95;; - ogg) load_ogg;; - ole2) load_ole2;; - openwatcom|watcom) load_openwatcom;; - pdh) load_pdh;; - physx) load_physx;; - psdk2003) load_psdk2003;; - psdkvista) load_psdkvista;; - psdkwin7) load_psdkwin7;; - python|python26) load_python26;; - python-comtypes|pythoncom|python-com|pythoncomtypes) load_python_comtypes;; - quartz) load_quartz;; - quicktime72) load_quicktime72;; - quicktime76) load_quicktime76;; - riched20) load_riched20;; - riched30) load_riched30;; - richtx32) load_richtx32;; - safari) load_safari;; - secur32) load_secur32;; - shockwave) load_shockwave;; - steam) load_steam;; - tahoma) load_tahoma;; - takao) load_takao;; - unifont) load_unifont;; - urlmon) load_urlmon;; - usp10) load_usp10;; - utorrent) load_utorrent;; - vbrun200|vb2run) load_vb2run;; - vbrun300|vb3run) load_vb3run;; - vbrun400|vb4run) load_vb4run;; - vbrun500|vbvm50|vb5run) load_vbvm50;; - vbrun600|vbrun60|vb6run) load_vbrun60;; - vc2003toolkit) load_vc2003toolkit;; - vc2005express) load_vc2005express;; - vc2005expresssp1) load_vc2005expresssp1;; - vc2005hotfix) load_vc2005hotfix;; - vc2005load) load_vc2005_tarball;; + --optin) W_TRACK_USAGE=1; echo $W_TRACK_USAGE > $W_CACHE/track_usage;; + --optout) W_TRACK_USAGE=0; echo $W_TRACK_USAGE > $W_CACHE/track_usage;; + 7zip|7-zip) w_call 7zip;; + abiword) w_call abiword;; + adobeair) w_call adobeair;; + amstream) w_call amstream;; + l3codecx) w_call l3codecx;; + art2kmin|art2k7min) w_call art2kmin;; + atmlib) w_call atmlib;; + autohotkey|ahk) w_call autohotkey;; + baekmuk) w_call baekmuk;; + cmake) w_call cmake;; + comctl32.ocx) w_call comctl32ocx;; + comctl32|cc580) w_call comctl32;; + comdlg32.ocx) w_call comdlg32ocx;; + colorprofile) w_call colorprofile;; + controlpad|fm20) w_call controlpad;; + corefonts) w_call corefonts;; + crypt32) w_call crypt32;; + cygwin) w_call cygwin;; + d3dx9) w_call d3dx9;; + d3dx9_26) w_call d3dx9_xx 26;; + d3dx9_28) w_call d3dx9_xx 28;; + d3dx9_31) w_call d3dx9_xx 31;; + d3dx9_35) w_call d3dx9_xx 35;; + d3dx9_36) w_call d3dx9_xx 36;; + d3dx9_42) w_call d3dx9_xx 42;; + d3dx10) w_call d3dx10;; + d3dxof) w_call d3dxof;; + dcom98) w_call dcom98;; + devenum) w_call devenum;; + dinput8) w_call dinput8;; + dirac) w_call dirac;; + directmusic) w_call directmusic;; + directplay|dxplay|dplay) w_call directplay;; + directx9) DIRECTX_WINDOWS=win2k ; w_call directx9;; + directx9-beta) DIRECTX_WINDOWS=winxp ; w_call directx9 ; w_call directmusic ; w_call directplay ;; + divx) w_call divx;; + dotnet1|dotnet11) w_call dotnet11; w_call fontfix;; + dotnet11sdk) w_call dotnet11sdk;; + dotnet20) w_call dotnet20;; + dotnet20sdk) w_call dotnet20sdk;; + dotnet20sp2) w_call dotnet20sp2;; + dotnet3|dotnet30) w_call dotnet30; w_call fontfix;; + dotnet35) w_call dotnet35; w_call fontfix;; + dmsynth) w_call dmsynth;; + droid) w_call droid;; + dsound) w_call dsound;; + dxsdk_nov2006) w_call dxsdk_nov2006;; + eufonts) w_call eufonts;; + fakechinese) w_call fakechinese;; + fakejapanese) w_call fakejapanese;; + fakekorean) w_call fakekorean;; + ffdshow) w_call ffdshow;; + firefox|firefox3) w_call firefox;; + flash) w_call flash;; + fontfix) w_call fontfix;; + fontsmooth-bgr|fs-bgr) w_call fs_bgr;; + fontsmooth-disable|fs-disable) w_call fs_disable;; + fontsmooth-gray|fontsmooth-grayscale|fontsmooth-enable|fs-enable) w_call fs_grayscale;; + fontsmooth-rgb|fs-rgb|fs-cleartype) w_call fs_rgb;; + gdiplus) w_call gdiplus;; + gecko) w_call gecko;; + gecko-dbg|geckodbg|gecko_dbg|geckodebug|gecko_debug|gecko-debug) w_call gecko_dbg;; + gfw|xlive) w_call gfw;; + glsl-disable) w_call glsl_disable;; + glsl-enable) w_call glsl_enable;; + glut) w_call glut;; + hosts) w_call hosts;; + icodecs) w_call icodecs;; + ie6|ie6_full) w_call ie6;; + ie7) w_call ie7;; + ie8) w_call ie8;; + jet40) w_call jet40;; + kde) w_call kde;; + liberation) w_call liberation;; + lucida) w_call lucida;; + mdac25) w_call mdac25;; + mdac26|mdac27) w_call mdac27;; + mdac28) w_call mdac28;; + mfc40) w_call mfc40;; + mingw|mingw-min|mingw_min) w_call mingw_min;; + mingw-gdb|mingw_gdb) w_call mingw_gdb;; + mono26) w_call mono26;; + mono28) w_call mono28;; + mozillabuild) w_call mozillabuild;; + mpc) w_call mpc;; + msasn1) w_call msasn1;; + msi2) w_call msi2;; + mshflxgd) w_call mshflxgd;; + msls31) w_call msls31;; + msmask) w_call msmask;; + mspaint|paint) w_call mspaint;; + msscript) w_call msscript;; + msxml3) w_call msxml3;; + msxml4) w_call msxml4;; + msxml6) w_call msxml6;; + nvidiasdk95) w_call nvidiasdk95;; + ogg) w_call ogg;; + ole2) w_call ole2;; + opensymbol) w_call opensymbol;; + openwatcom|watcom) w_call openwatcom;; + pdh) w_call pdh;; + physx) w_call physx;; + psdk2003) w_call psdk2003;; + psdkvista) w_call psdkvista;; + psdkwin7) w_call psdkwin7;; + python|python26) w_call python26;; + python-comtypes|pythoncom|python-com|pythoncomtypes) w_call python_comtypes;; + quartz) w_call quartz;; + quicktime72) w_call quicktime72;; + quicktime76) w_call quicktime76;; + riched20) w_call riched20;; + riched30) w_call riched30;; + richtx32) w_call richtx32;; + safari) w_call safari;; + secur32) w_call secur32;; + shockwave) w_call shockwave;; + steam) w_call steam;; + tahoma) w_call tahoma;; + takao) w_call takao;; + unifont) w_call unifont;; + usp10) w_call usp10;; + utorrent) w_call utorrent;; + vbrun200|vb2run) w_call vb2run;; + vbrun300|vb3run) w_call vb3run;; + vbrun400|vb4run) w_call vb4run;; + vbrun500|vbvm50|vb5run) w_call vbvm50;; + vbrun600|vbrun60|vb6run) w_call vbrun60;; + vc2003toolkit) w_call vc2003toolkit;; + vc2005express) w_call vc2005express;; + vc2005expresssp1) w_call vc2005expresssp1;; + vc2005hotfix) w_call vc2005hotfix;; + vc2005load) w_call vc2005_tarball;; vc2005save) save_vc2005_tarball;; - vc2005sp1) load_vc2005sp1;; - vc2008sp1) load_vc2008sp1;; - vc2005trial) load_vc2005trial;; - vc2008trial) load_vc2008trial;; - vcrun600|vcrun60|vcrun6|mfc42) load_vcrun6;; - vcrun60sp6|vcrun6sp6) load_vcrun6sp6;; - vcrun2003) load_vcrun2003;; - vcrun2005|vcrun2005sp1) load_vcrun2005;; - vcrun2008|vcrun2008sp1) load_vcrun2008;; - vcrun2010) load_vcrun2010;; - vjrun20) load_vjrun20;; - vlc) load_vlc;; - wenquanyi) load_wenquanyi;; - windowscodecs|wic) load_windowscodecs;; - winhttp) load_winhttp;; - wininet) load_wininet;; - wme9) load_wme9;; - wmp9) load_wmp9;; - wmp10) load_wmp10;; - wsh56|wsh57) load_wsh57;; - jscript|wsh56js) load_wsh56js;; - wsh56vb) load_wsh56vb;; - xact|xactengine|x3daudio|xapofx) load_xact;; - xinput) load_xinput;; - xvid) load_xvid;; + vc2005sp1) w_call vc2005sp1;; + vc2008sp1) w_call vc2008sp1;; + vc2005trial) w_call vc2005trial;; + vc2008trial) w_call vc2008trial;; + vcrun600|vcrun60|vcrun6|mfc42) w_call vcrun6;; + vcrun60sp6|vcrun6sp6) w_call vcrun6sp6;; + vcrun2003) w_call vcrun2003;; + vcrun2005|vcrun2005sp1) w_call vcrun2005;; + vcrun2008|vcrun2008sp1) w_call vcrun2008;; + vcrun2010) w_call vcrun2010;; + vjrun20) w_call vjrun20;; + vlc) w_call vlc;; + wenquanyi) w_call wenquanyi;; + windowscodecs|wic) w_call windowscodecs;; + winhttp) w_call winhttp;; + wininet) w_call wininet;; + wme9) w_call wme9;; + wmi|wbem) w_call wmi;; + wmp9) w_call wmp9;; + wmp10) w_call wmp10;; + wsh56|wsh57) w_call wsh57;; + jscript|wsh56js) w_call wsh56js;; + wsh56vb) w_call wsh56vb;; + xact|xactengine|x3daudio|xapofx) w_call xact;; + xinput) w_call xinput;; + xmllite) w_call xmllite;; + xvid) w_call xvid;; - allcodecs|allvcodecs) load_vcrun6; load_ffdshow; load_xvid;; - allfonts) load_corefonts; load_droid; load_eufonts; load_liberation; load_lucida; load_tahoma; load_fakechinese; load_fakejapanese; load_fakekorean; load_unifont;; + allcodecs|allvcodecs) w_call vcrun6; w_call ffdshow; w_call xvid; w_call icodecs;; + allfonts) w_call corefonts; w_call droid; w_call eufonts; w_call liberation; w_call lucida; w_call opensymbol; w_call tahoma; w_call fakechinese; w_call fakejapanese; w_call fakekorean; w_call unifont;; alldlls=builtin) override_all_dlls;; alldlls=default) override_no_dlls;; - cjkfonts) load_fakechinese; load_fakejapanese; load_fakekorean; load_unifont;; + cjkfonts) w_call fakechinese; w_call fakejapanese; w_call fakekorean; w_call unifont;; ddr=gdi) set_ddr gdi;; ddr=opengl) set_ddr opengl;; - dsoundbug9612) load_dsoundbug9612;; - forcemono|force_mono) load_forcemono;; + dsoundbug9612) w_call dsoundbug9612;; + forcemono|force_mono) w_call forcemono;; heapcheck) set_heapcheck;; mmdevapi=builtin) set_mmdevapi builtin ;; mmdevapi=native) set_mmdevapi native ;; @@ -4684,7 +5240,7 @@ do multisampling=enabled|multisampling=on) set_multisampling enabled;; multisampling=disabled|multisampling=off) set_multisampling disabled;; native_mdac) set_native_mdac;; - native_oleaut32) override_dlls native,builtin oleaut32;; + native_oleaut32) w_override_dlls native,builtin oleaut32;; nocrashdialog) disable_crashdialog;; orm=backbuffer|backbuffer) set_orm backbuffer;; orm=fbo|fbo) set_orm fbo;; @@ -4696,7 +5252,6 @@ do rtlm=textex) set_rtlm textex;; sandbox) sandbox;; sound=alsa|alsa) set_sound_driver alsa;; - sound=audioio|audioio) set_sound_driver audioio;; sound=coreaudio|coreaudio) set_sound_driver coreaudio;; sound=esound|sound=esd|esd|esound) set_sound_driver esd;; sound=jack|jack) set_sound_driver jack;; @@ -4715,31 +5270,33 @@ do npm-repack) npm_repack;; psm=on) set_psm enabled;; psm=off) set_psm disabled;; - vd=*) arg=`echo $PACKAGE | sed 's/vd=//'`; set_virtualdesktop $arg ;; + vd=*) arg=`echo $W_PACKAGE | sed 's/vd=//'`; set_virtualdesktop $arg ;; vsm-hard) set_vsm hardware;; - winver=nt40|nt40) set_winver nt40;; - winver=win98|win98) set_winver win98;; - winver=win2k|win2k) set_winver win2k;; - winver=win7|win7) set_winver win7;; - winver=winxp|winxp) set_winver winxp;; - winver=vista|vista) set_winver vista;; - winver=) unset_winver;; - *=disabled) arg=`echo $PACKAGE | sed 's/=.*//'`; override_dlls disabled $arg ;; + winver=win31|win31) w_set_winver win31;; + winver=win98|win98) w_set_winver win98;; + winver=nt40|nt40) w_set_winver nt40;; + winver=win2k|win2k) w_set_winver win2k;; + winver=win7|win7) w_set_winver win7;; + winver=winxp|winxp) w_set_winver winxp;; + winver=vista|vista) w_set_winver vista;; + winver=) w_unset_winver;; + *=disabled) arg=`echo $W_PACKAGE | sed 's/=.*//'`; w_override_dlls disabled $arg ;; *) echo Unknown arg $1; usage ; exit 1;; esac # Provide a bit of feedback - test "$WINETRICKS_QUIET" = "" && case $1 in + test "$W_UNATTENDED_SLASH_Q" = "" && case $1 in -q) echo Setting quiet mode;; -v) echo Setting verbose mode;; *) echo "Install of $1 done" ;; esac shift # cleanup - rm -rf "$WINETRICKS_TMP"/* + (cd "$W_TMP" && rm -rf ./*) done -# remove the temp directory -rm -rf "$WINETRICKS_TMP" +report_usage "$CMDLINE" + +rmdir "$W_TMP" test "$WINETRICKS_CACHE_SYMLINK" && rm -f "$WINETRICKS_CACHE_SYMLINK" -test "$WINETRICKS_QUIET" = "" && echo winetricks done. || true +test "$W_UNATTENDED_SLASH_Q" = "" && echo winetricks done. || true