Correctly version and sign the 32 bit synthDriverHost runtime executable and don't include unnecessary pdb lib and exp files#19683
Merged
Conversation
… dll files, not lib, exp or pdb files as they are not required.
…ion and publisher commandline arguments so that these can be set dynamically. The github action and sconstruct now pass version and publisher to py2exe when compiling the 32 bit synthDriverHost runtime.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR addresses issues with the 32-bit synthDriverHost runtime executable introduced in PR #19432. The changes ensure that nvda_synthDriverHost.exe has correct version information, is properly signed during distribution builds, and that the _synthDrivers32 directory only contains necessary runtime files (.py and .dll), excluding build artifacts (.lib, .exp, .pdb).
Changes:
- Added command-line arguments to setup-runtime.py for dynamically setting version and publisher information
- Modified sconstruct and GitHub workflow to pass version and publisher to the synthDriverHost32Runtime build process
- Added signing support for nvda_synthDriverHost.exe during dist builds
- Changed file copying for _synthDrivers32 to only include .py and .dll files, excluding unnecessary build artifacts
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| source/setup.py | Modified to use explicit glob patterns for _synthDrivers32, copying only .py and .dll files instead of all files recursively |
| sconstruct | Added signing for nvda_synthDriverHost.exe with file existence check; updated synthDriverHost32Runtime command to pass version and publisher; adjusted environment variable handling |
| runtime-builders/synthDriverHost32/setup-runtime.py | Added command-line arguments for --version and --publisher, with logic to override buildVersion defaults |
| .github/workflows/testAndPublish.yml | Updated to pass version and publisher arguments to setup-runtime.py |
Comments suppressed due to low confidence (2)
sconstruct:709
- The version and publisher variables should be quoted when passed to the command line to handle potential spaces or special characters. Currently, if version or publisher contain spaces, the command will fail. Consider using shlex.quote or similar for proper shell escaping, or at a minimum wrap the variables in quotes like this: --version "{version}" --publisher "{publisher}"
ENV=os.environ,
sconstruct:709
- There are two spaces between "." and "python" in this command. While this is not an error, it appears to be unintentional. Consider using a single space for consistency with the GitHub workflow on line 122.
ENV=os.environ,
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
seanbudd
approved these changes
Feb 25, 2026
7 tasks
SaschaCowley
pushed a commit
that referenced
this pull request
Feb 27, 2026
… executable and don't include unnecessary pdb lib and exp files" (#19714) ### Reverts PR Reverts #19683 ### Issues fixed N/A ### Issues reopened <!-- Issues that will be re-opened by reverting, i.e. the issues that were fixed via the PR getting reverted --> Reopens #19654 Reopens #19653 ### Reason for revert This PR is causing system tests to hang indefinitely for signed builds. NVDA fails to start after being installed. Compare these two commit builds - https://github.com/nvaccess/nvda/actions/runs/22465329705 - https://github.com/nvaccess/nvda/actions/runs/22465348278 ### Can this PR be reimplemented? If so, what is required for the next attempt Create `try-` builds from the PR which pass
7 tasks
SaschaCowley
pushed a commit
that referenced
this pull request
Mar 9, 2026
…xists. (#19749) ### Summary of the issue: The 32 bit synthDriverhost runtime executable introduced in PR #19432 is not signed. ### Description of user facing changes: ### Description of developer facing changes: ### Description of development approach: When building the main dist target with scons, also sign nvda_synthDriverHost.exe if it exists. This is an improvement over the previous try in pr #19683, where now the path is passed into the lambda by value so that it does not change in the for loop after being captured. ### Testing strategy: * [x] Compiled with scons synthDriverHost32Runtime and scons dist, providing a signing certificate *Confirmed that nvda_synthDriverHost.exe was signed. * [x] Run the above tests on a try build from this pr. ### Known issues with pull request: None known.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to issue number:
Fixes #19654
Fixes #19653
Summary of the issue:
The 32 bit synthDriverhost runtime introduced in PR #19432:
Description of user facing changes:
Description of developer facing changes:
Description of development approach:
Testing strategy:
Known issues with pull request:
None known.
Code Review Checklist: