Skip to content
Permalink
Browse files

curl: remove options.

Closes #36066.

Signed-off-by: Chongyu Zhu <i@lembacon.com>
  • Loading branch information
MikeMcQuaid authored and lembacon committed Jan 16, 2019
1 parent 9452b3f commit 7f9bfa679229a6837d2d8ba8a08bc6154f0ed4d4
Showing with 2 additions and 29 deletions.
  1. +2 −29 Formula/curl.rb
@@ -22,32 +22,16 @@ class Curl < Formula

keg_only :provided_by_macos

option "with-rtmpdump", "Build with RTMP support"
option "with-libssh2", "Build with scp and sftp support"
option "with-c-ares", "Build with C-Ares async DNS support"
option "with-gssapi", "Build with GSSAPI/Kerberos authentication support."
option "with-libmetalink", "Build with libmetalink support."
option "with-nghttp2", "Build with HTTP/2 support (requires OpenSSL)"

deprecated_option "with-rtmp" => "with-rtmpdump"
deprecated_option "with-ssh" => "with-libssh2"

This comment has been minimized.

Copy link
@patrickshox

This comment has been minimized.

Copy link
@SMillerDev
deprecated_option "with-ares" => "with-c-ares"

# HTTP/2 support requires OpenSSL 1.0.2+ or LibreSSL 2.1.3+ for ALPN Support
# which is currently not supported by Secure Transport (DarwinSSL).
if MacOS.version < :mountain_lion || build.with?("nghttp2")
if MacOS.version < :mountain_lion
depends_on "openssl"
else
option "with-openssl", "Build with OpenSSL instead of Secure Transport"
depends_on "openssl" => :optional
end

depends_on "pkg-config" => :build
depends_on "c-ares" => :optional
depends_on "libmetalink" => :optional
depends_on "libssh2" => :optional
depends_on "nghttp2" => :optional
depends_on "rtmpdump" => :optional

def install
system "./buildconf" if build.head?
@@ -65,7 +49,7 @@ def install
# cURL has a new firm desire to find ssl with PKG_CONFIG_PATH instead of using
# "--with-ssl" any more. "when possible, set the PKG_CONFIG_PATH environment
# variable instead of using this option". Multi-SSL choice breaks w/o using it.
if MacOS.version < :mountain_lion || build.with?("openssl") || build.with?("nghttp2")
if MacOS.version < :mountain_lion || build.with?("openssl")
ENV.prepend_path "PKG_CONFIG_PATH", "#{Formula["openssl"].opt_lib}/pkgconfig"
args << "--with-ssl=#{Formula["openssl"].opt_prefix}"
args << "--with-ca-bundle=#{etc}/openssl/cert.pem"
@@ -76,17 +60,6 @@ def install
args << "--without-ca-path"
end

args << (build.with?("libssh2") ? "--with-libssh2" : "--without-libssh2")
args << (build.with?("libmetalink") ? "--with-libmetalink" : "--without-libmetalink")
args << (build.with?("gssapi") ? "--with-gssapi" : "--without-gssapi")
args << (build.with?("rtmpdump") ? "--with-librtmp" : "--without-librtmp")

if build.with? "c-ares"
args << "--enable-ares=#{Formula["c-ares"].opt_prefix}"
else
args << "--disable-ares"
end

system "./configure", *args
system "make", "install"
system "make", "install", "-C", "scripts"

9 comments on commit 7f9bfa6

@jeroen

This comment has been minimized.

Copy link
Contributor

jeroen replied Jan 20, 2019

:( The --with-http2 option was super useful.

@keltia

This comment has been minimized.

Copy link
Contributor

keltia replied Jan 22, 2019

If you can't have options, what's the point of having the port compared to manually compiling? If you want to kill Homebrew, that's the way to do it.

@fbacchella

This comment has been minimized.

Copy link

fbacchella replied Jan 22, 2019

--gssapi will be missed too

@SMillerDev

This comment has been minimized.

Copy link
Member

SMillerDev replied Jan 22, 2019

The real best way to kill homebrew would be to make so many options available that the maintainers can't keep track of the issues anymore and quit, leaving homebrew in a unmaintained broken state until it's no longer used. Asking people to make their own package if they want to divert from the default is doing the opposite.

@SMillerDev

This comment has been minimized.

Copy link
Member

SMillerDev replied Jan 22, 2019

Also, none of these issue removals mean that the function can't be in homebrew anymore. It just means that it should be made into a tap or proposed as a default.

@keltia

This comment has been minimized.

Copy link
Contributor

keltia replied Jan 22, 2019

In the previous system, at least you could override at install-time the default options. Now you don't even have the possibility and you have to basically fork the port to put in a tap. Thanks but no thanks. That does not change the fact that you can never test everything. I was on my way to remove MacPorts from my macs, I guess I have to get roll that back.

@wanglikun7342

This comment has been minimized.

Copy link

wanglikun7342 replied May 26, 2019

sa diao?

@alericmckearn

This comment has been minimized.

Copy link

alericmckearn replied May 30, 2019

If you end up here wondering what happened (like me). First I'm okay with the change, but wish there was a deprecation message on brew options xxx

brew uninstall curl
brew edit curl

change the following args:
args = %W[
--disable-debug
--disable-dependency-tracking
--disable-silent-rules
--prefix=#{prefix}
--with-darwinssl
--without-ca-bundle
--without-ca-path
--with-gssapi
--with-openssl
]
brew install -s curl
echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~/.bash_profile
. ~/.bash_profile

Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS GSS-API IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB SPNEGO SSL UnixSocket

@dcunited001

This comment has been minimized.

Copy link

dcunited001 replied Sep 11, 2019

wow @Homebrew, you removed one of the best perks brew as the dominant package manager on MacOS -- for what? to consolidate workload? to "simplify"?

@MikeMcQuaid -- none of this is meant as directed to you or anyone else personally, i barely know anything about your OSS community, but i just walked into this when trying to customize an install of imagemagick. the accessibility of building from source with trivial effort without worrying how builds are integrated on your system was one of the best things about Brew & MacOS.

do you even know what just happened to brew? your leadership just elevated garbage norms to consensus. the level of engagement @Homebrew dealt with regarding problems with build options is a feature that compels your community to communicate. the expectations/consensus formed by users are necessary for large OSS projects, but removing build options from the main homebrew repo is so unbelievably toxic for your own project.

think of it this way: look at the amount of effort required to deviate from your dictated norms on brew usage. now, anyone who wants flexible configuration or the freedom to build a lib must, for every lib, discover a cask that permits doing so. this has so many toxic network dynamics and growth/engagement dynamics that it's unbelievable. it puts an undue burden on brew users who want flexibility. it increases the amount of information required to obtain (via google searches for random casks) to build flexible brew libs. not only that, but it increases the sprawl of that information over software teams AND over the web. this means that the "metadata" describing the social graph structure of the brew community engaged in building casks also necessarily becomes more complex. because this graph structure is more complex, there is more surface area over which the community's energy is dispersed -- the only thing that would justify this decision is if you anticipated these dynamics AND PREDICTED INCREASED GROWTH AS AN AFTER-EFFECT OF DISPERSION.

Brew is not exactly aurutils ... but the accessibility of source-builds for homebrew (with options whose documentation was just as easily accessible via formula scripts) is really what made brew what it was to me -- and MacOS/OSX for that matter.

this shit is a mess. i'm already very close to giving up MacOS entirely. there is very little that Mac has to offer that makes dealing with the configuration dissonance b/w it and Linux worth the hassle.

Please sign in to comment.
You can’t perform that action at this time.