http://bugs.winehq.org/show_bug.cgi?id=10002
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #8 from Anastasius Focht focht@gmx.net 2008-03-31 15:48:51 --- Hello,
there are various issues though the app is not really specific about the cause. The commercial vbox wrapper protection scheme is a bit of nuisance here so one has to reduce the number of possible causes in the startup phase one by one.
The first one is that installer and the app/support tools don't get well with color profiles in mscms storage (the 'private' locations will work). With the current implementation of mscms api, the profiles are stored in "windows/system32/spool/drivers/color". This works as long as the mscms API is used to retrieve the directory where the profiles are stored.
Unfortunately the CS installer stores the profiles *NOT* in "windows/system32/spool/drivers/color" but in the old 9X "windows/system32/Color/" location (creates the "Color" directory if not present).
--- snip illustrator installation --- .. 001c:Call KERNEL32.GetFileAttributesA(0298ff00 "C:\windows\system32\Color\Adob257b.rra") ret=10033a6e 001c:Ret KERNEL32.GetFileAttributesA() retval=ffffffff ret=10033a6e 001c:Call KERNEL32.CreateFileA(0298ff00 "C:\windows\system32\Color\Adob257b.rra",40000000,00000001,00000000,00000002,00000080,00000000) ret=1002f158 001c:Ret KERNEL32.CreateFileA() retval=00002e30 ret=1002f158 .. 001c:Call KERNEL32.GetFileAttributesA(0298ff00 "C:\windows\system32\Color\AdobeRGB1998.icc") ret=10033a6e 001c:Ret KERNEL32.GetFileAttributesA() retval=ffffffff ret=10033a6e 001c:Call KERNEL32.DeleteFileA(0298ff00 "C:\windows\system32\Color\AdobeRGB1998.icc") ret=1005c7c5 001c:Ret KERNEL32.DeleteFileA() retval=00000000 ret=1005c7c5 001c:Call KERNEL32.GetLastError() ret=1005c7cb 001c:Ret KERNEL32.GetLastError() retval=00000002 ret=1005c7cb 001c:Call KERNEL32.MoveFileA(0298ff48 "C:\windows\system32\Color\Adob257b.rra",0298ff00 "C:\windows\system32\Color\AdobeRGB1998.icc") ret=1005c823 001c:Ret KERNEL32.MoveFileA() retval=00000001 ret=1005c823 --- snip illustrator installation ---
Starting with fresh ~/.wine. After cs trial installation:
--- snip --- [focht@nexus Color]$ pwd /home/focht/.wine/drive_c/windows/system32/Color [focht@nexus Color]$ ls -lsa total 7360 8 drwxrwxr-x 2 focht focht 4096 2008-03-30 21:59 . 8 drwxrwxr-x 8 focht focht 4096 2008-03-30 21:59 .. 8 -rw-rw-r-- 1 focht focht 560 2003-11-06 20:46 AdobeRGB1998.icc 8 -rw-rw-r-- 1 focht focht 552 2003-11-06 20:46 AppleRGB.icc 8 -rw-rw-r-- 1 focht focht 552 2003-11-06 20:46 CIERGB.icc 8 -rw-rw-r-- 1 focht focht 560 2003-11-06 20:46 ColorMatchRGB.icc 556 -rw-rw-r-- 1 focht focht 557164 2003-11-06 20:46 EuroscaleCoated.icc 556 -rw-rw-r-- 1 focht focht 557164 2003-11-06 20:46 EuroscaleUncoated.icc 556 -rw-rw-r-- 1 focht focht 557168 2003-11-06 20:46 JapanColor2001Coated.icc 556 -rw-rw-r-- 1 focht focht 557168 2003-11-06 20:46 JapanColor2001Uncoated.icc 556 -rw-rw-r-- 1 focht focht 557160 2003-11-06 20:46 JapanStandard.icc 556 -rw-rw-r-- 1 focht focht 557164 2003-11-06 20:46 JapanWebCoated.icc 8 -rw-rw-r-- 1 focht focht 556 2003-11-06 20:46 NTSC1953.icc 8 -rw-rw-r-- 1 focht focht 552 2003-11-06 20:46 PAL_SECAM.icc 716 -rw-rw-r-- 1 focht focht 722600 2003-11-06 20:46 Photoshop4DefaultCMYK.icc 716 -rw-rw-r-- 1 focht focht 722576 2003-11-06 20:46 Photoshop5DefaultCMYK.icc 8 -rw-rw-r-- 1 focht focht 552 2003-11-06 20:46 SMPTE-C.icc 8 -rw-rw-r-- 1 focht focht 3144 2003-11-06 20:46 sRGB Color Space Profile.icm 280 -rw-rw-r-- 1 focht focht 274474 2003-11-15 14:55 stdpyccl.icm 556 -rw-rw-r-- 1 focht focht 557168 2003-11-06 20:46 USSheetfedCoated.icc 556 -rw-rw-r-- 1 focht focht 557168 2003-11-06 20:46 USSheetfedUncoated.icc 556 -rw-rw-r-- 1 focht focht 557168 2003-11-06 20:46 USWebCoatedSWOP.icc 556 -rw-rw-r-- 1 focht focht 557164 2003-11-06 20:46 USWebUncoated.icc 8 -rw-rw-r-- 1 focht focht 560 2003-11-06 20:46 WideGamutRGB.icc --- snip ---
and "new" mscms storage:
--- snip --- [focht@nexus color]$ pwd /home/focht/.wine/drive_c/windows/system32/spool/drivers/color [focht@nexus color]$ ls -lsa total 16 8 drwxrwxr-x 2 focht focht 4096 2008-03-31 21:12 . 8 drwxrwxr-x 5 focht focht 4096 2008-03-31 21:12 .. --- snip ---
Illustrator and other support tools later retrieve the profiles location by using GetColorDirectoryA().
--- snip illustrator trace --- .. 0013:Call mscms.GetColorDirectoryA(00000000,0033edf4,0033e9d4) ret=015df457 .. 0013:Call KERNEL32.GetSystemDirectoryW(0033e6dc,00000100) ret=6116e9c0 0013:Ret KERNEL32.GetSystemDirectoryW() retval=00000013 ret=6116e9c0 0013:Call KERNEL32.WideCharToMultiByte(00000000,00000000,00158698 L"C:\windows\system32\spool\drivers\color",ffffffff,00000000,00000000,00000000,00000000) ret=6116ed6c 0013:Ret KERNEL32.WideCharToMultiByte() retval=00000028 ret=6116ed6c .. 0013:Ret mscms.GetColorDirectoryA() retval=00000001 ret=015df457 .. 0013:Call KERNEL32.FindFirstFileA(0033e43c "C:\windows\system32\spool\drivers\color\*",0033e540) ret=015deb47 0013:Ret KERNEL32.FindFirstFileA() retval=00158698 ret=015deb47 .. 0013:Call KERNEL32.GetSystemDirectoryA(0033edf4,00000104) ret=015df4a5 0013:Ret KERNEL32.GetSystemDirectoryA() retval=00000013 ret=015df4a5 0013:Call KERNEL32.FindFirstFileA(0033e43c "C:\windows\system32\Color\*",0033e540) ret=015deb47 0013:Ret KERNEL32.FindFirstFileA() retval=00158698 ret=015deb47 .. 0013:Call advapi32.RegOpenKeyExA(80000002,0163dab4 "SOFTWARE\Microsoft\Windows\CurrentVersion",00000000,00020019,0033f14c) ret=015de83d 0013:Ret advapi32.RegOpenKeyExA() retval=00000000 ret=015de83d 0013:Call advapi32.RegQueryValueExA(00000114,0163daa4 "CommonFilesDir",00000000,0033f144,0033ed34,0033f148) ret=015de866 0013:Ret advapi32.RegQueryValueExA() retval=00000000 ret=015de866 0013:Call advapi32.RegCloseKey(00000114) ret=015de8a3 0013:Ret advapi32.RegCloseKey() retval=00000000 ret=015de8a3 0013:Call KERNEL32.GetFileAttributesA(0033f198 "C:\Program Files\Common Files\Adobe\") ret=015de62a 0013:Ret KERNEL32.GetFileAttributesA() retval=00000010 ret=015de62a 0013:Call KERNEL32.GetFileAttributesA(0033f198 "C:\Program Files\Common Files\Adobe\Color\") ret=015de62a 0013:Ret KERNEL32.GetFileAttributesA() retval=00000010 ret=015de62a .. 0013:Call KERNEL32.CreateFileA(0033f198 "C:\Program Files\Common Files\Adobe\Color\ACE1Cache.lst",80000000,00000003,0033f0f8,00000003,00000080,00000000) ret=01618801 0013:Ret KERNEL32.CreateFileA() retval=00000114 ret=01618801 .. 0013:Call KERNEL32.CreateFileA(0033f33c "C:\windows\system32\spool\drivers\color\sRGB Color Space Profile.icm",80000000,00000003,0033f214,00000003,00000080,00000000) ret=01618801 0013:Ret KERNEL32.CreateFileA() retval=ffffffff ret=01618801 0013:Call KERNEL32.GetLastError() ret=0161880d 0013:Ret KERNEL32.GetLastError() retval=00000002 ret=0161880d .. 0013:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0033f27c) ret=0160b183 0013:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b8419a0 0013:trace:seh:raise_exception info[0]=19930520 0013:trace:seh:raise_exception info[1]=0033f2a4 0013:trace:seh:raise_exception info[2]=016339e4 0013:trace:seh:raise_exception eax=7b82c3e9 ebx=7b8ae884 ecx=00000000 edx=0033f260 esi=0033f260 edi=0033f1e0 0013:trace:seh:raise_exception ebp=0033f1c8 esp=0033f164 cs=0073 ds=007b es=007b fs=0033 gs=003b flags=00000216 0013:trace:seh:call_stack_handlers calling handler at 0x161b6d0 code=e06d7363 flags=1 0013:trace:seh:call_stack_handlers handler at 0x161b6d0 returned 1 0013:trace:seh:call_stack_handlers calling handler at 0x161b70a code=e06d7363 flags=1 --- snip illustrator trace ---
Nothing is found due to installer putting them in "old" directory and C++ exception is thrown. Not catastrophic for Illustrator because it searches additional 'private' profile locations but it adds additional noise. Other tools like the adobe gamma loader (from "C:\Program Files\Common Files\Adobe\Calibration\Adobe Gamma Loader.exe") won't even work due to that problem.
To solve the profiles problem - supporting the "old" and "new" profile storage I suggest to use a symbolic link.
E.g. wine should create a "windows/system32/Color/" symlink to "windows/system32/spool/drivers/color". That way older and new apps can access the profiles.
With fresh ~./wine, precreation of "color" profile directory symlink and installation, the app and tools find the profiles:
--- snip --- 002e:Call mscms.GetColorDirectoryA(00000000,0033f068,0033ec48) ret=015df457 002e:Call KERNEL32.GetSystemDirectoryW(0033e94c,00000100) ret=67b649c0 002e:Ret KERNEL32.GetSystemDirectoryW() retval=00000013 ret=67b649c0 002e:Call KERNEL32.WideCharToMultiByte(00000000,00000000,00158960 L"C:\windows\system32\spool\drivers\color",ffffffff,00000000,00000000,00000000,00000000) ret=67b64d6c 002e:Ret KERNEL32.WideCharToMultiByte() retval=00000028 ret=67b64d6c 002e:Ret mscms.GetColorDirectoryA() retval=00000001 ret=015df457 .. 002e:Call KERNEL32.FindFirstFileA(0033e6b0 "C:\windows\system32\spool\drivers\color\*",0033e7b4) ret=015deb47 002e:Ret KERNEL32.FindFirstFileA() retval=00158960 ret=015deb47 .. 002e:Call KERNEL32.CreateFileA(0033eb2c "C:\windows\system32\spool\drivers\color\sRGB Color Space Profile.icm",80000000,00000003,00338660,00000003,00000080,00000000) ret=01618801 002e:Ret KERNEL32.CreateFileA() retval=0000011c ret=01618801 .. --- snip ---
Note: This will not solve the crash but will enhance functionality of support tools and removes some noise (less exceptions). More stuff to follow.
Regards