[Bug 28213] IE7/IE8 x64 installation doesn't complete (cmd.exe builtin copy command asks for overwrite despite being invoked through "cmd.exe /c")

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Apr 6 13:34:17 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=28213

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at 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 at 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

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list