RE: cURL in git for windows does not support HTTP/2 anymore
- From
- Lars Eriksen - DSV <lars.eriksen@dsv.com>
- Date
- Apr 25, 2025, 06:59 UTC
- Message-ID
- <GV1PR10MB76004ED8EC327A2D11EDD2CB9B842@GV1PR10MB7600.EURPRD10.PROD.OUTLOOK.COM>
- In-Reply-To
- <1cb70ac5-31ee-ec1b-dea5-e900f28a38f2@gmx.de>
I'm sorry for the confusion, but the problem is not within the git command itself. This works fine. But we use the distributed curl command for POSTing data in a custom script when we deploy to production. So the problem is with how the curl command is built for windows. It used to be built with HTTP/2 support, now it is not.
Best regards,
Lars Eriksen, Senior IT Developer, Regional IT Services, Business Services, Northern & Western Europe, Denmark
lars.eriksen@dsv.com | Mobile +45 22423380 | http://www.dsv.com/ -----Original Message----- From: Johannes Schindelin <Johannes.Schindelin@gmx.de> Sent: Thursday, April 24, 2025 2:52 PM To: Lars Eriksen - DSV <lars.eriksen@dsv.com> Cc: git@vger.kernel.org Subject: Re: cURL in git for windows does not support HTTP/2 anymore
External email:Be careful with links and attachments
Hi Lars,
On Thu, 24 Apr 2025, Lars Eriksen - DSV wrote:
Show 16 quoted lines
> What did you do before the bug happened? (Steps to reproduce your > issue) Upgraded to a recent git for windows found here: > https://git-/ > scm.com%2Fdownloads&data=05%7C02%7Clars.eriksen%40dsv.com%7Cdcb13a0b68 > a34bf77c0608dd832ede41%7C4a90c23a3ece4ef2b857522f23b8204c%7C0%7C0%7C63 > 8810959515529466%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiO > iIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C > %7C%7C&sdata=OwOqEgoRvwGZjDPsVIIDOUZ9HSWuC7IKHVbfiPzKP8Q%3D&reserved=0 > > What did you expect to happen? (Expected behavior) The embedded curl > should be able to use HTTP/2 against our backend. > > What happened instead? (Actual behavior) After updating git for > windows curl is unable to authenticate to our backend that requires > HTTP/2. curl --version shows it is not compiled in. It worked in the > prior version, 2.39.0.windows.2
Careful: `curl.exe` does not necessarily show the same capabilities as are in effect when using Git. The reason is that the default SSL/TLS backend is Secure Channel, whereas Git can be configured to use OpenSSL instead.
And looking at the most recent build of Git for Windows' cURL, I see in https://github.com/git-for-windows/git-for-windows-automation/actions/runs/14221753030/job/39851304688#step:16:1230 that the OpenSSL version is compiled with HTTP/2 support whereas https://github.com/git-for-windows/git-for-windows-automation/actions/runs/14221753030/job/39851304688#step:16:2854 shows that the Secure Channel version is compiled without HTTP/2 support.
When you configure `http.sslBackend = openssl`, does it work then?
Ciao, Johannes
P.S.: The bug reporting template of `git bugreport` sadly omits useful hints such as including the contents of `/etc/install-options.txt`, where others could easily see whether you chose the Secure Channel or the OpenSSL backend as Git's default.
Show 34 quoted lines
> > What's different between what you expected and what actually happened? > I expected curl to be able to run as before when contacting our backend in our maintenance scripts. I'm not allowed to install a custom curl on our corporate network, and the windows version does not support HTTP/2 either. But the git version used to. > > Anything else you want to add: > > Please review the rest of the bug report below. > You can delete any lines you don't wish to share. > > > [System Info] > git version: > git version 2.49.0.windows.1 > cpu: x86_64 > built from commit: cca1f38702730b35f52c29efd62864b85e85ddcc > sizeof-long: 4 > sizeof-size_t: 8 > shell-path: D:/git-sdk-64-build-installers/usr/bin/sh > feature: fsmonitor--daemon > libcurl: 8.12.1 > OpenSSL: OpenSSL 3.2.4 11 Feb 2025 > zlib: 1.3.1 > uname: Windows 10.0 20348 > compiler info: gnuc: 14.2 > libc info: no libc information available $SHELL (typically, > interactive shell): C:\Program Files\Git\usr\bin\bash.exe > > > [Enabled Hooks] > not run from a git repository - no hooks to show > > DSV internal > >
DSV internal