-
-
Notifications
You must be signed in to change notification settings - Fork 728
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
OpenSSL not found on Windows #1542
Comments
This has to do with the What worked for me was using chocolatey to install openssl which installs to After this I just had to do |
For anyone who stumbles into this issue because their GitHub Actions CI starts failing on Windows when depending on
I fixed this by taking a page out of this package's CI config along with a conditional on the steps:
- run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
if: runner.os == 'Windows'
- run: vcpkg install openssl:x64-windows-static-md
if: runner.os == 'Windows' |
We could investigate fixing, but this could be a bigger challenge. Example: sfackler/rust-openssl#1542 (comment) This guys added some steps, but also builds on Windows, and we build on ubuntu with windows as target. For now, let's skip until someone specifically asks for Windows builds, or we want to spend the time...
## Motivation and Context ~~**The PR will be a draft until #2675 is merged into `main`. Once that's merged, this PR can remove the change to `Cargo.toml` in `aws-smithy-client`.**~~ **Now that it's passed tests in CI, ysaito1001 will merge this PR once it has passed the internal tests** Fixes #2500. ## Description This PR updates the base image for ci-build's Dockerfile as the latest image for [amazonlinux](https://gallery.ecr.aws/amazonlinux/amazonlinux) has been updated to 2023. As part of it, the changes to Dockerfile include - Fixing conflicting curl's libraries by specifying `--allowerasing` Without it, we'd get an error as follows: ``` package curl-minimal-7.88.1-1.amzn2023.0.1.x86_64 conflicts with curl provided by curl-7.87.0-2.amzn2023.0.2.x86_64 ``` - Adding perl explicitly as a new version of openssl now requires it Without `perl`, we'd get an error as follows: ``` Step 24/48 : RUN cargo +${rust_nightly_version} -Z sparse-registry install cargo-deny --locked --version ${cargo_deny_version} ---> Running in 3c3431881cfa ... error: failed to run custom build command for `openssl-sys v0.9.76` ... --- stderr Can't locate FindBin.pm in @inc (you may need to install the FindBin module) (@inc contains: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./Configure line 15. BEGIN failed--compilation aborted at ./Configure line 15. thread 'main' panicked at ' ``` Also, there is a change to `Cargo.toml` in `aws-smithy-client`: - Forcing `aws-smithy-client` with `native-tls` feature to use a more recent `openssl-sys` crate Without it, `cargo minimal-versions check` would fail in `aws-smithy-client` trying to build `openssl-sys` v0.9.39 where OpenSSL in a container is more up-to-date, leading to a build failure (See [this issue](sfackler/rust-openssl#1724) for more details) Finally, updating CI for `Run Tests on Windows` - Manually installing `openssl` as [suggested](sfackler/rust-openssl#1542 (comment)). Without it, after introducing a more recent `openssl` 0.10.52 `dev-dependencies` in `aws-smithy-client`, we'd get this on Windows: ``` --- stderr thread 'main' panicked at ' Could not find directory of OpenSSL installation, and this `-sys` crate cannot proceed without this knowledge. If OpenSSL is installed and this crate had trouble finding it, you can set the `OPENSSL_DIR` environment variable for the compilation process. Make sure you also have the development packages of openssl installed. For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora. If you're in a situation where you think the directory *should* be found automatically, please open a bug at https://github.com/sfackler/rust-openssl and include information about your system as well as this message. $HOST = x86_64-pc-windows-msvc $TARGET = x86_64-pc-windows-msvc openssl-sys = 0.9.90 ``` ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: Yuki Saito <awsaito@amazon.com> Co-authored-by: Zelda Hessler <zhessler@amazon.com>
## Motivation and Context ~~**The PR will be a draft until #2675 is merged into `main`. Once that's merged, this PR can remove the change to `Cargo.toml` in `aws-smithy-client`.**~~ **Now that it's passed tests in CI, ysaito1001 will merge this PR once it has passed the internal tests** Fixes #2500. ## Description This PR updates the base image for ci-build's Dockerfile as the latest image for [amazonlinux](https://gallery.ecr.aws/amazonlinux/amazonlinux) has been updated to 2023. As part of it, the changes to Dockerfile include - Fixing conflicting curl's libraries by specifying `--allowerasing` Without it, we'd get an error as follows: ``` package curl-minimal-7.88.1-1.amzn2023.0.1.x86_64 conflicts with curl provided by curl-7.87.0-2.amzn2023.0.2.x86_64 ``` - Adding perl explicitly as a new version of openssl now requires it Without `perl`, we'd get an error as follows: ``` Step 24/48 : RUN cargo +${rust_nightly_version} -Z sparse-registry install cargo-deny --locked --version ${cargo_deny_version} ---> Running in 3c3431881cfa ... error: failed to run custom build command for `openssl-sys v0.9.76` ... --- stderr Can't locate FindBin.pm in @inc (you may need to install the FindBin module) (@inc contains: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./Configure line 15. BEGIN failed--compilation aborted at ./Configure line 15. thread 'main' panicked at ' ``` Also, there is a change to `Cargo.toml` in `aws-smithy-client`: - Forcing `aws-smithy-client` with `native-tls` feature to use a more recent `openssl-sys` crate Without it, `cargo minimal-versions check` would fail in `aws-smithy-client` trying to build `openssl-sys` v0.9.39 where OpenSSL in a container is more up-to-date, leading to a build failure (See [this issue](sfackler/rust-openssl#1724) for more details) Finally, updating CI for `Run Tests on Windows` - Manually installing `openssl` as [suggested](sfackler/rust-openssl#1542 (comment)). Without it, after introducing a more recent `openssl` 0.10.52 `dev-dependencies` in `aws-smithy-client`, we'd get this on Windows: ``` --- stderr thread 'main' panicked at ' Could not find directory of OpenSSL installation, and this `-sys` crate cannot proceed without this knowledge. If OpenSSL is installed and this crate had trouble finding it, you can set the `OPENSSL_DIR` environment variable for the compilation process. Make sure you also have the development packages of openssl installed. For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora. If you're in a situation where you think the directory *should* be found automatically, please open a bug at https://github.com/sfackler/rust-openssl and include information about your system as well as this message. $HOST = x86_64-pc-windows-msvc $TARGET = x86_64-pc-windows-msvc openssl-sys = 0.9.90 ``` ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: Yuki Saito <awsaito@amazon.com> Co-authored-by: Zelda Hessler <zhessler@amazon.com>
cargo build
fails on my Windows 10 as openssl could not be found. However, it is installed inc:\Program Files\OpenSSL-Win64
. The Distributor is http://slproweb.com/products/Win32OpenSSL.html. If only installations installed using vcpkg are supported, could you mention this in the docs?Thanks and thanks for great crate!
Bernd
My system info is:
The command output is:
Note: The URL in the output (https://github.com/sfackler/rust-openssl#windows) is not valid any more!
The text was updated successfully, but these errors were encountered: