[Bug 35659] Dassault Systemes CATIA v5 reports 'no certified opengl libary has been found. Check your system installation' on startup (opengl32.dll version resource 'LegalCopyright' mismatch)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Mar 2 14:26:29 CST 2014


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

Anastasius Focht <focht at gmx.net> changed:

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

-- 
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