http://bugs.winehq.org/show_bug.cgi?id=28213
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |cmd Summary|IE7/IE8 x64 installation |IE7/IE8 x64 installation |doesn't complete |doesn't complete (cmd.exe | |builtin copy command asks | |for overwrite despite being | |invoked through "cmd.exe | |/c") Ever Confirmed|0 |1 Severity|minor |normal
--- Comment #5 from Anastasius Focht focht@gmx.net 2012-04-06 13:34:17 CDT --- Hello,
confirming.
--- snip --- 002b:Call KERNEL32.CreateProcessW(00000000,00105c28 L"update.exe /quiet /norestart /er /log:C:\windows",00000000,00000000,00000000,00000000,00000000,00105e30 L"C:\d4e0e2f7f7b0255baf056c9403\update",006ee450,006ee420) ret=10002205c ... 002d:Call KERNEL32.__wine_kernel_init() ret=7f0ce7cf963e 002b:Ret KERNEL32.CreateProcessW() retval=00000001 ret=10002205c ... 002d:Call KERNEL32.ExpandEnvironmentStringsA(03119500 "%SystemRoot%\SysWOW64\cmd.exe /d /q /c copy %SourcePath%\update\update.exe.manifest %SystemRoot%\ie8\spuninst\spuninst.exe.manifest 2>nul 1>nul",0311a510,00001000) ret=10008a5d8 002d:Ret KERNEL32.ExpandEnvironmentStringsA() retval=0000009e ret=10008a5d8 ... 002d:Call KERNEL32.CreateProcessA(00000000,0007e180 "C:\windows\SysWOW64\cmd.exe /d /q /c copy c:\d4e0e2f7f7b0255baf056c9403\\update\update.exe.manifest C:\windows\ie8\spuninst\spuninst.exe.manifest 2>nul 1>nul",00000000,00000000,00000000,200000000000,00000000,00000000,0023ad80,0023ad60) ret=1000862b9 ... 0035:Call KERNEL32.GetFileAttributesW(0033de7c L"C:\windows\ie8\spuninst\spuninst.exe.manifest") ret=7ed02428 0035:Ret KERNEL32.GetFileAttributesW() retval=ffffffff ret=7ed02428 0035:Call KERNEL32.CopyFileW(0033e084 L"C:\d4e0e2f7f7b0255baf056c9403\update\update.exe.manifest",0033de7c L"C:\windows\ie8\spuninst\spuninst.exe.manifest",00000000) ret=7ed024b0 0035:Ret KERNEL32.CopyFileW() retval=00000001 ret=7ed024b0 ... 0035:Call KERNEL32.ExitProcess(00000000) ret=7ed124cb ... 002d:Call KERNEL32.ExpandEnvironmentStringsA(03119500 "%SystemRoot%\system32\cmd.exe /d /q /c copy %SourcePath%\update\update.exe.manifest %SystemRoot%\ie8\spuninst\spuninst.exe.manifest 2>nul 1>nul",0311a510,00001000) ret=10008a5d8 002d:Ret KERNEL32.ExpandEnvironmentStringsA() retval=0000009e ret=10008a5d8 ... 002d:Call KERNEL32.CreateProcessA(00000000,0007e180 "C:\windows\system32\cmd.exe /d /q /c copy c:\d4e0e2f7f7b0255baf056c9403\\update\update.exe.manifest C:\windows\ie8\spuninst\spuninst.exe.manifest 2>nul 1>nul",00000000,00000000,00000000,200000000000,00000000,00000000,0023ad80,0023ad60) ret=1000862b9 ... 0041:Call KERNEL32.GetFileAttributesW(0023e850 L"C:\windows\ie8\spuninst\spuninst.exe.manifest") ret=7f92d0c9882e 0041:Ret KERNEL32.GetFileAttributesW() retval=00000020 ret=7f92d0c9882e 0041:Call KERNEL32.GetEnvironmentVariableW(7f92d0caa300 L"COPYCMD",0023e630,00000004) ret=7f92d0c98943 0041:Ret KERNEL32.GetEnvironmentVariableW() retval=00000000 ret=7f92d0c98943 0041:Call KERNEL32.FindFirstFileW(0023e420 L"C:\d4e0e2f7f7b0255baf056c9403\update\update.exe.manifest",0023ea60) ret=7f92d0c98a08 0041:Ret KERNEL32.FindFirstFileW() retval=0005d550 ret=7f92d0c98a08 0041:Call KERNEL32.GetFileAttributesW(0023d9b0 L"C:\windows\ie8\spuninst\spuninst.exe.manifest") ret=7f92d0c98bcf 0041:Ret KERNEL32.GetFileAttributesW() retval=00000020 ret=7f92d0c98bcf 0041:Call KERNEL32.GetModuleHandleW(00000000) ret=7f92d0ca6c1f 0041:Ret KERNEL32.GetModuleHandleW() retval=7f92d0c90000 ret=7f92d0ca6c1f 0041:Call user32.LoadStringW(7f92d0c90000,000003ee,7f92d0f3e600,00000800) ret=7f92d0ca6c37 0041:Ret user32.LoadStringW() retval=0000000d ret=7f92d0ca6c37 0041:Call KERNEL32.FormatMessageW(00000500,7f92d0f3e600,00000000,00000000,0023d890,00000000,0023d898) ret=7f92d0ca2f0c 0041:Ret KERNEL32.FormatMessageW() retval=00000038 ret=7f92d0ca2f0c ... 0041:Call KERNEL32.WideCharToMultiByte(000001b5,00000000,0004c8a0 L"Overwrite C:\windows\ie8\spuninst\spuninst.exe.manifest?",00000038,0005f5d0,0000ffff,7f92d0caaaa4,00228e54) ret=7f92d0ca2a0f 0041:Ret KERNEL32.WideCharToMultiByte() retval=00000038 ret=7f92d0ca2a0f 0041:Call KERNEL32.WriteFile(00000038,0005f5d0,00000038,00228e58,00000000) ret=7f92d0ca2a38 0041:Ret KERNEL32.WriteFile() retval=00000001 ret=7f92d0ca2a38 0041:Call KERNEL32.GetStdHandle(fffffff5) ret=7f92d0ca31d9 0041:Ret KERNEL32.GetStdHandle() retval=00000038 ret=7f92d0ca31d9 0041:Call KERNEL32.WriteConsoleW(00000038,00235970,00000009,00228e58,00000000) ret=7f92d0ca2995 0041:Ret KERNEL32.WriteConsoleW() retval=00000000 ret=7f92d0ca2995 ... 0041:Call KERNEL32.WideCharToMultiByte(000001b5,00000000,00235970 L" (Yes|No)",00000009,0005f5d0,0000ffff,7f92d0caaaa4,00228e54) ret=7f92d0ca2a0f 0041:Ret KERNEL32.WideCharToMultiByte() retval=00000009 ret=7f92d0ca2a0f 0041:Call KERNEL32.WriteFile(00000038,0005f5d0,00000009,00228e58,00000000) ret=7f92d0ca2a38 0041:Ret KERNEL32.WriteFile() retval=00000001 ret=7f92d0ca2a38 0041:Call KERNEL32.GetStdHandle(fffffff6) ret=7f92d0c97ae1 0041:Ret KERNEL32.GetStdHandle() retval=0000000f ret=7f92d0c97ae1 0041:Call KERNEL32.ReadConsoleW(0000000f,00229760,00000104,0022975c,00000000) ret=7f92d0ca3120 0041:Ret KERNEL32.ReadConsoleW() retval=00000000 ret=7f92d0ca3120 ... --- snip ---
"copy" is called two times on same target path.
There is an .inf file with following section:
--- snip --- [ProcessesToRun] "%SystemRoot%\SysWOW64\cmd.exe /d /q /c copy %SourcePath%\update\update.exe.manifest %SystemRoot%%SP_UNINSTALL_DIR%\spuninst\spuninst.exe.manifest 2>nul 1>nul" "%SystemRoot%\SysWOW64\regsvr32.exe /u /s %SystemRoot%\SysWOW64\browsewm.dll" "%SystemRoot%\SysWOW64\regsvr32.exe /u /s %SystemRoot%\SysWOW64\cdfview.dll" "%SystemRoot%\SysWOW64\regsvr32.exe /u /s %SystemRoot%\SysWOW64\danim.dll" "%SystemRoot%\SysWOW64\regsvr32.exe /u /s %SystemRoot%\SysWOW64\datime.dll" "%SystemRoot%\SysWOW64\regsvr32.exe /u /s %SystemRoot%\SysWOW64\lmrt.dll" "%SystemRoot%\system32\cmd.exe /d /q /c copy %SourcePath%\update\update.exe.manifest %SystemRoot%%SP_UNINSTALL_DIR%\spuninst\spuninst.exe.manifest 2>nul 1>nul" "%SystemRoot%\system32\regsvr32.exe /u /s %SystemRoot%\system32\browsewm.dll" "%SystemRoot%\system32\regsvr32.exe /u /s %SystemRoot%\system32\cdfview.dll" "%SystemRoot%\system32\regsvr32.exe /u /s %SystemRoot%\system32\danim.dll" "%SystemRoot%\system32\regsvr32.exe /u /s %SystemRoot%\system32\datime.dll" "%SystemRoot%\system32\regsvr32.exe /u /s %SystemRoot%\system32\lmrt.dll" "%SystemRoot%\system32\spupdsvc.exe /install" --- snip ---
"%SystemRoot%\SysWOW64\cmd.exe" -> 32 bit "%SystemRoot%\system32\cmd.exe" -> 64 bit
The copy target path is "%SystemRoot%%SP_UNINSTALL_DIR%..." which is not redirected.
You could make a short test on Windows to check if it really asks for overwrite on existing file when invoked through "cmd.exe /c copy ..." (vs. "copy ...").
There exist "COPYCMD" environment variable which you can use to work around this problem in Wine. Run the installer as follows:
--- snip --- $ COPYCMD=/y wine ./IE8-WindowsServer2003-x64-ENU.exe --- snip ---
Regards