New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build NVDA with Visual Studio 2019 #10169
Conversation
PR introduces Flake8 errors See test results for Failed build of commit 19010f29db |
PR introduces Flake8 errors See test results for Failed build of commit 915c5f8752 |
Was the only issue with this pr the comInterface_sonscript stuff, which has already been merged to master, or was there another issue... something about certificate signing? |
The current issue with the pr is that flake8 fails, but I have the
feeling that we could safely ignore it. It would be good to find out why
it fails, but it shouldn't stop this pr from being merged.
As for the signing issue, this issue pops up when you create a try build
for the vs2019 branch. Could it be that the encrypted variables that are
used to decrypt the certificate are only available to the visual studio
2017 build machine in appveyor? May be you will have to change something
in the appveyor config panel on the web for this to work?
|
The following entries from the appveyor build log of a try snapshot are relevant:
|
The flake8 issue can be fixed by changing a line in tests/lint/flake8.ini.
to
In this pr, the scons submodule has changed, and therefore git diff lists include/scons as being changed. However, it seems that flake8 was not correctly matching include to include/scons. Looks like they need to match fully. thus |
The vs2017 appveyor image includes openssl 1.0.2J where as vs2019 appveyor image contains openssl 1.1.1a. |
openssl 1.1.0 changed its digest algorithm for deriving the key from md5 to sha256. For now, we can supply the
|
Thanks for finding all this out.
|
Actually, before getting in a rush, it might be good to point out that @egli filed an issue with the idea to port liblouis to rust. In that case, we will have to use binary builds anyway. In liblouis/liblouis#704 (comment), I asked whether there is a time frame for this. having said that, I don't think it will happen for the next few releases. |
But given how generally broken MD5 is, why keep using it at all? They changed the key default for a reason, as noted in comment 2 of the thread referenced:
Yes specifying the digest -md md5 works however better solution is to
re-encrypt using -md sha256 (and same for decrypt)
which is more secure than md5 hence the change in the default digest on new
versions of openssl
Surely re-encrypting these keys would not be that difficult.
|
Please note, the point of this (draft) pr is to research how hard it is
to switch to vs 2019. Re-encrypting the certificate actually is a bit of
work as it needs to be done carefully and securely, including generating
a new encoded password via Appveyor's backend.
To be clear though, we are only talking about md5 being used to convert
the already decrypted password into the certificate key. The certificate
itself is encrypted using AES 256.
If we do choose to switch to VS 2019, we can certainly re-encrypt the
certificate with openssl 1.1, using SHA256 to generate the key.
|
@michaelDCurran: re liblouis, @egli pointed out that liblouis in rust won't be there any time soon. It is more of a wish, currently. |
hi |
@feerrenrut and @michaelDCurran, as you started merging in pull requests for 2020.1, I think this is a candidate to deserve priority, as #10275 relies on it which would benefit from an extensive testing period. |
@leonardder Yes I agree, I'll take a look at this soon. |
As there are no extraordinary problems resulting from NVDA 2019.3, I think it is now safe to merge this to master, in order to give it a good run before a beta. |
Note, this is a draft pr. It is currently not planned to receive any attention before NVDA 2019.3 is released.
Link to issue number:
Fixes #9446
Summary of the issue:
There are several reasons to update to Visual Studio 2019:
Description of how this pull request fixes the issue:
Testing performed:
Tested locally that scons source runs correctly.
Known issues with pull request:
Change log entry: