Homebrew / homebrew-core

🍻 Default formulae for the missing package manager for macOS (or Linux)
https://brew.sh
BSD 2-Clause "Simplified" License
13.79k stars 12.47k forks source link

OpenSSL@1.1 Migration [Tracking] #4543

Closed DomT4 closed 7 years ago

DomT4 commented 8 years ago

Borrowing my own comment from another thread:

I don't have a lot of interest in carrying around what is essentially a feature patch (support for 1.1.0) given OpenSSL are supporting 1.0.2 as an LTS branch. Not planning to leap over upstream releases unless absolutely necessary for whatever reason.

Transition is also complicated by potentially overlapping linkage, so for example, if you brew install curl --with-openssl against OpenSSL 1.1.0 but you add --with-libssh2 as well which remains linked against OpenSSL 1.0.2, we're not really sure how predictably that'll behave. Ideally, the plan is:

  • Anything standalone (i.e. nothing in brew uses) that supports OpenSSL 1.1.0 can use this new formula as the dependency.
  • Anything else needs to be upgraded by tree, so to update curl you'd want libssh2 to be using OpenSSL 1.1.0 first, etc.

We may well change that plan as time passes; If I could I'd have the entire ecosystem using OpenSSL 1.1.0 tomorrow but it really depends on how quickly we can get this done without breaking significant things for users.

Immediate potential deps tree:

brew deps --include-build --include-optional --1 <formula>

Usage or potential usage list:

brew uses <formula> --include-build --include-optional

Generate a build report for addition to the list:

brew gist-logs <formula>

Fair warning: This is going to be a messy list.

alex commented 8 years ago

Patches have landed in Python upstream, next releases on all branches will support 1.1.0.

JLHwung commented 8 years ago

@DomT4 How could one generate logs like this? Are there any commands or scripts? If so we can crowdsourcing the build logs on other formulas multiplying other platforms.

DomT4 commented 8 years ago

@JLHwung brew gist-logs <formula>.

JLHwung commented 8 years ago

@DomT4 How could one contribute on this list? For example

DomT4 commented 8 years ago

Maintainers have direct access. Everyone else will need to leave a comment & wait for a maintainer to incorporate it into the master list. Generally the test process is something like:

JLHwung commented 8 years ago

@DomT4 don't forget to mention that use brew uses <formula> --include-build --include-optional to detect whether this formula is dependent of other formulas.

It is also worthy noting that some formula depends on OpenSSL optionally, so one needs go through the option to make formula building against openssl@1.1

Here is a list of c initials.

chdiza commented 8 years ago

mutt just officially gained support for building openssl 1.1 in HEAD.

vszakats commented 8 years ago

libssh2 does support openssl@1.1 in HEAD now.

JLHwung commented 8 years ago

@vszakats Thank you so much for reminding people of the progress. I raise pull request #4734 to have libssh2 HEAD depends on openssl@1.1.

DomT4 commented 8 years ago

Closing this because of https://github.com/Homebrew/brew/pull/1283. Thank you to those who helped work on it a little so far.

MikeMcQuaid commented 8 years ago

Let's leave it open, others will need to continue this work.

DomT4 commented 8 years ago

I was mostly hoping to avoid the notifications. I'll try the unsubscribe notifications button instead.

MikeMcQuaid commented 8 years ago

@DomT4 Thanks!

MikeMcQuaid commented 8 years ago

Based on https://github.com/Homebrew/homebrew-core/issues/6828 I think we should change approach here and stop migrating things to use openssl@1.1 until we can do it all in a large revision PR i.e. all the projects using OpenSSL 1.0 currently work with OpenSSL 1.1. Migrating things one-by-one is going to result in mixed dependency trees and that's not going to be good. CC @tdsmith and generally @Homebrew/maintainers for this.

imax9000 commented 7 years ago

Please consider rolling this back for broken packages. For example, ansible has been broken for 3 months now.

ilovezfs commented 7 years ago

@gelraen what issue(s) are you referring to specifically?

imax9000 commented 7 years ago

@ilovezfs brew install ansible chokes on installing openssl-1.1. I've worked it around by manually editing ansible.rb locally to use any version of openssl, not 1.1 specifically.

ilovezfs commented 7 years ago

@gelraen that's an issue specific to your system. openssl@1.1 is a non-optional dependency of ansible, and we have pre-built binary bottles for Sierra, El Capitan, and Yosemite, which were all built against 1.1. Please open an issue.

imax9000 commented 7 years ago

Sorry, I was indeed too quick to judge. It was broken for me because I have TOP env var set in my shell for completely unrelated reason (see gist for the full error message). Should I open an issue for general env sanitizing or just this specific instance?

ilovezfs commented 7 years ago

@gelraen you can make a note of the situation here: https://github.com/Homebrew/brew/issues/932

MikeMcQuaid commented 7 years ago

Closing as we're not actively migrating these formulae now.