Debian Patches
Status for curl/8.20.0-4
| Patch | Description | Author | Forwarded | Bugs | Origin | Last update |
|---|---|---|---|---|---|---|
| ZZZgnutls-build.patch | Build with GnuTLS. | Steve McIntyre <93sam@debian.org> | not-needed | vendor | 2024-11-06 | |
| build-Divide-mit-krb5-gssapi-link-flags-between-LDFLAGS-a.patch | build: Divide mit-krb5-gssapi link flags between LDFLAGS and LIBS From the comments nearby about not having --libs-only-L, it looks as though the intention was to apply a split like this to all dependency libraries where possible, and the only reason it was not done for Kerberos is that krb5-config doesn't have that feature and pkg-config was originally not supported here. For example, zlib, libssh and librtmp all have their flags from pkg-config split in this way. Now that pkg-config is supported here, we can do the intended split. |
Simon McVittie <smcv@collabora.com> | no | 2022-11-22 | ||
| 11_omit-directories-from-config.patch | Omit directories embedding arch info from curl-config In order to (partially) multi-arch-ify curl-config, remove all mention of @includedir@ and @libdir@ from the script. On Debian, the actual header and library directories are architecture-dependent, but will always be in the C compiler's default search path, so -I and -L options are not necessary (and may be harmful in multi-arch environments.) |
Benjamin Moody <benjamin.moody@gmail.com> | not-needed | debian | vendor | 2025-02-05 |
| event-fix-wakeup-consumption.patch | event: fix wakeup consumption The events on a multi wakeup socketpair were only consumed via curl_multi_poll()/curl_multi_wait() but not in event based processing on a curl_multi_socket() call. That led to busy loops as reported in Fixes #21547 Closes #21549 |
Stefan Eissing <stefan@eissing.org> | yes | debian upstream | upstream, https://github.com/curl/curl/commit/2a2104f3cff44bb28bb570a093be52bbeeed8f23 | 2025-05-13 |
| Implement-symbol-versioning-for-CURL_GNUTLS_3.patch | Implement symbol versioning for CURL_GNUTLS_3 This is a big and complex patch we have to carry due to a mistake in another patch that slipped under our radar when libcurl-gnutls' soname version was bumped from 3 to 4. We have a local patch (ZZZgnutls-build.patch) that's used to adjust curl's build system so that we can build two versions of libcurl: one against OpenSSL, and another against GNUTLS. It's a hack but it works. The problem is that it used to contain (up until this patch was devised, that is) a change that *always* set libcurl-gnutls' soname version to 3. That was OK while upstream used the same soname version for the library, but things got bad when upstream did an soname bump. Because the patch only applies to libcurl-gnutls, that library's soname version was pinned to 3. However, when building libcurl (which links against OpenSSL), the patch did not have any effect and upstream's soname bump was correctly adopted by our libcurl package. This created a situation where we now have a libcurl4 package (providing the OpenSSL-version of the library) and a libcurl3-gnutls (providing the GNUTLS version of the library). The situation got even worse because the symbols generated when building libcurl3-gnutls were (incorrectly) versioned with "@CURL_GNUTLS_3", even though they should have been versioned "@CURL_GNUTLS_4". It's bad. Long story short, we had to fix the issue. The only sensible way to do so was to adjust ZZZgnutls-build.patch so that it doesn't pin libcurl-gnutls' soname version anymore, but there's a problem: now when building the library, all symbols are (correctly) versioned as "@CURL_GNUTLS_4", which means that all programs that previously linked against libcurl3-gnutls would not work anymore. What can we do? Leverage symbol versioning tricks to make everything work for the old programs (depending on "@CURL_GNUTLS_3" symbols) while providing the correct "@CURL_GNUTLS_4" symbols as the default ones. This is what this patch does. Unfortunately that wasn't very easy to do without resorting to certain "tricks". Here's an explanation of each one: * The patch creates a new symbol for each function that was previously versioned as "@CURL_GNUTLS_3" (according to d/libcurl3t64-gnutls.symbols). This new symbol is versioned as "@@@CURL_GNUTLS_4". The "@@@" part tells the dynamic loader that this symbol is the default version *and* instructs the linker to *remove* the previously undefined symbol. For example, if a function's name is "curl_foo" then the linker will generate a symbol called "curl_foo@@@CURL_GNUTLS_4" and remove "curl_foo" when compiling. The loader will resolve "curl_foo" (unversioned) to "curl_foo@@@CURL_GNUTLS_4" automatically. * The patch creates a new function declaration for each of the functions mentioned above, but named "__curl_compat_FUNCTION_NAME". This new symbol is marked as an alias of "curl_FUNCTION_NAME", and its visibility is set to "default" so that we can create the "@CURL_GNUTLS_3" version of the "curl_FUNCTION_NAME" symbol. * The patch creates a new symbol version for "__curl_compat_FUNCTION_NAME" named "curl_FUNCTION_NAME@CURL_GNUTLS_3". This symbol is hidden by default so new users won't link against it, but it's also available in case old programs still need it. * All this symbol creation dance should only be performed when (a) we're building the GNUTLS version of libcurl, and (b) we are *not* building a static libcurl (in which case the symbol versioning would generate errors). * The patch also needs to create a new version of libcurl's version script especially crafted for libcurl-gnutls. In it, we define the "@CURL_GNUTLS_3" symbols we want to export and then define "@CURL_GNUTLS_4" in terms of it. |
Sergio Durigan Junior <sergiodj@debian.org> | not-needed | debian | 2026-05-05 |
All known versions for source package 'curl'
- 8.20.0-4 (sid)
- 8.20.0-2 (forky)
- 8.20.0-2~bpo13+1 (trixie-backports)
- 8.14.1-2+deb13u3 (trixie, trixie-proposed-updates)
- 8.14.1-2+deb13u2~bpo13+1 (bookworm-backports)
- 7.88.1-10+deb12u14 (bookworm)
- 7.88.1-10+deb12u5 (bookworm-security)
