Skip to content

Conversation

@MSP-Greg
Copy link
Collaborator

Updates for mswin builds, no 'bugs' involved. Commit info:

  1. 'package.json and yarn.lock' - 'housekeeping'
  2. 'Windows mswin - update addVCVARSEnv' - Currently the 'vcvars.bat' file's path was found via a switch/select/case statement that hard-coded the Actions windows image string. A PowerShell module (vssetup.powershell) is available for finding information about Visual Studio installs, and it is installed on all Actions Windows runners. Use the module so hard-coded image strings aren't needed.
  3. 'Windows mswin - use ucrt64 tools instead of mingw64' - Many repos need bash commands, and also use build utilities like bison or ragel. Currently, mswin builds are using the mingw64 tools, switch to the ucrt64 tools.
  4. 'Actions - add windows-2022 mswin job'

@MSP-Greg
Copy link
Collaborator Author

Original PR used a PowerShell module known as vssetup.powershell, which contains quite a bit of functionality. But, running it took anywhere from 14 to 20 sec in one run. Too long.

Windows images also contain a utility named vsWhere, which is a compiled exe. It takes around a second to run. Last commit uses it...

Copy link
Member

@eregon eregon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thank you and sorry for the review delay

@eregon eregon merged commit 8c72644 into ruby:master May 2, 2022
@MSP-Greg
Copy link
Collaborator Author

MSP-Greg commented May 2, 2022

sorry for the review delay

No problem. OSS is just a part of our lives...

Do you have any opinion about whether we/I should build the mswin Ruby with OpenSSL 3.0? Microsoft's vcpkg 'system' has updated to 3.0 from 1.1. I've also got all the packages needed to build mswin in the MSP-Greg/setup-msys2-gcc release. Hence, it could be installed by setup-ruby just like the mingw and ucrt archive files.

I think I'm aware of most of the repos it would affect, and most already work with OpenSSL 3.0...

@MSP-Greg MSP-Greg deleted the 00-mswin branch May 2, 2022 19:11
@eregon
Copy link
Member

eregon commented May 3, 2022

Do you have any opinion about whether we/I should build the mswin Ruby with OpenSSL 3.0?

I think all GitHub-hosted runners currently use openssl 1.1, not 3, so probably best to stick to 1.1 while it's the case (unless that's problematic for mswin).

@MSP-Greg
Copy link
Collaborator Author

MSP-Greg commented May 3, 2022

GitHub has announced that Ubuntu 22.04 will be available as a preview image in the near future. I believe it uses OpenSSL 3.

I'm running it locally, and building/using Ruby master, even added gcc 12.

Also, the current release of Microsoft's vcpkg system 2022.04.12 builds OpenSSL 3, so sometime soon the Actions Windows runners would build an mswin package with 3.

@MSP-Greg
Copy link
Collaborator Author

MSP-Greg commented May 4, 2022

One thing I haven't mentioned. mswin builds use a different set of packages than either mingw or ucrt. In the past, it was kind of a mishmash of sources. Now, microsoft/vcpkg has all the packages needed to build mswin (the bison and ragel utilities from MSYS2 work with mswin).

Just last month vcpkg updated OpenSSL from 1.1.1 to 3.0 (diff). So, a new installation of vcpkg builds OpenSSL 3.0.2. Packages from vcpkg can be 'exported', so I've also got an archive file of all the packages needed to build mswin.

@eregon
Copy link
Member

eregon commented May 4, 2022

Sounds good. Yeah then it sound like using vcpkg packages is the best for mswin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants