{"thread":{"id":"63339","subject":"cURL in git for windows does not support HTTP/2 anymore","startedAt":"2025-04-24T07:34:53Z","lastAt":"2025-04-25T12:03:27Z","messageCount":5,"participants":["Lars Eriksen - DSV","Johannes Schindelin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"516650","messageId":"GV1PR10MB76004D6F2617B561A7718A099B852@GV1PR10MB7600.EURPRD10.PROD.OUTLOOK.COM","threadId":"63339","inReplyTo":null,"subject":"cURL in git for windows does not support HTTP/2 anymore","fromName":"Lars Eriksen - DSV","fromEmail":"lars.eriksen@dsv.com","sentAt":"2025-04-24T07:27:28Z","receivedAt":"2025-04-24T07:34:53Z","isPatch":false,"sender":{"key":"lars.eriksen@dsv.com","avatar":null},"body":" Thank you for filling out a Git bug report!\nPlease answer the following questions to help us understand your issue.\n\nWhat did you do before the bug happened? (Steps to reproduce your issue)\nUpgraded to a recent git for windows found here: https://git-scm.com/downloads\n\nWhat did you expect to happen? (Expected behavior)\nThe embedded curl should be able to use HTTP/2 against our backend.\n\nWhat happened instead? (Actual behavior)\nAfter 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\n\nWhat's different between what you expected and what actually happened?\nI 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.\n\nAnything else you want to add:\n\nPlease review the rest of the bug report below.\nYou can delete any lines you don't wish to share.\n\n\n[System Info]\ngit version:\ngit version 2.49.0.windows.1\ncpu: x86_64\nbuilt from commit: cca1f38702730b35f52c29efd62864b85e85ddcc\nsizeof-long: 4\nsizeof-size_t: 8\nshell-path: D:/git-sdk-64-build-installers/usr/bin/sh\nfeature: fsmonitor--daemon\nlibcurl: 8.12.1\nOpenSSL: OpenSSL 3.2.4 11 Feb 2025\nzlib: 1.3.1\nuname: Windows 10.0 20348\ncompiler info: gnuc: 14.2\nlibc info: no libc information available\n$SHELL (typically, interactive shell): C:\\Program Files\\Git\\usr\\bin\\bash.exe\n\n\n[Enabled Hooks]\nnot run from a git repository - no hooks to show\n\nDSV internal\n"},{"id":"516662","messageId":"1cb70ac5-31ee-ec1b-dea5-e900f28a38f2@gmx.de","threadId":"63339","inReplyTo":"GV1PR10MB76004D6F2617B561A7718A099B852@GV1PR10MB7600.EURPRD10.PROD.OUTLOOK.COM","subject":"Re: cURL in git for windows does not support HTTP/2 anymore","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2025-04-24T12:52:25Z","receivedAt":"2025-04-24T12:52:28Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Lars,\n\nOn Thu, 24 Apr 2025, Lars Eriksen - DSV wrote:\n\n> What did you do before the bug happened? (Steps to reproduce your issue)\n> Upgraded to a recent git for windows found here: https://git-scm.com/downloads\n> \n> What did you expect to happen? (Expected behavior)\n> The embedded curl should be able to use HTTP/2 against our backend.\n> \n> What happened instead? (Actual behavior)\n> 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\n\nCareful: `curl.exe` does not necessarily show the same capabilities as are\nin effect when using Git. The reason is that the default SSL/TLS backend\nis Secure Channel, whereas Git can be configured to use OpenSSL instead.\n\nAnd looking at the most recent build of Git for Windows' cURL, I see in\nhttps://github.com/git-for-windows/git-for-windows-automation/actions/runs/14221753030/job/39851304688#step:16:1230\nthat the OpenSSL version is compiled with HTTP/2 support whereas\nhttps://github.com/git-for-windows/git-for-windows-automation/actions/runs/14221753030/job/39851304688#step:16:2854\nshows that the Secure Channel version is compiled without HTTP/2 support.\n\nWhen you configure `http.sslBackend = openssl`, does it work then?\n\nCiao,\nJohannes\n\nP.S.: The bug reporting template of `git bugreport` sadly omits useful\nhints such as including the contents of `/etc/install-options.txt`, where\nothers could easily see whether you chose the Secure Channel or the\nOpenSSL backend as Git's default.\n\n> \n> What's different between what you expected and what actually happened?\n> 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.\n> \n> Anything else you want to add:\n> \n> Please review the rest of the bug report below.\n> You can delete any lines you don't wish to share.\n> \n> \n> [System Info]\n> git version:\n> git version 2.49.0.windows.1\n> cpu: x86_64\n> built from commit: cca1f38702730b35f52c29efd62864b85e85ddcc\n> sizeof-long: 4\n> sizeof-size_t: 8\n> shell-path: D:/git-sdk-64-build-installers/usr/bin/sh\n> feature: fsmonitor--daemon\n> libcurl: 8.12.1\n> OpenSSL: OpenSSL 3.2.4 11 Feb 2025\n> zlib: 1.3.1\n> uname: Windows 10.0 20348\n> compiler info: gnuc: 14.2\n> libc info: no libc information available\n> $SHELL (typically, interactive shell): C:\\Program Files\\Git\\usr\\bin\\bash.exe\n> \n> \n> [Enabled Hooks]\n> not run from a git repository - no hooks to show\n> \n> DSV internal\n> \n> \n"},{"id":"516735","messageId":"GV1PR10MB76004ED8EC327A2D11EDD2CB9B842@GV1PR10MB7600.EURPRD10.PROD.OUTLOOK.COM","threadId":"63339","inReplyTo":"1cb70ac5-31ee-ec1b-dea5-e900f28a38f2@gmx.de","subject":"RE: cURL in git for windows does not support HTTP/2 anymore","fromName":"Lars Eriksen - DSV","fromEmail":"lars.eriksen@dsv.com","sentAt":"2025-04-25T06:59:27Z","receivedAt":"2025-04-25T07:00:39Z","isPatch":false,"sender":{"key":"lars.eriksen@dsv.com","avatar":null},"body":"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.\nSo 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.\n\nBest regards,\n\nLars Eriksen, Senior IT Developer, Regional IT Services, Business Services, Northern & Western Europe, Denmark\n\nlars.eriksen@dsv.com  |  Mobile +45 22423380  |  http://www.dsv.com/\n-----Original Message-----\nFrom: Johannes Schindelin <Johannes.Schindelin@gmx.de>\nSent: Thursday, April 24, 2025 2:52 PM\nTo: Lars Eriksen - DSV <lars.eriksen@dsv.com>\nCc: git@vger.kernel.org\nSubject: Re: cURL in git for windows does not support HTTP/2 anymore\n\nExternal email:Be careful with links and attachments\n\n\nHi Lars,\n\nOn Thu, 24 Apr 2025, Lars Eriksen - DSV wrote:\n\n> What did you do before the bug happened? (Steps to reproduce your\n> issue) Upgraded to a recent git for windows found here:\n> https://git-/\n> scm.com%2Fdownloads&data=05%7C02%7Clars.eriksen%40dsv.com%7Cdcb13a0b68\n> a34bf77c0608dd832ede41%7C4a90c23a3ece4ef2b857522f23b8204c%7C0%7C0%7C63\n> 8810959515529466%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiO\n> iIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C\n> %7C%7C&sdata=OwOqEgoRvwGZjDPsVIIDOUZ9HSWuC7IKHVbfiPzKP8Q%3D&reserved=0\n>\n> What did you expect to happen? (Expected behavior) The embedded curl\n> should be able to use HTTP/2 against our backend.\n>\n> What happened instead? (Actual behavior) After updating git for\n> windows curl is unable to authenticate to our backend that requires\n> HTTP/2. curl --version shows it is not compiled in. It worked in the\n> prior version, 2.39.0.windows.2\n\nCareful: `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.\n\nAnd looking at the most recent build of Git for Windows' cURL, I see in\nhttps://github.com/git-for-windows/git-for-windows-automation/actions/runs/14221753030/job/39851304688#step:16:1230\nthat the OpenSSL version is compiled with HTTP/2 support whereas\nhttps://github.com/git-for-windows/git-for-windows-automation/actions/runs/14221753030/job/39851304688#step:16:2854\nshows that the Secure Channel version is compiled without HTTP/2 support.\n\nWhen you configure `http.sslBackend = openssl`, does it work then?\n\nCiao,\nJohannes\n\nP.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.\n\n>\n> What's different between what you expected and what actually happened?\n> 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.\n>\n> Anything else you want to add:\n>\n> Please review the rest of the bug report below.\n> You can delete any lines you don't wish to share.\n>\n>\n> [System Info]\n> git version:\n> git version 2.49.0.windows.1\n> cpu: x86_64\n> built from commit: cca1f38702730b35f52c29efd62864b85e85ddcc\n> sizeof-long: 4\n> sizeof-size_t: 8\n> shell-path: D:/git-sdk-64-build-installers/usr/bin/sh\n> feature: fsmonitor--daemon\n> libcurl: 8.12.1\n> OpenSSL: OpenSSL 3.2.4 11 Feb 2025\n> zlib: 1.3.1\n> uname: Windows 10.0 20348\n> compiler info: gnuc: 14.2\n> libc info: no libc information available $SHELL (typically,\n> interactive shell): C:\\Program Files\\Git\\usr\\bin\\bash.exe\n>\n>\n> [Enabled Hooks]\n> not run from a git repository - no hooks to show\n>\n> DSV internal\n>\n>\n\nDSV internal\n"},{"id":"516790","messageId":"01fd2b48-dc9e-ec69-b4f9-1183beb7f8a8@gmx.de","threadId":"63339","inReplyTo":"GV1PR10MB76004ED8EC327A2D11EDD2CB9B842@GV1PR10MB7600.EURPRD10.PROD.OUTLOOK.COM","subject":"RE: cURL in git for windows does not support HTTP/2 anymore","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2025-04-25T11:44:27Z","receivedAt":"2025-04-25T11:44:30Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Lars,\n\nOn Fri, 25 Apr 2025, Lars Eriksen - DSV wrote:\n\n> I'm sorry for the confusion, but the problem is not within the git\n> command itself. This works fine. But we use the distributed curl command\n> for POSTing data in a custom script when we deploy to production.\n>\n> So the problem is with how the curl command is built for windows. It\n> used to be built with HTTP/2 support, now it is not.\n\nI am sorry, but Git for Windows is not really intended as a distribution\nmodel for the `curl.exe` command, it merely is shipped in Git for Windows\nbecause some scripts require it.\n\nHave you tried using the `curl.exe` in `C:\\Windows\\system32`? If that does\nnot work, you may need to switch to MSYS2 (which is a proper software\ndistribution, not a hard-baked one like Git for Windows that includes bits\nand pieces necessary to run Git commands).\n\nCiao,\nJohannes\n"},{"id":"516793","messageId":"GV1PR10MB7600CAC40B084DD3AA85FE119B842@GV1PR10MB7600.EURPRD10.PROD.OUTLOOK.COM","threadId":"63339","inReplyTo":"01fd2b48-dc9e-ec69-b4f9-1183beb7f8a8@gmx.de","subject":"RE: cURL in git for windows does not support HTTP/2 anymore","fromName":"Lars Eriksen - DSV","fromEmail":"lars.eriksen@dsv.com","sentAt":"2025-04-25T12:02:11Z","receivedAt":"2025-04-25T12:03:27Z","isPatch":false,"sender":{"key":"lars.eriksen@dsv.com","avatar":null},"body":"Hi Johannes\n\nThe curl found in Windows has the same problem, but I got the server team to install an independently built curl. This is what is allowed for us.\nIt is a fair assumption that the one found within git is only intended to function with git commands, but it has worked well for us up until now. So you can ignore my request.\n\nSorry for the inconvenience.\n\nOn Fri, 25 Apr 2025, Lars Eriksen - DSV wrote:\n\n> I'm sorry for the confusion, but the problem is not within the git\n> command itself. This works fine. But we use the distributed curl\n> command for POSTing data in a custom script when we deploy to production.\n>\n> So the problem is with how the curl command is built for windows. It\n> used to be built with HTTP/2 support, now it is not.\n\nI am sorry, but Git for Windows is not really intended as a distribution model for the `curl.exe` command, it merely is shipped in Git for Windows because some scripts require it.\n\nHave you tried using the `curl.exe` in `C:\\Windows\\system32`? If that does not work, you may need to switch to MSYS2 (which is a proper software distribution, not a hard-baked one like Git for Windows that includes bits and pieces necessary to run Git commands).\n\nCiao,\nJohannes\n\nDSV internal\n"}]}