diff --git a/config/rootfiles/common/curl b/config/rootfiles/common/curl index 01a5fd792..82e3988d6 100644 --- a/config/rootfiles/common/curl +++ b/config/rootfiles/common/curl @@ -119,6 +119,7 @@ usr/lib/libcurl.so.4.8.0 #usr/share/man/man3/CURLOPT_CAINFO.3 #usr/share/man/man3/CURLOPT_CAINFO_BLOB.3 #usr/share/man/man3/CURLOPT_CAPATH.3 +#usr/share/man/man3/CURLOPT_CA_CACHE_TIMEOUT.3 #usr/share/man/man3/CURLOPT_CERTINFO.3 #usr/share/man/man3/CURLOPT_CHUNK_BGN_FUNCTION.3 #usr/share/man/man3/CURLOPT_CHUNK_DATA.3 diff --git a/lfs/curl b/lfs/curl index 33678f795..b76c33410 100644 --- a/lfs/curl +++ b/lfs/curl @@ -24,7 +24,7 @@ include Config -VER = 7.86.0 +VER = 7.87.0 THISAPP = curl-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = a1de7feb229de42bf1deeb5017f97df3b1c10c75fac99bcd0cd21a5dc69b6d8b62520744106d6a113c7a86bd6731dba536a263aabfa22be50d520c43e894acce +$(DL_FILE)_BLAKE2 = b272ec928c5ef1728434630d8910f58834327a30570913df9d47921a2810d002bd88b81371005197db857d3a53386420c1e28b1e463e6241d46c1e50fbce0c13 install : $(TARGET) @@ -70,6 +70,8 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xf $(DIR_DL)/$(DL_FILE) + # Add upstream patche. + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/curl-7.87.0_typecheck_accept_expressions_for_option_info_parameters.patch cd $(DIR_APP) && ./configure \ --prefix=/usr \ --disable-ipv6 \ diff --git a/src/patches/curl-7.87.0_typecheck_accept_expressions_for_option_info_parameters.patch b/src/patches/curl-7.87.0_typecheck_accept_expressions_for_option_info_parameters.patch new file mode 100644 index 000000000..63b23e309 --- /dev/null +++ b/src/patches/curl-7.87.0_typecheck_accept_expressions_for_option_info_parameters.patch @@ -0,0 +1,42 @@ +From curl commit e2aed00 + +As expressions can have side effects, evaluate only once. + +To enable deprecation reporting only once, get rid of the __typeof__ +use to define the local temporary variable and use the target type +(CURLoption/CURLINFO). This also avoids multiple reports on type +conflicts (if some) by the curlcheck_* macros. + +Note that CURLOPT_* and CURLINFO_* symbols may be deprecated, but not +their values: a curl_easy_setopt call with an integer constant as option +will never report a deprecation. + +Reported-by: Thomas Klausner +Fixes #10148 +Closes #10149 + + +--- curl-7.87.0/include/curl/typecheck-gcc.h.orig 2022-12-19 08:48:23.000000000 +0100 ++++ curl-7.87.0/include/curl/typecheck-gcc.h 2022-12-26 20:39:29.243819395 +0100 +@@ -42,9 +42,8 @@ + */ + #define curl_easy_setopt(handle, option, value) \ + __extension__({ \ +- CURL_IGNORE_DEPRECATION(__typeof__(option) _curl_opt = option;) \ ++ CURLoption _curl_opt = (option); \ + if(__builtin_constant_p(_curl_opt)) { \ +- (void) option; \ + CURL_IGNORE_DEPRECATION( \ + if(curlcheck_long_option(_curl_opt)) \ + if(!curlcheck_long(value)) \ +@@ -120,9 +119,8 @@ + /* wraps curl_easy_getinfo() with typechecking */ + #define curl_easy_getinfo(handle, info, arg) \ + __extension__({ \ +- CURL_IGNORE_DEPRECATION(__typeof__(info) _curl_info = info;) \ ++ CURLINFO _curl_info = (info); \ + if(__builtin_constant_p(_curl_info)) { \ +- (void) info; \ + CURL_IGNORE_DEPRECATION( \ + if(curlcheck_string_info(_curl_info)) \ + if(!curlcheck_arr((arg), char *)) \