From 6ede095fb22b9c645c820eda76f8baad1f000d8b6064d659ce059a556c60b924 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Wed, 17 Mar 2010 12:48:13 +0000 Subject: [PATCH] - updated winetricks - win7 handling - some new downloaders, some non working ones adjusted OBS-URL: https://build.opensuse.org/package/show/Emulators/wine?expand=0&rev=26 --- wine.changes | 7 + winetricks | 425 +++++++++++++++++++++++++++++++++------------------ 2 files changed, 283 insertions(+), 149 deletions(-) diff --git a/wine.changes b/wine.changes index ad01458..1c63c3e 100644 --- a/wine.changes +++ b/wine.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Mar 17 13:47:52 CET 2010 - meissner@suse.de + +- updated winetricks + - win7 handling + - some new downloaders, some non working ones adjusted + ------------------------------------------------------------------- Fri Mar 5 23:30:10 CET 2010 - meissner@suse.de diff --git a/winetricks b/winetricks index 4ed6c78..2815a89 100644 --- a/winetricks +++ b/winetricks @@ -19,7 +19,7 @@ #---- Constants ------------------------------------------------- # Name of this version of winetricks (YYYYMMDD) -VERSION=20100201 +VERSION=20100316 early_wine() { @@ -42,7 +42,7 @@ case "$OS" in *) WINE=${WINE:-wine} WINEPREFIX=${WINEPREFIX:-$HOME/.wine} - DRIVE_C="$WINEPREFIX/drive_c" + DRIVE_C="$WINEPREFIX/dosdevices/c:" XXXPATH="early_wine winepath" ;; esac @@ -72,34 +72,48 @@ esac #---- Functions ------------------------------------------------- -# Check for known desktop environments -# Set variable DE to the desktop environment's name, lowercase -detectDE() { - if [ x"$KDE_FULL_SESSION" = x"true" ] +# Detect which sudo to use +detect_sudo() { + SUDO=sudo + test "$GUI" = 1 || return + if test x"$DISPLAY" != x"" then - DE=kde - elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ] + if test -x "`which gksudo 2>/dev/null`" + then + SUDO=gksudo + elif test -x "`which kdesudo 2>/dev/null`" + then + SUDO=kdesudo + fi + fi +} + +# Detect which menu program to use +detect_menu() { + # TODO: add 'dialog' + MENU=xmessage + if test -x "`which zenity 2>/dev/null`" then - DE=gnome - elif [ x"$DISPLAY" != x"" ] + MENU=zenity + elif test -x "`which kdialog 2>/dev/null`" then - DE=x - else - DE=none + MENU=kdialog fi } warn() { + echo "------------------------------------------------------" echo "$@" + echo "------------------------------------------------------" test "$GUI" = 1 || return # For some reason, nulls were showing up in $@?!, causing truncated output in zenity msg="`echo $@ | tr '\000' ' '`" - case $DE in - gnome) zenity --error --title=Winetricks --text="$msg" --no-wrap;; - kde) kdialog --title Winetricks --error "$msg" ;; - x) xmessage -title Winetricks -center " Error: $msg " ;; + 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 " ;; esac } @@ -142,6 +156,8 @@ usage() { echo " -v verbose" echo " -V display Version" echo "Packages:" + echo " 7zip 7-zip file archiver" + echo " adobeair Adobe AIR runtime" echo " art2kmin MS Access 2007 runtime" echo " atmlib Adobe Type Manager. Needed for Adobe CS4" echo " autohotkey Autohotkey (open source gui scripting language)" @@ -154,6 +170,7 @@ usage() { echo " cygwin Unix apps for Windows (needed by some build scripts)" echo " d3dx9 MS d3dx9_??.dll (from DirectX 9 user redistributable)" 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 " dinput8 MS dinput8.dll (from DirectX 9 user redistributable)" echo " dirac0.8 the obsolete Dirac 0.8 directshow filter" @@ -183,7 +200,6 @@ usage() { echo " gecko-dbg The HTML rendering Engine (Mozilla), with debugging symbols" echo " gecko The HTML rendering Engine (Mozilla)" echo " hosts Adds empty C:\windows\system32\drivers\etc\{hosts,services} files" - echo " icodecs Intel Codecs (Indeo)" echo " ie6 Microsoft Internet Explorer 6.0" echo " ie7 Microsoft Internet Explorer 7.0" echo " jet40 MS Jet 4.0 Service Pack 8" @@ -225,6 +241,7 @@ usage() { echo " riched30 MS riched30" echo " richtx32 MS Rich TextBox Control 6.0" echo " shockwave Adobe Shockwave Player" + echo " steam Valve's Steam Client App" echo " tahoma MS Tahoma font (not part of corefonts)" echo " urlmon MS urlmon.dll" echo " usp10 MS usp10.dll (Uniscribe)" @@ -257,7 +274,7 @@ usage() { echo " xvid xvid video codec" echo "Pseudopackages:" echo " allfonts All listed fonts (corefonts, tahoma, liberation)" - echo " allcodecs All listed codecs (xvid, ffdshow, icodecs)" + echo " allcodecs All listed codecs (xvid, ffdshow)" echo " ddr=gdi Set DirectDrawRenderer to GDI (default)" echo " ddr=opengl Set DirectDrawRenderer to OpenGL" echo " fakeie6 Set registry to claim IE6sp1 is installed" @@ -292,6 +309,7 @@ usage() { echo " win2k Set windows version to Windows 2000" echo " winxp Set windows version to Windows XP" echo " vista Set windows version to Windows Vista" + echo " win7 Set windows version to Windows 7" echo " winver= Set windows version to default (winxp)" echo " volnum Rename drive_c to harddiskvolume0 (needed by some installers)" } @@ -299,7 +317,7 @@ usage() { #---------------------------------------------------------------- # Trivial GUI just to handle case where user tries running without commandline -kde_showmenu() { +kdialog_showmenu() { title="$1" shift text="$1" @@ -316,7 +334,7 @@ kde_showmenu() { kdialog --title "$title" --separate-output --checklist "$text" $args } -x_showmenu() { +xmessage_showmenu() { title="$1" shift text="$1" @@ -341,24 +359,21 @@ x_showmenu() { showmenu() { - case $DE in - kde) kde_showmenu "$@" ;; - gnome|x) x_showmenu "$@" ;; - none) usage 1>&2; exit 1;; - esac -} - -dogui() -{ - if [ $DE = gnome ] - then + case $MENU in + zenity) echo "zenity --title 'Select a package to install' --text 'Install?' --list --checklist --column '' --column Package --column Description --height 440 --width 600 \\" > "$WINETRICKS_TMP"/zenity.sh usage | grep '^ [a-z]' | sed 's/^ \([^ ]*\) *\(.*\)/FALSE "\1" '"'\2'/" | sed 's/$/ \\/' >> $WINETRICKS_TMP/zenity.sh todo="`sh "$WINETRICKS_TMP"/zenity.sh | tr '|' ' '`" - else + ;; + kdialog) packages=`usage | awk '/^ [a-z]/ {print $1}'` - todo="`showmenu "winetricks" "Select a package to install" "Install?" "Package" $packages`" - fi + todo="`kdialog_showmenu "winetricks" "Select a package to install" "Install?" "Package" $packages`" + ;; + xmessage) + packages=`usage | awk '/^ [a-z]/ {print $1}'` + todo="`xmessage_showmenu "winetricks" "Select a package to install" "Install?" "Package" $packages`" + ;; + esac if test "$todo"x = x then @@ -405,6 +420,22 @@ regedit() { die oops, bug, please report } +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" + then + die "Cannot find cabextract. Please install it (e.g. 'sudo apt-get install cabextract' or 'sudo yum install cabextract')." + fi + + try $CABEXTRACT "$@" +} + +cabextract() { + die oops, bug, please report +} + + # verify an sha1sum verify_sha1sum() { wantsum=$1 @@ -436,7 +467,7 @@ download() { # On Mac, 'which' doesn't return good exit status # Need to jam in --header "Accept-Encoding: gzip,deflate" else # redhat.com decompresses liberation-fonts.tar.gz! - if [ -x "`which wget`" ] + if [ -x "`which wget 2>/dev/null`" ] then # Use -nd to insulate ourselves from people who set -x in WGETRC # [*] --retry-connrefused works around the broken sf.net mirroring @@ -452,7 +483,7 @@ download() { fi # Need to decompress .exe's that are compressed, else cygwin fails # Only affects cygwin, so don't barf if 'file' not installed - FILE=`which file` + FILE=`which file 2>/dev/null` case $FILE-$file in /*-*.exe) case `file $file` in @@ -678,15 +709,36 @@ _EOF_ #----- common download for several verbs helper_directx_dl() { - # Aug 2009 DirectX 9c User Redistributable - # http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=04ac064b-00d1-474e-b7b1-442d8712d553 - download . http://download.microsoft.com/download/B/7/9/B79FC9D7-47B8-48B7-A75E-101DEBEB5AB4/directx_aug2009_redist.exe 563b96a3d78d6038d10428f23954f083320b4019 + # 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 - DIRECTX_NAME=directx_aug2009_redist.exe + 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_adobeair() { + # corefonts is necessary to avoid an installer crash. + load_corefonts + + # Adobe AIR 1.5.3 runtime + # 2010-02-02: sha1sum 5c95f51a680f8c175a92755238127be4ad22c53b + # 2010-02-20: sha1sum 6f03e723bd855abbe00eb8fdf22da54fb49c62db + download . http://airdownload.adobe.com/air/win/download/1.5.3/AdobeAIRInstaller.exe 6f03e723bd855abbe00eb8fdf22da54fb49c62db + try $WINE "$WINETRICKS_CACHE"/AdobeAIRInstaller.exe $WINETRICKS_UNIXSILENT +} + +#---------------------------------------------------------------- + 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 @@ -702,7 +754,7 @@ load_atmlib() { # 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_cabextract "$WINETRICKS_CACHE"/W2KSP4_EN.EXE i386/atmlib.dl_ try cp atmlib.dll "$WINDIR"/system32 try rm -rf i386 cd "$olddir" @@ -747,7 +799,7 @@ 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 - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/VisualBasic6-KB896559-v1-ENU.exe + try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/VisualBasic6-KB896559-v1-ENU.exe try cp "$WINETRICKS_TMP"/mscomctl.ocx "$WINDIR"/system32/mscomctl.ocx try cp "$WINETRICKS_TMP"/comctl32.ocx "$WINDIR"/system32/comctl32.ocx try $WINE regsvr32 comctl32.ocx @@ -770,7 +822,7 @@ load_controlpad() { # Fixes error "Failed to load UniText..." load_wsh56 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 + try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/setuppad.exe echo "If setup says 'Unable to start DDE ...', press Ignore" try $WINE "$WINETRICKS_TMP"/setup $WINETRICKS_QUIET_T } @@ -804,67 +856,67 @@ 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 + # try_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/andale32.exe # Display EULA test x"$WINETRICKS_QUIET" = x"" || try $WINE "$WINETRICKS_CACHE"/arial32.exe $WINETRICKS_QUIET - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/arial32.exe + 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)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/arialb32.exe + 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)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/comic32.exe + 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)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/courie32.exe + 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)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/georgi32.exe + 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)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/impact32.exe + try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/impact32.exe try cp -f "$WINETRICKS_TMP"/Impact.TTF "$winefontsdir" register_font Impact.TTF "Impact (TrueType)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/times32.exe + 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)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/trebuc32.exe + 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)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/verdan32.exe + 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)" - try cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/webdin32.exe + try_cabextract -q --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/webdin32.exe try cp -f "$WINETRICKS_TMP"/Webdings.TTF "$winefontsdir" register_font Webdings.TTF "Webdings (TrueType)" } @@ -895,10 +947,10 @@ load_d3dx9() { helper_directx_dl # Kinder, less invasive directx - only extract and override d3dx9_??.dll - cabextract -d "$WINETRICKS_TMP" -L -F '*d3dx9*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME + try_cabextract -d "$WINETRICKS_TMP" -L -F '*d3dx9*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME for x in `ls "$WINETRICKS_TMP"/*.cab` do - cabextract -d "$WINDIR"/system32 -L -F '*.dll' "$x" + try_cabextract -d "$WINDIR"/system32 -L -F '*.dll' "$x" done # For now, not needed, but when Wine starts preferring our builtin dll over native it will be. @@ -913,10 +965,10 @@ load_d3dx10() { helper_directx_dl # Kinder, less invasive directx10 - only extract and override d3dx10_??.dll - cabextract -d "$WINETRICKS_TMP" -L -F '*d3dx10*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME + try_cabextract -d "$WINETRICKS_TMP" -L -F '*d3dx10*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME for x in `ls "$WINETRICKS_TMP"/*.cab` do - cabextract -d "$WINDIR"/system32 -L -F '*.dll' "$x" + try_cabextract -d "$WINDIR"/system32 -L -F '*.dll' "$x" done # For now, not needed, but when Wine starts preferring our builtin dll over native it will be. @@ -925,11 +977,23 @@ load_d3dx10() { } #---------------------------------------------------------------- + +load_d3dxof() { + helper_directx_dl + + try_cabextract -d "$WINETRICKS_TMP" -L -F 'dxnt.cab' "$WINETRICKS_CACHE"/$DIRECTX_NAME + try_cabextract -d "$WINDIR"/system32 -L -F 'd3dxof.dll' "$WINETRICKS_TMP/dxnt.cab" + + override_dlls native d3dxof +} + +#---------------------------------------------------------------- + load_dinput8() { helper_directx_dl - cabextract -d "$WINETRICKS_TMP" -L -F 'dxnt.cab' "$WINETRICKS_CACHE"/$DIRECTX_NAME - cabextract -d "$WINDIR"/system32 -L -F 'dinput8.dll' "$WINETRICKS_TMP/dxnt.cab" + try_cabextract -d "$WINETRICKS_TMP" -L -F 'dxnt.cab' "$WINETRICKS_CACHE"/$DIRECTX_NAME + try_cabextract -d "$WINDIR"/system32 -L -F 'dinput8.dll' "$WINETRICKS_TMP/dxnt.cab" try $WINE regsvr32 dinput8 @@ -948,12 +1012,12 @@ load_dirac08() { load_directplay() { helper_directx_dl - cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME - cabextract -d "$WINDIR"/system32 -L -F 'dplaysvr.exe' "$WINETRICKS_TMP/dxnt.cab" - cabextract -d "$WINDIR"/system32 -L -F 'dplayx.dll' "$WINETRICKS_TMP/dxnt.cab" - cabextract -d "$WINDIR"/system32 -L -F 'dpnet.dll' "$WINETRICKS_TMP/dxnt.cab" - cabextract -d "$WINDIR"/system32 -L -F 'dpnhpast.dll' "$WINETRICKS_TMP/dxnt.cab" - cabextract -d "$WINDIR"/system32 -L -F 'dpwsockx.dll' "$WINETRICKS_TMP/dxnt.cab" + try_cabextract -d "$WINETRICKS_TMP" -L -F dxnt.cab "$WINETRICKS_CACHE"/$DIRECTX_NAME + try_cabextract -d "$WINDIR"/system32 -L -F 'dplaysvr.exe' "$WINETRICKS_TMP/dxnt.cab" + try_cabextract -d "$WINDIR"/system32 -L -F 'dplayx.dll' "$WINETRICKS_TMP/dxnt.cab" + try_cabextract -d "$WINDIR"/system32 -L -F 'dpnet.dll' "$WINETRICKS_TMP/dxnt.cab" + try_cabextract -d "$WINDIR"/system32 -L -F 'dpnhpast.dll' "$WINETRICKS_TMP/dxnt.cab" + try_cabextract -d "$WINDIR"/system32 -L -F 'dpwsockx.dll' "$WINETRICKS_TMP/dxnt.cab" try $WINE regsvr32 dplayx.dll try $WINE regsvr32 dpnet.dll @@ -1112,7 +1176,7 @@ load_dotnet20() { load_fontfix # If this is just a dependency check, don't re-install - if test $PACKAGE != dotnet20 && test -f "$WINDIR"/system32/l_intl.nls + if test $PACKAGE != dotnet20 && test -f "$WINDIR"/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll then echo "prerequisite dotnet20 already installed, skipping" return @@ -1120,7 +1184,7 @@ load_dotnet20() { 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 - test -d "$WINDIR/gecko" || test -d "$WINDIR/system32/gecko" || load_gecko + 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 @@ -1142,7 +1206,7 @@ load_dotnet20sp2() { 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 - test -d "$WINDIR/gecko" || test -d "$WINDIR/system32/gecko" || load_gecko + 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 @@ -1217,7 +1281,7 @@ load_dotnet35() { # See also http://blogs.msdn.com/astebner/archive/2008/07/17/8745415.aspx cd "$DRIVE_C" - cabextract $WINETRICKS_UNIXQUIET "$WINETRICKS_CACHE"/dotnet35/dotnetfx35.exe + try_cabextract $WINETRICKS_UNIXQUIET "$WINETRICKS_CACHE"/dotnet35/dotnetfx35.exe cd wcu/dotNetFramework try $WINE dotNetFx35setup.exe /lang:ENU } @@ -1308,6 +1372,13 @@ load_ffdshow() { #---------------------------------------------------------------- load_flash() { + # If this is just a dependency check, don't re-install + if test $PACKAGE != flash && test -f "$WINDIR"/system32/Macromed/Flash/flashplayer.xpt + then + echo "prerequisite flash already installed, skipping" + return + fi + # www.adobe.com/products/flashplayer/ # Active X plugin @@ -1320,8 +1391,10 @@ load_flash() { # 2009-02-27: sha1sum 86745020a25edc9695a1a6a4d59eae375665a0b3 # 2009-07-31: sha1sum 11a81ad1b19344c28b1e1249169f15dfbd2a04f5 # 2009-12-09: sha1sum f4ec0e95099e354fd01cd3bb27c202f54932dc70 + # 2010-02-20: sha1sum e05ca1999e820b3fa2ca16fc27bc65183d275681 + # 2010-03-15: sha1sum 901b53ebe26c62c0bd7fc7dc400552ce335685bb - download . http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_ax.exe f4ec0e95099e354fd01cd3bb27c202f54932dc70 + download . http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_ax.exe 901b53ebe26c62c0bd7fc7dc400552ce335685bb try $WINE "$WINETRICKS_CACHE"/install_flash_player_ax.exe $WINETRICKS_S # Mozilla / Firefox plugin @@ -1330,8 +1403,10 @@ load_flash() { # 2009-02-27: sha1sum 770db9ad471ffd4357358bc16ff0bb6c98d71e5d # 2009-07-31: sha1sum 9590fb87cc33d3a3a1f2f42a1918f06b9f0fd88d # 2009-12-09: sha1sum ccb4811b1cc26721c4abb2e5a080868acdee7b87 + # 2010-02-20: sha1sum f1df1ab84b61e7f2c3eea0a959d2115dd001816b + # 2010-03-16: sha1sum e2fe55927c4068b0a07636742814682c0a2aa0fe - download . http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player.exe ccb4811b1cc26721c4abb2e5a080868acdee7b87 + download . http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player.exe e2fe55927c4068b0a07636742814682c0a2aa0fe try $WINE "$WINETRICKS_CACHE"/install_flash_player.exe $WINETRICKS_S } @@ -1441,6 +1516,14 @@ _EOF_ #---------------------------------------------------------------- load_gecko() { + # If this is just a dependency check, don't re-install + WINEDIR=`dirname $WINE` + if test $PACKAGE != ie6 && ( test -d "$WINDIR/gecko" || test -d "$WINDIR/system32/gecko" || test -d $WINEDIR/../gecko) + then + echo "prerequisite gecko already installed, skipping" + return + fi + # Load the HTML rendering Engine (Gecko) # FIXME: shouldn't this code be in some script installed # as part of Wine instead of in winetricks? @@ -1499,7 +1582,7 @@ _EOF_ # extract the files mkdir -p "$GECKO_DIR/gecko/$GECKO_VERSION" cd "$GECKO_DIR/gecko/$GECKO_VERSION" - try cabextract $WINETRICKS_UNIXQUIET "$WINETRICKS_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH.cab + try_cabextract $WINETRICKS_UNIXQUIET "$WINETRICKS_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH.cab cd "$olddir" # set install-path @@ -1563,7 +1646,7 @@ _EOF_ # extract the files mkdir -p "$GECKO_DIR/gecko/$GECKO_VERSION" cd "$GECKO_DIR/gecko/$GECKO_VERSION" - try cabextract $WINETRICKS_UNIXQUIET "$WINETRICKS_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.cab + try_cabextract $WINETRICKS_UNIXQUIET "$WINETRICKS_CACHE"/wine_gecko-$GECKO_VERSION$GECKO_ARCH-dbg.cab cd "$olddir" # set install-path @@ -1578,7 +1661,10 @@ _EOF_ 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 - try $WINE "$WINETRICKS_CACHE"/WindowsXP-KB975337-x86-ENU.exe /extract:$WINETRICKS_TMP_WIN $WINETRICKS_QUIET + # Used to use $WINETRICKS_QUIET, 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 # And then make it globally available. try cp "$WINETRICKS_TMP/asms/10/msft/windows/gdiplus/gdiplus.dll" "$WINDIR"/system32/ @@ -1643,18 +1729,14 @@ _EOF_ #---------------------------------------------------------------- -load_icodecs() { - # http://downloadcenter.intel.com/Detail_Desc.aspx?strState=LIVE&ProductID=355&DwnldID=2846 - download . ftp://download.intel.com/support/createshare/camerapack/codinstl.exe 2c5d64f472abe3f601ce352dcca75b4f02996f8a - try $WINE "$WINETRICKS_CACHE"/codinstl.exe - # 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 - try $WINE regsvr32 ir50_32.dll -} - -#---------------------------------------------------------------- load_ie6() { + # If this is just a dependency check, don't re-install + if test $PACKAGE != ie6 && test -f "$WINDIR"/system32/plugin.ocx + then + echo "prerequisite ie6 (or ie7) already installed, skipping" + return + fi + load_msls31 # Unregister Wine IE @@ -2018,15 +2100,16 @@ load_mozillabuild() { #---------------------------------------------------------------- load_mpc() { - download . $SOURCEFORGE/guliverkli2/Media%20Player%20Classic/6.4.9.1/mplayerc_20090706.zip 9b8e06a3997a786dccfb5739e0cc1a34f17905b6 + 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"/mplayerc_20090706.zip + 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\mplayerc.exe" + warn "MPC now available as $programfilesdir_win\Media Player Classic\mpc-hc.exe" } #---------------------------------------------------------------- @@ -2059,7 +2142,7 @@ load_mshflxgd() { # 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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/MSHFLXGD.CAB try cp -f "$WINETRICKS_TMP"/[Mm][Ss][Hh][Ff][Ll][Xx][Gg][Dd].[Oo][Cc][Xx] "$WINDIR"/system32 } @@ -2068,7 +2151,7 @@ load_mshflxgd() { 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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/InstMsiA.exe try cp -f "$WINETRICKS_TMP"/msls31.dll "$WINDIR"/system32 } @@ -2080,7 +2163,7 @@ load_msmask() { # 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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/MSMASK32.CAB try cp -f "$WINETRICKS_TMP"/[Mm][Ss][Mm][Aa][Ss][Kk]32.[Oo][Cc][Xx] "$WINDIR"/system32/msmask32.ocx try $WINE regsvr32 msmask32.ocx } @@ -2100,7 +2183,7 @@ 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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/sct10en.exe try cp -f "$WINETRICKS_TMP"/msscript.ocx "$WINDIR"/system32 try $WINE regsvr32 msscript.ocx } @@ -2132,7 +2215,7 @@ load_msxml4() { # download . 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 } @@ -2151,7 +2234,7 @@ load_msxml6() { # 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 } @@ -2220,7 +2303,7 @@ load_openwatcom() { 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_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 "$WINDIR"/system32/pdh.dll } @@ -2268,18 +2351,38 @@ load_psdkvista() load_psdkwin7() { # http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en - warn "When given a choice, select only C++ compilers and headers, the other options don't work yet." load_vcrun6 load_vcrun2008 load_dotnet20 + load_gdiplus # work around http://bugs.winehq.org/show_bug.cgi?id=21509 # 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" + + # 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_ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows] +"CurrentVersion"="v7.0" +"CurrentInstallFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.0\\" + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0] +"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.0\\" +"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 } #---------------------------------------------------------------- @@ -2381,7 +2484,7 @@ volnum() { 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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/Q249973i.EXE try cp -f "$WINETRICKS_TMP"/riched??.dll "$WINDIR"/system32 override_dlls native,builtin riched20 riched32 @@ -2398,7 +2501,7 @@ load_riched30() { # (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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/InstMsiA.exe try cp -f "$WINETRICKS_TMP"/riched20.dll "$WINDIR"/system32 override_dlls native,builtin riched20 @@ -2409,7 +2512,7 @@ load_riched30() { load_richtx32() { download . http://activex.microsoft.com/controls/vb6/richtx32.cab da404b566df3ad74fe687c39404a36c3e7cadc07 - try cabextract "$WINETRICKS_CACHE"/richtx32.cab -d "$WINDIR"/system32 -F RichTx32.Ocx + try_cabextract "$WINETRICKS_CACHE"/richtx32.cab -d "$WINDIR"/system32 -F RichTx32.Ocx try $WINE regsvr32 RichTx32.ocx } @@ -2430,11 +2533,25 @@ load_shockwave() { #---------------------------------------------------------------- +load_steam() { + load_flash + load_fontfix + load_gecko + load_ie6 + load_liberation + load_tahoma + download . http://storefront.steampowered.com/download/SteamInstall.msi a0ca8791b7b2e96665ee059e03eebbfb3d95be55 + try $WINE msiexec /i "$WINETRICKS_CACHE"/SteamInstall.msi $WINETRICKS_QUIET + warn "Once Steam is running, disable player notifications and in-game chat in Settings, or games will crash on launch; see wine bug 22053" +} + +#---------------------------------------------------------------- + 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_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 @@ -2448,7 +2565,7 @@ load_urlmon() { # 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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE/Q837251.exe" try cp -f "$WINETRICKS_TMP"/URLMON.DLL "$WINDIR"/system32/urlmon.dll override_dlls native,builtin urlmon } @@ -2456,7 +2573,7 @@ load_urlmon() { 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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE"/InstMsiA.exe try cp -f "$WINETRICKS_TMP"/usp10.dll "$WINDIR"/system32 override_dlls native,builtin usp10 } @@ -2572,7 +2689,7 @@ load_vcrun6() { # 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 "$WINDIR"/system32/ -F mfc42u.dll + try_cabextract "$WINETRICKS_CACHE"/vcredist.exe -d "$WINDIR"/system32/ -F mfc42u.dll override_dlls native,builtin msvcrt @@ -2588,7 +2705,7 @@ load_vcrun6sp6() { # No EULA is presented when passing command-line extraction arguments, # so we'll simplify extraction with cabextract. We'll also 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_cabextract "$WINETRICKS_CACHE"/Vs6sp6.exe -d "$WINETRICKS_TMP" -F vcredist.exe try mv "$WINETRICKS_TMP"/vcredist.exe "$WINETRICKS_CACHE"/vcredistsp6.exe fi @@ -2609,7 +2726,7 @@ load_vcrun6sp6() { # 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 "$WINDIR"/system32/ -F mfc42u.dll + try_cabextract "$WINETRICKS_CACHE"/vcredistsp6.exe -d "$WINDIR"/system32/ -F mfc42u.dll override_dlls native,builtin msvcrt } @@ -2730,7 +2847,7 @@ load_vc2005express() rm -rf vc2005express.tmp || true mkdir vc2005express.tmp cd vc2005express.tmp - cabextract "$WINETRICKS_CACHE"/vc2005express/vcsetup.exe + try_cabextract "$WINETRICKS_CACHE"/vc2005express/vcsetup.exe cp "$WINETRICKS_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) @@ -2836,14 +2953,14 @@ iso_mount() done else # Linux - case "$GUI-$DE" in - 1-gnome) - try gksudo "mkdir -p $ISO_MOUNT_ROOT" - try gksudo "mount -o ro,loop $my_img $ISO_MOUNT_ROOT" + case "$SUDO" in + gksudo) + try $SUDO "mkdir -p $ISO_MOUNT_ROOT" + 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 + try $SUDO mkdir -p $ISO_MOUNT_ROOT + try $SUDO mount -o ro,loop "$my_img" $ISO_MOUNT_ROOT ;; esac fi @@ -2859,14 +2976,14 @@ iso_umount() vcdmount /u cd "$olddir" else - case "$GUI-$DE" in - 1-gnome) - gksudo "umount $ISO_MOUNT_ROOT" - try gksudo "rm -rf $ISO_MOUNT_ROOT" + case "$SUDO" in + gksudo) + $SUDO "umount $ISO_MOUNT_ROOT" + try $SUDO "rm -rf $ISO_MOUNT_ROOT" ;; *) - sudo umount $ISO_MOUNT_ROOT - try sudo rm -rf $ISO_MOUNT_ROOT + $SUDO umount $ISO_MOUNT_ROOT + try $SUDO rm -rf $ISO_MOUNT_ROOT ;; esac fi @@ -2881,22 +2998,33 @@ load_vc2005trial() load_msxml6 load_vcdmount - warn "Downloading/checksumming Visual C++ 2005 Trial. This will take some time!" - download vc2005trial http://download.microsoft.com/download/6/f/5/6f5f7a01-50bb-422d-8742-c099c8896969/En_vs_2005_vsts_180_Trial.img f66ae07618d67e693ca0524d3582208c20e07823 + if test ! -x "$programfilesdir_unix/7-Zip/7z.exe" + then + warn "Installing 7-zip file archiver for vc2005trial image extraction" + load_7zip + fi - iso_umount - iso_mount "$WINETRICKS_CACHE"/vc2005trial/En_vs_2005_vsts_180_Trial.img + # This is the last file that 7-zip extracts. + if test ! -f "$WINETRICKS_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 + fi + + verify_sha1sum 15433993ab7573c5154dbea2dcb65450f2adbf5c "$WINETRICKS_CACHE/vc2005trial/vs/wcu/runmsi.exe" # FIXME: do this right rm -f /cygdrive/c/Users/$USER/AppData/local/temp/dd_vsinstall80.txt - if false && [ $WINETRICKS_QUIET ] + if [ $WINETRICKS_QUIET ] then - # Thanks to http://blogs.msdn.com/astebner/archive/2005/05/24/421314.aspx for unattended install method - # See also http://support.microsoft.com/?kbid=913445 - die "not implemented yet" + 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 else - try cd "$ISO_MOUNT_ROOT/vs/Setup" + try cd "$WINETRICKS_CACHE"/vc2005trial/vs/Setup try $WINE setup.exe # FIXME: unify these and make the windows one right @@ -2916,8 +3044,6 @@ load_vc2005trial() fi cd "$olddir" fi - - iso_umount } #---------------------------------------------------------------- @@ -3103,7 +3229,7 @@ load_wininet() { # (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_cabextract --directory="$WINETRICKS_TMP" "$WINETRICKS_CACHE/3725.exe" try cp -f "$WINETRICKS_TMP"/Wininet.dll "$WINDIR"/system32/wininet.dll override_dlls native,builtin wininet } @@ -3230,12 +3356,12 @@ load_xact() { helper_directx_dl ; # xactengine?_?.dll, X3DAudio?_?.dll, xaudio?_?.dll, xapofx?_?.dll - extract - cabextract -d "$WINETRICKS_TMP" -L -F '*_xact_*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME - cabextract -d "$WINETRICKS_TMP" -L -F '*_x3daudio_*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME - cabextract -d "$WINETRICKS_TMP" -L -F '*_xaudio_*x86*' "$WINETRICKS_CACHE"/$DIRECTX_NAME + 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` do - cabextract -d "$WINDIR"/system32 -L -F '*.dll' "$x" + try_cabextract -d "$WINDIR"/system32 -L -F '*.dll' "$x" done # xactengine?_?.dll, xaudio?_?.dll - register @@ -3275,7 +3401,8 @@ case "$1" in ;; esac -detectDE +detect_menu +detect_sudo GUI=0 case x"$1" in @@ -3292,7 +3419,7 @@ case "$OS" in die_if_user_not_dirowner "$WINEPREFIX" die_if_user_not_dirowner "$WINETRICKS_CACHE" - if [ ! -x "`which "$WINE"`" ] + if [ ! -x "`which "$WINE" 2>/dev/null`" ] then die "Cannot find wine ($WINE)" fi @@ -3305,7 +3432,7 @@ esac mkdir -p "$WINETRICKS_TMP" case $GUI in -1) dogui ; set $todo ;; +1) showmenu ; set $todo ;; esac mkdir -p "$WINETRICKS_CACHE" @@ -3341,22 +3468,17 @@ else fi # Mac folks tend to not have sha1sum, but we can make do with openssl -if [ -x "`which sha1sum`" ] +if [ -x "`which sha1sum 2>/dev/null`" ] then SHA1SUM="sha1sum" -elif [ -x "`which openssl`" ] +elif [ -x "`which openssl 2>/dev/null`" ] then SHA1SUM="openssl dgst -sha1" else die "No sha1sum utility available." fi -if [ ! -x "`which cabextract`" ] -then - die "Cannot find cabextract. Please install it (e.g. 'sudo apt-get install cabextract' or 'sudo yum install cabextract')." -fi - -if [ ! -x "`which unzip`" ] +if [ ! -x "`which unzip 2>/dev/null`" ] then die "Cannot find unzip. Please install it (e.g. 'sudo apt-get install unzip' or 'sudo yum install unzip')." fi @@ -3369,11 +3491,14 @@ do WINETRICKS_QUIET_T="/qt" # Microsoft Control Pad WINETRICKS_UNIXQUIET="-q" WINETRICKS_SILENT="/silent" + WINETRICKS_UNIXSILENT="-silent" WINETRICKS_S="/S" # for NSIS installers WINEDEBUG=${WINEDEBUG:-"fixme-all"} export WINEDEBUG ;; -v) set -x;; + 7zip|7-zip) load_7zip;; + adobeair) load_adobeair;; art2kmin|art2k7min) load_art2kmin;; atmlib) load_atmlib;; autohotkey|ahk) load_autohotkey;; @@ -3386,6 +3511,7 @@ do cygwin) load_cygwin;; d3dx9) load_d3dx9;; d3dx10) load_d3dx10;; + d3dxof) load_d3dxof;; dcom98) load_dcom98;; dinput8) load_dinput8;; dirac|dirac0.8) load_dirac08;; @@ -3415,7 +3541,6 @@ do glsl-disable) load_glsl_disable;; glsl-enable) load_glsl_enable;; hosts) load_hosts;; - icodecs) load_icodecs;; ie6) load_ie6;; ie7) load_ie7;; jet40) load_jet40;; @@ -3456,6 +3581,7 @@ do riched30) load_riched30;; richtx32) load_richtx32;; shockwave) load_shockwave;; + steam) load_steam;; tahoma) load_tahoma;; urlmon) load_urlmon;; usp10) load_usp10;; @@ -3492,7 +3618,7 @@ do xact|xactengine|x3daudio) load_xact;; xvid) load_xvid;; - allcodecs|allvcodecs) load_vcrun6; load_ffdshow; load_xvid; load_icodecs;; + allcodecs|allvcodecs) load_vcrun6; load_ffdshow; load_xvid;; allfonts) load_corefonts; load_tahoma; load_liberation; load_droid; load_wenquanyi;; ddr=gdi) set_ddr gdi;; ddr=opengl) set_ddr opengl;; @@ -3526,6 +3652,7 @@ do 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;;