Git development
 help / color / mirror / Atom feed
* minimum curl version effectively changed
@ 2024-10-10 18:24 Alejandro R. Sedeño
  2024-10-10 21:23 ` brian m. carlson
  0 siblings, 1 reply; 4+ messages in thread
From: Alejandro R. Sedeño @ 2024-10-10 18:24 UTC (permalink / raw)
  To: Git List

As of ad9bb6dfe6e598d87ffe6e2285b4b86dac3bc726, http.c depends on
symbols introduced curl 7.37.0, which is newer than the documented
minimum version of 7.21.3 in INSTALL.

```
In file included from /usr/include/curl/curl.h:2238:0,
                 from git-curl-compat.h:3,
                 from http.c:4:
http.c: In function ‘set_proxyauth_name_password’:
http.c:655:28: error: ‘CURLOPT_PROXYHEADER’ undeclared (first use in
this function)
   curl_easy_setopt(result, CURLOPT_PROXYHEADER,
                            ^
http.c:655:28: note: each undeclared identifier is reported only once
for each function it appears in
make: *** [http.o] Error 1
```

-Alejandro

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: minimum curl version effectively changed
  2024-10-10 18:24 minimum curl version effectively changed Alejandro R. Sedeño
@ 2024-10-10 21:23 ` brian m. carlson
  2024-10-10 21:30   ` Alejandro R. Sedeño
  0 siblings, 1 reply; 4+ messages in thread
From: brian m. carlson @ 2024-10-10 21:23 UTC (permalink / raw)
  To: Alejandro R. Sedeño; +Cc: Git List

[-- Attachment #1: Type: text/plain, Size: 1458 bytes --]

On 2024-10-10 at 18:24:52, Alejandro R. Sedeño wrote:
> As of ad9bb6dfe6e598d87ffe6e2285b4b86dac3bc726, http.c depends on
> symbols introduced curl 7.37.0, which is newer than the documented
> minimum version of 7.21.3 in INSTALL.
> 
> ```
> In file included from /usr/include/curl/curl.h:2238:0,
>                  from git-curl-compat.h:3,
>                  from http.c:4:
> http.c: In function ‘set_proxyauth_name_password’:
> http.c:655:28: error: ‘CURLOPT_PROXYHEADER’ undeclared (first use in
> this function)
>    curl_easy_setopt(result, CURLOPT_PROXYHEADER,
>                             ^
> http.c:655:28: note: each undeclared identifier is reported only once
> for each function it appears in
> make: *** [http.o] Error 1
> ```

From the curl changelog, I do agree that that feature was added in
7.37.0.  I think that's okay, since that was released in May 2014, over
a decade ago, so we probably need to update INSTALL appropriately.  I
don't think any major Linux distros are still offering complementary
security support for such an old version of libcurl, so I don't see us
restoring support for older libcurl.

It will probably also involve ripping out appropriate parts of
`git-curl-compat.h` and the option flags. If nobody else gets to it over
the next couple of days, I'll try to, but of course anyone is free to
send in a patch.
-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: minimum curl version effectively changed
  2024-10-10 21:23 ` brian m. carlson
@ 2024-10-10 21:30   ` Alejandro R. Sedeño
  2024-10-10 21:52     ` brian m. carlson
  0 siblings, 1 reply; 4+ messages in thread
From: Alejandro R. Sedeño @ 2024-10-10 21:30 UTC (permalink / raw)
  To: brian m. carlson, Alejandro R. Sedeño; +Cc: Git List

I have a patch I plan to send in tomorrow that will properly
conditionalize using the symbol on versions of curl that have it, and
emitting a warning otherwise. It will also follow up with some
corrections to errors in git-curl-compat.h.

I don't think a new feature should unilaterally change the minimum
requirements of git without some announcement and forethought.

-Alejandro

On Thu, Oct 10, 2024 at 5:23 PM brian m. carlson
<sandals@crustytoothpaste.net> wrote:
>
> On 2024-10-10 at 18:24:52, Alejandro R. Sedeño wrote:
> > As of ad9bb6dfe6e598d87ffe6e2285b4b86dac3bc726, http.c depends on
> > symbols introduced curl 7.37.0, which is newer than the documented
> > minimum version of 7.21.3 in INSTALL.
> >
> > ```
> > In file included from /usr/include/curl/curl.h:2238:0,
> >                  from git-curl-compat.h:3,
> >                  from http.c:4:
> > http.c: In function ‘set_proxyauth_name_password’:
> > http.c:655:28: error: ‘CURLOPT_PROXYHEADER’ undeclared (first use in
> > this function)
> >    curl_easy_setopt(result, CURLOPT_PROXYHEADER,
> >                             ^
> > http.c:655:28: note: each undeclared identifier is reported only once
> > for each function it appears in
> > make: *** [http.o] Error 1
> > ```
>
> From the curl changelog, I do agree that that feature was added in
> 7.37.0.  I think that's okay, since that was released in May 2014, over
> a decade ago, so we probably need to update INSTALL appropriately.  I
> don't think any major Linux distros are still offering complementary
> security support for such an old version of libcurl, so I don't see us
> restoring support for older libcurl.
>
> It will probably also involve ripping out appropriate parts of
> `git-curl-compat.h` and the option flags. If nobody else gets to it over
> the next couple of days, I'll try to, but of course anyone is free to
> send in a patch.
> --
> brian m. carlson (they/them or he/him)
> Toronto, Ontario, CA

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: minimum curl version effectively changed
  2024-10-10 21:30   ` Alejandro R. Sedeño
@ 2024-10-10 21:52     ` brian m. carlson
  0 siblings, 0 replies; 4+ messages in thread
From: brian m. carlson @ 2024-10-10 21:52 UTC (permalink / raw)
  To: Alejandro R. Sedeño; +Cc: Git List

[-- Attachment #1: Type: text/plain, Size: 1603 bytes --]

On 2024-10-10 at 21:30:04, Alejandro R. Sedeño wrote:
> I have a patch I plan to send in tomorrow that will properly
> conditionalize using the symbol on versions of curl that have it, and
> emitting a warning otherwise. It will also follow up with some
> corrections to errors in git-curl-compat.h.
> 
> I don't think a new feature should unilaterally change the minimum
> requirements of git without some announcement and forethought.

We already have a platform support policy, which guides our behaviour
here, and it was discussed very recently.  It says this:

  Uses versions of dependencies which are generally accepted as stable and
  supportable, e.g., in line with the version used by other long-term-support
  distributions

No major Linux distributions are still using such an old version of
libcurl.  CentOS 7 is dead, and we don't typically support extended
long-term support because it comes at a cost, and it's not fair to
Git developers to require them to pay for a secure system to test
against.  I don't know of any other major OS which is providing support
for such an old version of curl either.  Usually the BSDs have a much
shorter life span for versions, for example.

So I think the oldest supported version we're going to be willing to
accept is in a clone of RHEL 8, which would be curl 7.61.  It's
certainly a mistake on our part that we neglected to update INSTALL
accordingly, but it's not a mistake that we unconditionally added
support for a feature from over a decade ago.
-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-10-10 21:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-10 18:24 minimum curl version effectively changed Alejandro R. Sedeño
2024-10-10 21:23 ` brian m. carlson
2024-10-10 21:30   ` Alejandro R. Sedeño
2024-10-10 21:52     ` brian m. carlson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox