Bug #113544 Missing fields in versioninfo ressources
Submitted: 3 Jan 2024 13:52 Modified: 6 Mar 2024 20:30
Reporter: Stéphane DELGADO Email Updates:
Status: Closed Impact on me:
None 
Category:Connector / ODBC Severity:S3 (Non-critical)
Version:8.2.0 OS:Windows
Assigned to: CPU Architecture:Any
Tags: versioning, windows

[3 Jan 2024 13:52] Stéphane DELGADO
Description:
Some fields in VersionInfo ressources are missing in PE images.

The missing fields are :
- CompanyName ("required" in msdn)
- FileDescription ("required" in msdn)  [visible in "Details" tab]
- InternalName ("required" in msdn)
- LegalCopyright (optional in msdn)     [visible in "Details" tab]
- LegalTrademarks (optional in msdn)
- OriginalFilename ("required" in msdn) [visible in "Details" tab]
- ProductName ("required" in msdn)      [visible in "Details" tab]

Seems like that "required" fields are replaced with empty string when not set.

Source : https://learn.microsoft.com/en-us/windows/win32/menurc/versioninfo-resource

How to repeat:
By command line (PowerShell) :
> ls <pe_image> | % VersionInfo | fl *

Graphically :
Click-right then "Properties" on one PE image. You should see the related fields in the "Details" tab.

Suggested fix:
Seems like that the required compilation infrastructure is already in place :

1) Add constant VersionInfo fields in "cmake/versioninfo.rc.in" :
   - CompanyName
   - LegalCopyright
   - LegalTrademarks
   - ProductName

Note : Do not know if external images manually built in your project (like "libfido2") can use the same copyrights. Maybe in a first time "CompanyName"/"LegalCopyright"/"LegalTrademarks" can be omitted on those images.

2) Use "$target" for other (dynamic) VersionInfo fields in "cmake/versioninfo.rc.in" :
   - Set "InternalName" to "$target"
   - Set "OriginalFilename| to "${target}.dll" or "${target}.exe" depending on the kind of image.

Note : A working VersionInfo ressource file is present in the following file of Connector/ODBC project : "driver/driver.rc.cmake".
[4 Jan 2024 6:53] MySQL Verification Team
Hello Stéphane DELGADO,

Thank you for the report and feedback.

regards,
Umesh
[26 Feb 2024 7:47] Rafal Somla
Posted by developer:
 
The fix should also cover published executables such as myodbc-installer.exe (see bug#113545).
[6 Mar 2024 20:30] Philip Olson
Posted by developer:
 
This was fixed via an effort that reviewed and updated all connectors, which I'm guessing this bug report inspired... so thanks for that! Here's the pending 8.4.0 release note for those:

        Expanded the Windows file attributes for packaged executable and
        DLL files.

Thank you for the bug report.