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

Re: [PATCH] imap-send: replace auto-probe libcurl with hard dependency

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Feb 2, 2023, 00:20 UTC
Message-ID
<230202.86v8kkq53u.gmgdl@evledraar.gmail.com>
In-Reply-To
<Y9r84bezJ0scapwC@coredump.intra.peff.net>
On Wed, Feb 01 2023, Jeff King wrote:
Show 21 quoted lines
> On Wed, Feb 01, 2023 at 03:22:24PM -0800, Junio C Hamano wrote:
>
>> > Let's also hide the old --curl and --no-curl options, and die if
>> > "--no-curl" is provided.
>> 
>> In other words, if we are building imap-send, we sure know cURL is
>> there, and there is no need to tell a running imap-send not to use
>> cURL to talk to the IMAP service?  I am not sure the linkage of this
>> change with the rest of the patch.  Isn't that a totally orthogonal
>> issue?  Your imap-send might be cURL enabled, but unless we stop to
>> ship with our own IMAP routines compiled into imap-send, --no-curl
>> does have a purpose.
>> 
>> Or did you just forget to document that we stop to ship with our own
>> IMAP routines in the above?  If so, as long as it is made a bit more
>> prominent in the proposed log message in a reroll, I would be happy
>> with such a change rolled into the same patch.
>
> FWIW, I had the same urge as Ævar, to drop the non-curl support
> completely, and was puzzled that his patch did not have a big code
> deletion. ;)

FWIW I arrived at this from looking at the mandatory $(shell)-outs in the Makefile, and wasn't looking to drop the OpenSSL code.

Then in looking at that, I found that we could probably make the curl dependency mandatory.

Show 16 quoted lines
> The problem is that the tunnel mode still relies on the non-curl code.
> There was a series to address that a while ago:
>
>   https://lore.kernel.org/git/ab866314-608b-eaca-b335-12cffe165526@morey-chaisemartin.com/
>
> but it ran into the problem that curl did not support PREAUTH
> connections (which is one of the main points of tunneling). It looks
> like that got added to curl via their befaa7b14f, which is in curl
> 7.56.0 from 2017. That's not old enough for us to require for http, but
> might be OK for a marginal component like the tunneling mode of
> imap-send.
>
> I think there was also some question of how you even get the tunnel
> going. Curl really wants to have a single socket descriptor, not two
> pipe descriptors, so there may have to be some trickery with
> socketpair(). There's more discussion in the linked thread.
That's neat, I didn't know about that attempt.
Show 5 quoted lines
> So I think there's a path forward here for getting rid of the legacy
> code (and I'd be really happy to see it gone; it's imported code that
> does not seem super well maintained by us). But until we do that,
> disabling --no-curl doesn't seem like that big a win, if that code can
> all still be triggered for tunnel mode.

I think the biggest win is that we're dropping the dual curl/OpenSSL codepath for everything except the "tunnel" mode, which is really obscure compared to the already-obscure functionality of the main "imap-send" tool.

It would also get us part of the way to e.g. depending on 7.56.0, as a hard dependency on curl (and a newer version than we usually depend on) would reveal if anyone's got an issue with that stepping stone.

Previous: Jeff KingNext: Ævar Arnfjörð Bjarmason
Message 6 of 37 in “Makefile: not use mismatched curl_config to check version”
  1. 1/2 Makefile: not use mismatched curl_config to check versionJiang Xin, Feb 1, 2023
  2. 2/2 imap-send: not define USE_CURL_FOR_IMAP_SEND in MakefileJiang Xin, Feb 1, 2023
  3. imap-send: replace auto-probe libcurl with hard dependencyÆvar Arnfjörð Bjarmason, Feb 1, 2023
  4. Junio C HamanoFeb 1, 2023
  5. Jeff KingFeb 1, 2023
  6. Ævar Arnfjörð BjarmasonFeb 2, 2023
  7. Ævar Arnfjörð BjarmasonFeb 1, 2023
  8. Junio C HamanoFeb 2, 2023
  9. 0/6 imap-send: replace auto-probe libcurl with hard dependencyÆvar Arnfjörð Bjarmason, Feb 2, 2023
  10. 1/6 imap-send: note "auth_method", not "host" on auth method failureÆvar Arnfjörð Bjarmason, Feb 2, 2023
  11. Junio C HamanoFeb 2, 2023
  12. 2/6 imap-send doc: the imap.sslVerify is used with imap.tunnelÆvar Arnfjörð Bjarmason, Feb 2, 2023
  13. 3/6 imap-send: replace auto-probe libcurl with hard dependencyÆvar Arnfjörð Bjarmason, Feb 2, 2023
  14. Junio C HamanoFeb 2, 2023
  15. 4/6 imap-send: make --curl no-optionalÆvar Arnfjörð Bjarmason, Feb 2, 2023
  16. Junio C HamanoFeb 2, 2023
  17. Ævar Arnfjörð BjarmasonFeb 3, 2023
  18. Junio C HamanoFeb 4, 2023
  19. 6/6 imap-send: correctly report "host" when using "tunnel"Ævar Arnfjörð Bjarmason, Feb 2, 2023
  20. Junio C HamanoFeb 2, 2023
  21. Jeff KingFeb 3, 2023
  22. Ævar Arnfjörð BjarmasonFeb 3, 2023
  23. Jeff KingFeb 4, 2023
  24. Ævar Arnfjörð BjarmasonFeb 5, 2023
  25. Jeff KingFeb 7, 2023
  26. Ævar Arnfjörð BjarmasonFeb 7, 2023
  27. Junio C HamanoFeb 7, 2023
  28. Ævar Arnfjörð BjarmasonFeb 7, 2023
  29. Jeff KingFeb 7, 2023
  30. Jeff KingFeb 7, 2023
  31. Junio C HamanoFeb 7, 2023
  32. Ævar Arnfjörð BjarmasonFeb 8, 2023
  33. Jeff KingFeb 17, 2023
  34. Junio C HamanoFeb 6, 2023
  35. 5/6 imap-send: remove old --no-curl codepathÆvar Arnfjörð Bjarmason, Feb 2, 2023
  36. Junio C HamanoFeb 2, 2023
  37. Junio C HamanoFeb 1, 2023

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.