| 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: | |
| Category: | Connector / ODBC | Severity: | S3 (Non-critical) |
| Version: | 8.2.0 | OS: | Windows |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | versioning, windows | ||
[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.

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