This should address the feedback on v2, except that I did not update the INSTALL document as Bagas Sanjaya suggested. We did not have existing discussion of the generally supported minimal support minimal version there, that would make sense as a follow-up patch. There's minor commit message changes here, and two new patches, one is another missed ifdef we could remove because the version comparion was wrong, and the last commit entirely gets rid of LIBCURL_VERSION_NUM checks in the codebase in favor of checking specific defined macros. Jeff King (3): http: drop support for curl < 7.11.1 http: drop support for curl < 7.16.0 http: drop support for curl < 7.19.4 Ævar Arnfjörð Bjarmason (4): http: drop support for curl < 7.19.3 and <= 7.16.4 (or <7.17.0) (again) http: drop support for curl < 7.18.0 (again) http: rename CURLOPT_FILE to CURLOPT_WRITEDATA http: centralize the accounting of libcurl dependencies git-curl-compat.h | 119 ++++++++++++++++++++++++++ http-push.c | 29 +------ http-walker.c | 14 +-- http.c | 212 ++++++---------------------------------------- http.h | 46 ---------- imap-send.c | 10 +-- remote-curl.c | 11 +-- 7 files changed, 153 insertions(+), 288 deletions(-) create mode 100644 git-curl-compat.h Range-diff against v2: 1: dcbb6f95652 ! 1: 6bd41764a54 http: drop support for curl < 7.11.1 @@ Commit message Drop support for this ancient version of curl and simplify the code by allowing us get rid of some "#ifdef"'s. - Git will not build with vanilla curl older than 7.11.1 due to (at - least) two issues: - - - our use of CURLOPT_POSTFIELDSIZE in 37ee680d9b - (http.postbuffer: allow full range of ssize_t values, - 2017-04-11). This field was introduced in curl 7.11.1. - - - our use of CURLPROTO_* outside any #ifdef in aeae4db174 - (http: create function to get curl allowed protocols, - 2016-12-14). These were introduced in curl 7.19.4. + Git will not build with vanilla curl older than 7.11.1 due our use of + CURLOPT_POSTFIELDSIZE in 37ee680d9b + (http.postbuffer: allow full range of ssize_t values, + 2017-04-11). This field was introduced in curl 7.11.1. We could solve these compilation problems with more #ifdefs, but it's not worth the trouble. Version 7.11.1 came out in - March of 2004, over 13 years ago. Let's declare that too old + March of 2004, over 17 years ago. Let's declare that too old and drop any existing ifdefs that go further back. One obvious benefit is that we'll have fewer conditional bits cluttering the code. 2: 1c9f3bc031b = 2: fb308258e2b http: drop support for curl < 7.16.0 3: faae88b7fec = 3: 9fcd3a3e486 http: drop support for curl < 7.19.4 4: 9a30e92520c ! 4: 230b968382f http: drop support for curl < 7.19.3 and < 7.16.4 (again) @@ Metadata Author: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> ## Commit message ## - http: drop support for curl < 7.19.3 and < 7.16.4 (again) + http: drop support for curl < 7.19.3 and <= 7.16.4 (or <7.17.0) (again) Remove the conditional use of CURLAUTH_DIGEST_IE and CURLOPT_USE_SSL. These two have been split from earlier simpler checks against LIBCURL_VERSION_NUM for ease of review. - The CURLAUTH_DIGEST_IE flag was added in n 7.19.3[1], and - CURLOPT_USE_SSL in 7.16.4[2], as noted in [2] it was then renamed from - the older CURLOPT_FTP_SSL. + The CURLAUTH_DIGEST_IE flag was added in 7.19.3[1], and + CURLOPT_USE_SSL in 7.16.4[2] or 7.17.0[3], depending on the source. As + noted in [2] it was then renamed around that time from the older + CURLOPT_FTP_SSL. 1. https://curl.se/libcurl/c/CURLOPT_HTTPAUTH.html 2. https://curl.se/libcurl/c/CURLOPT_USE_SSL.html + 3. https://github.com/curl/curl/blob/master/docs/libcurl/symbols-in-versions Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> -: ----------- > 5: b857a9ef7b1 http: drop support for curl < 7.18.0 (again) 5: 64e510b4a6b = 6: 95e42b17ce8 http: rename CURLOPT_FILE to CURLOPT_WRITEDATA -: ----------- > 7: 93a2775d0ee http: centralize the accounting of libcurl dependencies -- 2.32.0.1069.g516d52f3d85