http://bugs.winehq.org/show_bug.cgi?id=35659
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Summary|no certified opengl libary |Dassault Systemes CATIA v5 |has been found. Check your |reports 'no certified |system installation |opengl libary has been | |found. Check your system | |installation' on startup | |(opengl32.dll version | |resource 'LegalCopyright' | |mismatch) Ever confirmed|0 |1
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Relevant part of trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Dassault Systemes/B19/intel_a/code/bin
$ WINEDEBUG=+tid,+seh,+relay wine ./CATSTART.exe >>log.txt 2>&1 ... 0024:Call KERNEL32.CreateProcessW(00000000,004134a8 L""CNEXT.EXE"",00000000,00000000,00000001,00000000,00000000,00000000,0033f3d0,0033f3b0) ret=00403b5b ... 0026:Call KERNEL32.__wine_kernel_init() ret=7bc5a3aa 0024:Ret KERNEL32.CreateProcessW() retval=00000001 ret=00403b5b ... 0026:Call PE DLL (proc=0xf2f3f6,module=0xd30000 L"CATViz.dll",reason=PROCESS_ATTACH,res=0x1) ... 0026:Call version.GetFileVersionInfoSizeW(02263a60 L"C:\windows\system32\opengl32.dll",0033d8a0) ret=00dc0ea7 ... 0026:Ret version.GetFileVersionInfoSizeW() retval=000006a4 ret=00dc0ea7 ... 0026:Call version.GetFileVersionInfoW(02263a60 L"C:\windows\system32\opengl32.dll",00000000,000006a4,0d07f3c0) ret=00dc0f24 ... 0026:Ret version.GetFileVersionInfoW() retval=00000001 ret=00dc0f24 0026:Call version.VerQueryValueW(0d07f3c0,00f41c5c L"\VarFileInfo\Translation",0033d8d0,0033d8c0) ret=00dc0fa8 0026:Ret version.VerQueryValueW() retval=00000001 ret=00dc0fa8 0026:Call KERNEL32.GetLastError() ret=78132dba 0026:Ret KERNEL32.GetLastError() retval=00000000 ret=78132dba 0026:Call KERNEL32.MultiByteToWideChar(000004e4,00000000,02263b60 "\StringFileInfo\040904e4\CompanyName",00000024,00000000,00000000) ret=0051e7a6 0026:Ret KERNEL32.MultiByteToWideChar() retval=00000024 ret=0051e7a6 0026:Call KERNEL32.MultiByteToWideChar(000004e4,00000000,02263b60 "\StringFileInfo\040904e4\CompanyName",00000024,02263a50,00000024) ret=0051e7b6 0026:Ret KERNEL32.MultiByteToWideChar() retval=00000024 ret=0051e7b6 0026:Call version.VerQueryValueW(0d07f3c0,02263a50 L"\StringFileInfo\040904e4\CompanyName",0033d8c8,0033d8cc) ret=00dc1029 0026:Ret version.VerQueryValueW() retval=00000001 ret=00dc1029 0026:Call KERNEL32.GetLastError() ret=78132dba 0026:Ret KERNEL32.GetLastError() retval=00000000 ret=78132dba 0026:Call KERNEL32.WideCharToMultiByte(000004e4,00000000,022639c0 L"Microsoft Corporation",00000016,00000000,00000000,00000000,00000000) ret=0051e809 0026:Ret KERNEL32.WideCharToMultiByte() retval=00000016 ret=0051e809 0026:Call KERNEL32.WideCharToMultiByte(000004e4,00000000,022639c0 L"Microsoft Corporation",00000016,02263c10,00000016,00000000,00000000) ret=0051e81d 0026:Ret KERNEL32.WideCharToMultiByte() retval=00000016 ret=0051e81d 0026:Call KERNEL32.GetLastError() ret=78132dba 0026:Ret KERNEL32.GetLastError() retval=00000000 ret=78132dba 0026:Call version.VerQueryValueW(0d07f3c0,00f41c5c L"\VarFileInfo\Translation",0033d8d0,0033d8c0) ret=00dc0fa8 0026:Ret version.VerQueryValueW() retval=00000001 ret=00dc0fa8 0026:Call KERNEL32.GetLastError() ret=78132dba 0026:Ret KERNEL32.GetLastError() retval=00000000 ret=78132dba 0026:Call KERNEL32.MultiByteToWideChar(000004e4,00000000,02263b60 "\StringFileInfo\040904e4\LegalCopyright",00000027,00000000,00000000) ret=0051e7a6 0026:Ret KERNEL32.MultiByteToWideChar() retval=00000027 ret=0051e7a6 0026:Call KERNEL32.MultiByteToWideChar(000004e4,00000000,02263b60 "\StringFileInfo\040904e4\LegalCopyright",00000027,02263a50,00000027) ret=0051e7b6 0026:Ret KERNEL32.MultiByteToWideChar() retval=00000027 ret=0051e7b6 0026:Call version.VerQueryValueW(0d07f3c0,02263a50 L"\StringFileInfo\040904e4\LegalCopyright",0033d8c8,0033d8cc) ret=00dc1029 0026:Ret version.VerQueryValueW() retval=00000001 ret=00dc1029 0026:Call KERNEL32.GetLastError() ret=78132dba 0026:Ret KERNEL32.GetLastError() retval=00000000 ret=78132dba 0026:Call KERNEL32.WideCharToMultiByte(000004e4,00000000,0203f210 L"Copyright (c) 1993-2014 the Wine project authors (see the file AUTHORS for a complete list)",0000005c,00000000,00000000,00000000,00000000) ret=0051e809 0026:Ret KERNEL32.WideCharToMultiByte() retval=0000005c ret=0051e809 0026:Call KERNEL32.WideCharToMultiByte(000004e4,00000000,0203f210 L"Copyright (c) 1993-2014 the Wine project authors (see the file AUTHORS for a complete list)",0000005c,0203f1a0,0000005c,00000000,00000000) ret=0051e81d 0026:Ret KERNEL32.WideCharToMultiByte() retval=0000005c ret=0051e81d 0026:Call KERNEL32.GetLastError() ret=78132dba 0026:Ret KERNEL32.GetLastError() retval=00000000 ret=78132dba ... 0026:Call user32.CreateWindowExW(00000000,00f524e8 L"Warning",00f524e8 L"Warning",80cc0000,00000190,00000190,00000320,00000064,00000000,00000000,00000000,00000000) ret=00eb9595 ... 0026:Call user32.CreateWindowExW(00000000,00f5243c L"static",00f52450 L"No certified OpenGL library has been found. Check your system installation.",50000001,00000000,0000000a,00000320,00000014,00020218,00000000,00000000,00000000) ret=00eb9490 ... --- snip ---
CATViz.dll: CheckCertifiedOpenGLLibrary() export
The code reads 'CompanyName' and 'LegalCopyright' from opengl32.dll version resource (both must be a least 16 characters wide) and makes a substring match against:
1) 'Microsoft' 2) 'Fakespace' 3) 'Dassault Systemes'
Either each of these has to be present in _both_ strings. Unfortunately Wine's 'LegalCopyright' string fails here.
I quickly hacked opengl32 version resource and appended 'Microsoft' in 'LegalCopyright' string to make it work. The 'LegalCopyright' string resource is not overridable by preprocessor so I had to copy the contents of 'wine/wine_common_ver.rc' in order to modify the 'LegalCopyright' string.
Since there was a comment "Gameguard expects this" for 'Microsoft' in 'CompanyName' string it might be acceptable to include 'Microsoft' to 'LegalCopyright' (just needs to appear somewhere in the string) as workaround just for this dll.
If 'Microsoft' is not feasible, 'Fakespace' could be used to appear in both, 'CompanyName' and 'LegalCopyright' in opengl32.dll version resource.
If that's still not feasible .. well then this bug is a WONTFIX. The workaround is to have users overwrite Wine's placeholder with native opengl32.dll to cheat CATIA opengl32 version resource check. Builtin will be still loaded at runtime.
$ wine --version wine-1.7.13-118-g0eb6265
Regards