Skip to content

ext/curl: bump minimum libcurl version to 7.61.1#22232

Open
GrahamCampbell wants to merge 1 commit into
php:masterfrom
GrahamCampbell:bump-libcurl-7.61.1
Open

ext/curl: bump minimum libcurl version to 7.61.1#22232
GrahamCampbell wants to merge 1 commit into
php:masterfrom
GrahamCampbell:bump-libcurl-7.61.1

Conversation

@GrahamCampbell
Copy link
Copy Markdown
Contributor

@GrahamCampbell GrahamCampbell commented Jun 5, 2026

The minimum libcurl was raised to 7.61.0 in #13259 to line up with RHEL 8, the oldest enterprise distribution still in support. The thing is, RHEL 8 and its rebuilds (Rocky, Alma, EL 8) don't actually ship 7.61.0 — they ship 7.61.1, and have done since the original 8.0 GA in May 2019 (curl-7.61.1-8.el8). The plain 7.61.0 point release was only the latest stable for about two months in 2018 before 7.61.1 superseded it, and I can't find a supported distribution that carries it. So moving the floor from 7.61.0 to 7.61.1 doesn't drop anything real; it just makes the requirement match the baseline it was already meant to represent.

There's a small concrete upside too. 7.61.1 is where curl/curl@d6cf930 landed, which fixed libcurl reporting success with no response (errno 0) when it needed to rewind an upload to resend it but couldn't. Before that fix the failure was silent; from 7.61.1 it surfaces properly as CURLE_SEND_FAIL_REWIND. Requiring 7.61.1 makes that behaviour consistent across every libcurl PHP can be built against. Moreover, in combination with #22230, this would allow a future version of Guzzle to by-pass some janky workaround code on PHP 8.6+ (and eventually remove that code... in like a decade when Guzzle can make PHP 8.6 the minimum version floor).

The minimum was raised to 7.61.0 in phpGH-13259 to track RHEL 8, but RHEL 8
and its rebuilds (Rocky, Alma, EL 8) ship libcurl 7.61.1 and have since
the original 8.0 GA in May 2019; the plain 7.61.0 point release is not
carried by any supported distribution. This aligns the floor with the
baseline it already targets.

7.61.1 also contains the upstream fix (curl/curl@d6cf930) for libcurl
returning success without a response when an upload rewind was required
but could not be performed; from 7.61.1 that case is reported as
CURLE_SEND_FAIL_REWIND instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant