-
-
Notifications
You must be signed in to change notification settings - Fork 118
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
Don't vendor OpenSSL except on Windows #197
Conversation
It seems like this should work, but it actually doesn't - see rust-lang/cargo#1197 (comment) 😞 |
Sounds like adding a feature is a better fix then. |
Just catching up on the state of this. I don't have a great way to test on windows at the moment. Are there any pending changes? |
@softprops - There's still some more work to do, the change I've made so far is being ignored by Cargo, so I'm putting together a smaller version of the change. Should be with you today. |
Ok, updated PR, new strategy - expose a Windows:
Linux:
|
@@ -221,7 +221,8 @@ impl Transport { | |||
Transport::Tcp { .. } => (), | |||
#[cfg(feature = "tls")] | |||
Transport::EncryptedTcp { .. } => (), | |||
_ => panic!("connection streaming is only supported over TCP"), | |||
#[cfg(feature = "unix-socket")] | |||
Transport::Unix { .. } => panic!("connection streaming is only supported over TCP"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change prevents an "unreachable branch" warning on builds without unix-socket support (e.g. on windows)
thanks for your work on this @bossmc I'm going to try and cut a release this weekend |
For what it is worth, at least the currently released version doesn't work on Windows because However, the The new Docker for Windows (using HyperV) is another whole different story because it doesn't set the |
Don't mind me, I just saw that there was another PR merged today about this: https://github.com/softprops/shiplift/pull/193/files |
Cool, thanks @softprops! |
I've updated the notes for the CHANGELOG in the main PR description. |
What did you implement:
This relates to #170 where shiplift switched to using vendored openssl to assist windows builds. Unfortunately I believe that change went too far the other way, using the system-wide OpenSSL is much more common on *nix systems, and the vendoring gets in the way of other tooling (e.g. building an RPM from such a binary leads to problems, as the RPM will try to "depend" on the vendored shared object, which will not be resolvable from the repo).
This change enables thevendored
feature only on windows builds, and reverts to the default behaviour (searching for a system-wide version using pkg-config if present) on other systems (mac, linux...)I considered an alternative option, that of exposingThis PR exposes avendored-ssl
feature that enables theopenssl/vendored
feature, which can be enabled if desired by builds, this makes windows builds a little harder, as they probably have to enable the feature.How did you verify your change:
(cross) Compiled for linux and windows.
What (if anything) would need to be called out in the CHANGELOG for the next release:
Clarifying the notes from #170 to be clear that they only apply
to windows buildsif you enable thevendored-ssl
feature.