git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC] dropping support for ancient versions of curl

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Apr 4, 2017, 10:44 UTC
Message-ID
<CACBZZX5D2cYf0-ob_Da0EsxRtZHfegezPtCGA10-sjfi0A+AoQ@mail.gmail.com>
In-Reply-To
<20170404083341.uajswm3qdzyvzxsp@sigill.intra.peff.net>
On Tue, Apr 4, 2017 at 10:33 AM, Jeff King <peff@peff.net> wrote:
Show 37 quoted lines
> On Tue, Apr 04, 2017 at 10:17:51AM +0200, Ævar Arnfjörð Bjarmason wrote:
>
>> On Tue, Apr 4, 2017 at 4:54 AM, Jeff King <peff@peff.net> wrote:
>> > My feeling is that this is old enough to stop caring about. Which means
>> > we can drop some of the #ifdefs that clutter the HTTP code (and there's
>> > a patch at the end of this mail dropping support for everything older
>> > than 7.11.1). But that made wonder: how old is too old? I think it's
>> > nice that we don't force people to upgrade to the latest version of
>> > curl. But at some point, if you are running a 13-year-old version of
>> > libcurl, how likely are you to run a brand new version of Git? :)
>> >
>> > If we declared 7.16.0 as a cutoff, we could unconditionally define
>> > USE_CURL_MULTI, which gets rid of quite a few messy ifdefs.
>>
>> I don't object to this patch, but just as a general comment, in
>> enterprise-y environments using an old OS (e.g. CentOS 5/6) & then
>> compiling some selected packages like git based on OS libraries is
>> quite common.
>>
>> E.g. at work we're running git 2.12.0 compiled against CentOS 6
>> libraries, which has curl 7.20.1, released on
>> Apr 14 2010. Not so long ago we were still running CentOS 5 which
>> comes with 7.15.5 released in Aug 7 2006 which would break with your
>> patch.
>>
>> Whether we support that is another question, I think it's reasonable
>> to say that if you're compiling git on such an old system you also
>> need to compile a libcurl instead of using the OS version. I just
>> wanted to point out that this *does* happen, someone is going to be
>> compiling new git releases on CentOS 5 & will be hit by this.
>
> Thanks, that's a very useful bit of data. According to:
>
>   https://access.redhat.com/support/policy/updates/errata
>
> RHEL5 (which as I understand it basically the same as CentOS 5 in terms
> of packages).

Yeah CentOS is just s/RHEL/CentOS/g across the RHEL-provided source packages. It's a way to use RHEL without paying for (or getting) RHEL support.

> ended its 10-year support cycle just a few days ago. That
> would perhaps make 7.20.1 a reasonable cutoff.

FWIW these cut-offs don't have a lot to do with how long some installations run things like RHEL5 or CO5 actually run. RHEL5's EOP3 phase ended days ago, but the End of Extended Life-cycle Support goes until late 2020, and for anyone running the CentOS flavors these dates matter very little, since they're about how long RedHat is supporting it, and if you don't have RedHat support in the first place...

Show 8 quoted lines
> I dunno. We could also just punt on the whole thing. It was nice to see
> a bunch of #ifdefs go away, but the code they're protecting is actually
> not that complicated. Most of them do not have an #else at all, and we
> just silently skip features on old versions.
>
> I think it might be nice to declare a "too old" version, though, just so
> we can stop adding _new_ ifdefs. Maybe 7.11.1 is that version now, and
> in another few years we can bump to 7.16.0. :)

I think it's completely fine to include your patch as-is. At some point we need to pass the burden of dealing with these old software versions, saying that you should use a <10 year old library isn't unreasonable. Anyone packaging new git on RHEL5 or derivatives can just package a newer libcurl as well.

Previous: Jeff KingNext: Johannes Schindelin
Message 6 of 48 in “[RFC] dropping support for ancient versions of curl”
  1. Jeff KingApr 4, 2017
  2. Jeff KingApr 4, 2017
  3. Jessie HernandezApr 4, 2017
  4. Ævar Arnfjörð BjarmasonApr 4, 2017
  5. Jeff KingApr 4, 2017
  6. Ævar Arnfjörð BjarmasonApr 4, 2017
  7. Johannes SchindelinApr 4, 2017
  8. Ævar Arnfjörð BjarmasonApr 4, 2017
  9. Brandon WilliamsApr 4, 2017
  10. Johannes SchindelinApr 4, 2017
  11. Brandon WilliamsApr 4, 2017
  12. Stefan BellerApr 4, 2017
  13. Johannes SchindelinApr 5, 2017
  14. Jeff KingApr 5, 2017
  15. Jeff KingApr 4, 2017
  16. Frank GevaertsApr 4, 2017
  17. Tom G. ChristensenApr 5, 2017
  18. Ævar Arnfjörð BjarmasonApr 5, 2017
  19. 0/7 Patches to support older RHEL releasesTom G. Christensen, Apr 5, 2017
  20. 3/7 Allow svnrdump_sim.py to be used with Python 2.2Tom G. Christensen, Apr 5, 2017
  21. Ævar Arnfjörð BjarmasonApr 5, 2017
  22. Tom G. ChristensenApr 5, 2017
  23. 1/7 Make NO_PERL_MAKEMAKER behave more like ExtUtils::MakeMakerTom G. Christensen, Apr 5, 2017
  24. 4/7 Handle missing HTTP_CONNECTCODE in curl < 7.10.7Tom G. Christensen, Apr 5, 2017
  25. Ævar Arnfjörð BjarmasonApr 5, 2017
  26. Franke, KnutApr 5, 2017
  27. 2/7 Install man pages when NO_PERL_MAKEMAKER is usedTom G. Christensen, Apr 5, 2017
  28. 5/7 Add support for gnupg < 1.4Tom G. Christensen, Apr 5, 2017
  29. Ævar Arnfjörð BjarmasonApr 5, 2017
  30. Junio C HamanoApr 13, 2017
  31. Ævar Arnfjörð BjarmasonApr 13, 2017
  32. 6/7 Handle missing CURLINFO_SSL_DATA_{IN,OUT}Tom G. Christensen, Apr 5, 2017
  33. Ævar Arnfjörð BjarmasonApr 5, 2017
  34. 7/7 Do not use curl_easy_strerror with curl < 7.12.0Tom G. Christensen, Apr 5, 2017
  35. Ævar Arnfjörð BjarmasonApr 5, 2017
  36. Jeff KingApr 6, 2017
  37. Junio C HamanoApr 13, 2017
  38. Jacob KellerApr 13, 2017
  39. Tom G. ChristensenApr 5, 2017
  40. brian m. carlsonApr 6, 2017
  41. Todd ZullingerApr 6, 2017
  42. Jeff KingApr 6, 2017
  43. Johannes SchindelinApr 7, 2017
  44. Jeff KingApr 10, 2017
  45. Jeff KingApr 6, 2017
  46. Tom G. ChristensenApr 6, 2017
  47. Jeff KingApr 7, 2017
  48. Junio C HamanoApr 14, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.