При установке платформы Гарант, использующей java, происходит ошибка. http://bugs.winehq.org/show_bug.cgi?id=2953
В 1.0.5 проблема остаётся. Нужна срочно платформа F1 Турбо
Ошибка DirectDraw. Проявляется при запуске ~/wine_c/windows/temp/I1167212837/Windows/SetupF1.exe в бутылке garant-java. WINEDEBUG=+ddraw показывает следующие строки: trace:ddraw:DllMain (0x7dd40000,0,0x1) warn:ddraw:DllMain There are still existing DirectDraw interfaces. Wine bug or buggy application? warn:ddraw:DllMain DDraw 0x1de0e0 has a refcount of 2 trace:ddraw:IDirectDrawImpl_AddRef (0x1de0e0) : incrementing IDirectDraw7 refcount from 2. trace:ddraw:IDirectDrawImpl_EnumSurfaces (0x1de0e0)->(1,0x33d570,0x1de0e0,0x7dd5c582) trace:ddraw:IDirectDrawSurfaceImpl_AddRef (0x1df6b0) : AddRef increasing from 1 trace:ddraw:IDirectDrawSurfaceImpl_Release (0x1df6b0) : Releasing from 2 warn:ddraw:DestroyCallback Surface 0x1df6b0 has an reference count of 1 trace:ddraw:IDirectDrawSurfaceImpl_Release (0x1df6b0) : Releasing from 1 trace:ddraw:IDirectDrawSurfaceImpl_Release (0x1df6b0) Destroying the render target, uninitializing D3D
При установке j2re-1.4.2.13 получена та же ошибка. Так что это общая проблема java-машин.
надо проверить на новой версии
Надо найти соотв. баги в bugs.winehq.org И повесить если нет.
fixme:font:WineEngCreateFontInstance Untranslated charset 255 fixme:imm:ImmGetOpenStatus (0x21ca78): semi-stub fixme:imm:ImmSetConversionStatus (0x21ca78, 1, 0): stub fixme:imm:ImmGetDefaultIMEWnd (0x10030 - (nil) 0x15f608 ): semi-stub First chance exception: page fault on read access to 0x000002a0 in 32-bit code (0x7e9022a6). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b EIP:7e9022a6 ESP:7cdb3e60 EBP:7cdb3e9c EFLAGS:00010202( - 00 - -RI1) EAX:00000000 EBX:7d24b038 ECX:7eaa81e4 EDX:7cdb3e90 ESI:0021cfb0 EDI:00000000 Stack dump: 0x7cdb3e60: 7d202853 00000de1 7d2469e4 7cdb3e90 0x7cdb3e70: 001e4488 02a70020 00000000 00001000 0x7cdb3e80: 00000000 0000002d 00000000 00000000 0x7cdb3e90: 00000000 7d24b038 0021cfb0 7cdb3f5c 0x7cdb3ea0: 7d1fdcc3 0021cfb0 7cdb3f10 7cdb3f20 0x7cdb3eb0: 7ffc60cc 7cdb3ef4 7ee7f231 7ec15940 Backtrace: =>1 0x7e9022a6 glTexImage2D+0x406() in libgl.so.1 (0x7cdb3e9c) 2 0x7d1fdcc3 in wined3d (+0x5dcc3) (0x7cdb3f5c) 3 0x7d1ffa50 in wined3d (+0x5fa50) (0x7cdb3fac) 4 0x7d27f022 in ddraw (+0x2f022) (0x7cdb3fec) 5 0x0295e32e in awt (+0x6e32e) (0x00568090) 6 0x029555b0 in awt (+0x655b0) (0x02954f50) 7 0x748b5655 (0x5314ec83) 8 0x00000000 (0x00000000) 0x7e9022a6 glTexImage2D+0x406 in libgl.so.1: jmp *0x2a0(%eax)
=>1 0x7e94e2a6 glTexImage2D+0x406() in libgl.so.1 (0x7ce46edc) 2 0x7d263361 IWineD3DSurfaceImpl_BltOverride+0x1b1(This=0x1f2170, DestRect=<register ESI not in topmost frame>, SrcSurface=0x2e060e8, SrcRect=0x7ce4709c, Flags=<is not available>, DDBltFx=0x0) [/net/wine/Projects/wine-origin/dlls/wined3d/surface.c:2588] in wined3d (0x7ce46f8c) 3 0x7d264cc9 IWineD3DSurfaceImpl_Blt+0xa9(iface=<register ESI not in topmost frame>, DestRect=0x7ce470ac, SrcSurface=<register EDI not in topmost frame>, SrcRect=0x7ce4709c, Flags=0x1000000, DDBltFx=0x0) [/net/wine/Projects/wine-origin/dlls/wined3d/surface.c:2775] in wined3d (0x7ce46fbc) 4 0x7d2d9cf3 IDirectDrawSurfaceImpl_Blt+0xb3(iface=0x2ab1b80, DestRect=0x7ce470ac, SrcSurface=0x21b528, SrcRect=0x7ce4709c, Flags=<register ESI not in topmost frame>, DDBltFx=<register EDI not in topmost frame>) [/net/wine/Projects/wine-origin/dlls/ddraw/surface.c:717] in ddraw (0x7ce46ffc) 5 0x0295e32e in awt (+0x6e32e) (0x00569b70) 6 0x029555b0 in awt (+0x655b0) (0x02954f50)
trace:d3d_surface:IWineD3DSurfaceImpl_BltOverride Blt from surface 0x2e05f48 to rendertarget 0x1f2708 trace:d3d_surface:IWineD3DSurfaceImpl_PreLoad (0x2e05f48)Checking to see if the container is a base texture trace:d3d_surface:IWineD3DSurfaceImpl_GetContainer (This 0x2e05f48, riid {3c2aebf6-6f30-11d9-c687-00046142c14f}, ppContainer 0x7ce40ed0) trace:d3d_surface:IWineD3DSurfaceImpl_GetContainer Relaying to QueryInterface trace:d3d_surface:IWineD3DSurfaceImpl_PreLoad (0x2e05f48) : About to load surface
Когда я отключил вывод в этих функциях, падение на первом этапе прекратилось, появились окна диалога установки (пустые внутри, потому что всё рисование осуществляется через Java). Пример программы, воспроизводящей проблему (компилируем на builder с помощью javac): import javax.swing.JFrame; import javax.swing.JPanel; public class FrameDemo2 extends JPanel { public static void main(String args[]) { JFrame frame = new JFrame("FrameDemo2"); frame.setVisible(true); } }
Что используем из awt (исходники в /var/ftp/pub/ALTLinux/SRPMS/j2se1.5-sun-source-1.5.0_11-alt1.i586.rpm) [Loaded sun.awt.im.CompositionAreaHandler from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.text.AttributedString from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.text.CharacterIterator from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.text.AttributedCharacterIterator from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.text.AttributedString$AttributedStringIterator from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded sun.java2d.loops.FontInfo from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded sun.awt.SunGraphicsCallback from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.awt.GraphicsCallback from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.awt.GraphicsCallback$PaintCallback from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded javax.swing.DebugGraphics from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded javax.swing.DebugGraphicsInfo from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded javax.swing.GraphicsWrapper from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded javax.swing.SwingGraphics from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded sun.awt.windows.WVolatileImage from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded sun.awt.image.Image from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.awt.image.RenderedImage from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.awt.image.WritableRenderedImage from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded java.awt.image.BufferedImage from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar] [Loaded sun.awt.image.OffScreenImage from C:\windows\temp\I1167223059\Windows\resource\jre\lib\rt.jar]
Ну вот, я потратил час чтобы прийти к названию функции, которое мы давно давно знали. Интересно, есть ли в этих исходниках обращение к D3D или надо другие искать...
Команда, используемая в Гаранте для запуска java для установки: cmd: "C:\windows\temp\I1171895602\Windows\resource\jre\bin\javaw.exe" -Xms16777216 -Xmx50331648 -classpath "C:\windows\temp\I1171895602\InstallerData\IAClasses.zip;C:\windows\temp\I1171895602\Windows\resource\jdglue.zip;C:\windows\temp\I1171895602\InstallerData\Execute.zip;C:\windows\temp\I1171895602\Windows\InstallerData\Execute.zip;C:\windows\temp\I1171895602\InstallerData\Resource1.zip;C:\windows\temp\I1171895602\Windows\InstallerData\Resource1.zip;C:\windows\temp\I1171895602\InstallerData;C:\windows\temp\I1171895602\Windows\InstallerData;" com.zerog.lax.LAX "C:/windows/temp/I1171895602/Windows/SetupF1.lax" "C:/windows/temp/laxf037.tmp"
Для использования Swing в java нужно запускать JRE с параметром "-Dsun.java2d.noddraw" Нужно сделать так, чтобы при запуске java всегда стартовала с этим параметром.
Проблема с запуском установки из-за ddraw решена. Патч приложен к сборке 1.0.6 (noddraw.patch). При запуске javaw.exe добавляет нужный параметр в командную строку.
Работает. Проверили. CLOSED делать не будем, так как решение - хак.
Похоже проблема была связана с тем, что DirectDraw не работает без GL. См. описанное в 973