Skip to content

Commit 97a22cc

Browse files
authored
Vanilla cURL 8.17.0
1 parent eed879e commit 97a22cc

2,303 files changed

Lines changed: 51010 additions & 50161 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMake/FindBrotli.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
#
2626
# Input variables:
2727
#
28-
# - `BROTLI_INCLUDE_DIR`: The brotli include directory.
29-
# - `BROTLICOMMON_LIBRARY`: Path to `brotlicommon` library.
30-
# - `BROTLIDEC_LIBRARY`: Path to `brotlidec` library.
28+
# - `BROTLI_INCLUDE_DIR`: Absolute path to brotli include directory.
29+
# - `BROTLICOMMON_LIBRARY`: Absolute path to `brotlicommon` library.
30+
# - `BROTLIDEC_LIBRARY`: Absolute path to `brotlidec` library.
3131
#
3232
# Result variables:
3333
#
@@ -51,7 +51,7 @@ endif()
5151

5252
if(BROTLI_FOUND)
5353
set(Brotli_FOUND TRUE)
54-
set(BROTLI_VERSION "${BROTLI_libbrotlicommon_VERSION}")
54+
set(BROTLI_VERSION ${BROTLI_libbrotlicommon_VERSION})
5555
string(REPLACE ";" " " BROTLI_CFLAGS "${BROTLI_CFLAGS}")
5656
message(STATUS "Found Brotli (via pkg-config): ${BROTLI_INCLUDE_DIRS} (found version \"${BROTLI_VERSION}\")")
5757
else()

CMake/FindCares.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
#
2626
# Input variables:
2727
#
28-
# - `CARES_INCLUDE_DIR`: The c-ares include directory.
29-
# - `CARES_LIBRARY`: Path to `cares` library.
28+
# - `CARES_INCLUDE_DIR`: Absolute path to c-ares include directory.
29+
# - `CARES_LIBRARY`: Absolute path to `cares` library.
3030
#
3131
# Result variables:
3232
#

CMake/FindGSS.cmake

Lines changed: 67 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
#
2626
# Input variables:
2727
#
28-
# - `GSS_ROOT_DIR`: Set this variable to the root installation of GSS. (also supported as environment)
28+
# - `GSS_ROOT_DIR`: Absolute path to the root installation of GSS. (also supported as environment)
2929
#
3030
# Result variables:
3131
#
32-
# - `GSS_FOUND`: System has the Heimdal library.
33-
# - `GSS_FLAVOUR`: "GNU", "MIT" or "Heimdal" if anything found.
32+
# - `GSS_FOUND`: System has a GSS library.
33+
# - `GSS_FLAVOUR`: "GNU" or "MIT" if anything found.
3434
# - `GSS_INCLUDE_DIRS`: The GSS include directories.
3535
# - `GSS_LIBRARIES`: The GSS library names.
3636
# - `GSS_LIBRARY_DIRS`: The GSS library directories.
@@ -41,16 +41,12 @@
4141

4242
set(_gnu_modname "gss")
4343
set(_mit_modname "mit-krb5-gssapi")
44-
set(_heimdal_modname "heimdal-gssapi")
4544

4645
include(CheckIncludeFile)
4746
include(CheckIncludeFiles)
4847
include(CheckTypeSize)
4948

50-
set(_gss_root_hints
51-
"${GSS_ROOT_DIR}"
52-
"$ENV{GSS_ROOT_DIR}"
53-
)
49+
set(_gss_root_hints "${GSS_ROOT_DIR}" "$ENV{GSS_ROOT_DIR}")
5450

5551
set(_gss_CFLAGS "")
5652
set(_gss_LIBRARY_DIRS "")
@@ -59,7 +55,7 @@ set(_gss_LIBRARY_DIRS "")
5955
if(NOT GSS_ROOT_DIR AND NOT "$ENV{GSS_ROOT_DIR}")
6056
if(CURL_USE_PKGCONFIG)
6157
find_package(PkgConfig QUIET)
62-
pkg_search_module(_gss ${_gnu_modname} ${_mit_modname} ${_heimdal_modname})
58+
pkg_search_module(_gss ${_gnu_modname} ${_mit_modname})
6359
list(APPEND _gss_root_hints "${_gss_PREFIX}")
6460
set(_gss_version "${_gss_VERSION}")
6561
endif()
@@ -69,37 +65,22 @@ if(NOT GSS_ROOT_DIR AND NOT "$ENV{GSS_ROOT_DIR}")
6965
endif()
7066

7167
if(NOT _gss_FOUND) # Not found by pkg-config. Let us take more traditional approach.
72-
find_file(_gss_configure_script
73-
NAMES
74-
"krb5-config"
75-
HINTS
76-
${_gss_root_hints}
77-
PATH_SUFFIXES
78-
"bin"
79-
NO_CMAKE_PATH
80-
NO_CMAKE_ENVIRONMENT_PATH
81-
)
82-
68+
find_file(_gss_configure_script NAMES "krb5-config" PATH_SUFFIXES "bin" HINTS ${_gss_root_hints}
69+
NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH)
8370
# If not found in user-supplied directories, maybe system knows better
84-
find_file(_gss_configure_script
85-
NAMES
86-
"krb5-config"
87-
PATH_SUFFIXES
88-
"bin"
89-
)
71+
find_file(_gss_configure_script NAMES "krb5-config" PATH_SUFFIXES "bin")
9072

9173
if(_gss_configure_script)
9274

9375
set(_gss_INCLUDE_DIRS "")
9476
set(_gss_LIBRARIES "")
9577

96-
execute_process(
97-
COMMAND ${_gss_configure_script} "--cflags" "gssapi"
78+
execute_process(COMMAND ${_gss_configure_script} "--cflags" "gssapi"
9879
OUTPUT_VARIABLE _gss_cflags_raw
9980
RESULT_VARIABLE _gss_configure_failed
100-
OUTPUT_STRIP_TRAILING_WHITESPACE
101-
)
81+
OUTPUT_STRIP_TRAILING_WHITESPACE)
10282
message(STATUS "FindGSS krb5-config --cflags: ${_gss_cflags_raw}")
83+
10384
if(NOT _gss_configure_failed) # 0 means success
10485
# Should also work in an odd case when multiple directories are given.
10586
string(STRIP "${_gss_cflags_raw}" _gss_cflags_raw)
@@ -116,12 +97,10 @@ if(NOT _gss_FOUND) # Not found by pkg-config. Let us take more traditional appr
11697
endforeach()
11798
endif()
11899

119-
execute_process(
120-
COMMAND ${_gss_configure_script} "--libs" "gssapi"
100+
execute_process(COMMAND ${_gss_configure_script} "--libs" "gssapi"
121101
OUTPUT_VARIABLE _gss_lib_flags
122102
RESULT_VARIABLE _gss_configure_failed
123-
OUTPUT_STRIP_TRAILING_WHITESPACE
124-
)
103+
OUTPUT_STRIP_TRAILING_WHITESPACE)
125104
message(STATUS "FindGSS krb5-config --libs: ${_gss_lib_flags}")
126105

127106
if(NOT _gss_configure_failed) # 0 means success
@@ -141,157 +120,93 @@ if(NOT _gss_FOUND) # Not found by pkg-config. Let us take more traditional appr
141120
endforeach()
142121
endif()
143122

144-
execute_process(
145-
COMMAND ${_gss_configure_script} "--version"
123+
execute_process(COMMAND ${_gss_configure_script} "--version"
146124
OUTPUT_VARIABLE _gss_version
147125
RESULT_VARIABLE _gss_configure_failed
148-
OUTPUT_STRIP_TRAILING_WHITESPACE
149-
)
126+
OUTPUT_STRIP_TRAILING_WHITESPACE)
150127

151128
# Older versions may not have the "--version" parameter. In this case we just do not care.
152129
if(_gss_configure_failed)
153130
set(_gss_version 0)
131+
else()
132+
# Strip prefix string to leave the version number only
133+
string(REPLACE "Kerberos 5 release " "" _gss_version "${_gss_version}")
154134
endif()
155135

156-
execute_process(
157-
COMMAND ${_gss_configure_script} "--vendor"
136+
execute_process(COMMAND ${_gss_configure_script} "--vendor"
158137
OUTPUT_VARIABLE _gss_vendor
159138
RESULT_VARIABLE _gss_configure_failed
160-
OUTPUT_STRIP_TRAILING_WHITESPACE
161-
)
139+
OUTPUT_STRIP_TRAILING_WHITESPACE)
162140

163141
# Older versions may not have the "--vendor" parameter. In this case we just do not care.
164-
if(_gss_configure_failed)
165-
set(GSS_FLAVOUR "Heimdal") # most probably, should not really matter
166-
else()
167-
if(_gss_vendor MATCHES "H|heimdal")
168-
set(GSS_FLAVOUR "Heimdal")
169-
else()
170-
set(GSS_FLAVOUR "MIT")
171-
endif()
142+
if(NOT _gss_configure_failed AND NOT _gss_vendor MATCHES "Heimdal|heimdal")
143+
set(GSS_FLAVOUR "MIT") # assume a default, should not really matter
172144
endif()
173145

174146
else() # Either there is no config script or we are on a platform that does not provide one (Windows?)
175147

176-
find_path(_gss_INCLUDE_DIRS NAMES "gssapi/gssapi.h"
177-
HINTS
178-
${_gss_root_hints}
179-
PATH_SUFFIXES
180-
"include"
181-
"inc"
182-
)
148+
find_path(_gss_INCLUDE_DIRS NAMES "gssapi/gssapi.h" HINTS ${_gss_root_hints} PATH_SUFFIXES "include" "inc")
149+
150+
if(_gss_INCLUDE_DIRS) # We have found something
151+
set(_gss_libdir_suffixes "")
183152

184-
if(_gss_INCLUDE_DIRS) # jay, we have found something
185153
cmake_push_check_state()
186154
list(APPEND CMAKE_REQUIRED_INCLUDES "${_gss_INCLUDE_DIRS}")
187155
check_include_files("gssapi/gssapi_generic.h;gssapi/gssapi_krb5.h" _gss_have_mit_headers)
156+
cmake_pop_check_state()
188157

189158
if(_gss_have_mit_headers)
190159
set(GSS_FLAVOUR "MIT")
191-
else()
192-
# Prevent compiling the header - just check if we can include it
193-
list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D__ROKEN_H__")
194-
check_include_file("roken.h" _gss_have_roken_h)
195-
196-
check_include_file("heimdal/roken.h" _gss_have_heimdal_roken_h)
197-
if(_gss_have_roken_h OR _gss_have_heimdal_roken_h)
198-
set(GSS_FLAVOUR "Heimdal")
160+
if(WIN32)
161+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
162+
list(APPEND _gss_libdir_suffixes "lib/AMD64")
163+
set(_gss_libname "gssapi64")
164+
else()
165+
list(APPEND _gss_libdir_suffixes "lib/i386")
166+
set(_gss_libname "gssapi32")
167+
endif()
168+
else()
169+
list(APPEND _gss_libdir_suffixes "lib" "lib64") # those suffixes are not checked for HINTS
170+
set(_gss_libname "gssapi_krb5")
199171
endif()
200172
endif()
201-
cmake_pop_check_state()
202173
else()
203-
# I am not convinced if this is the right way but this is what autotools do at the moment
204-
find_path(_gss_INCLUDE_DIRS NAMES "gssapi.h"
205-
HINTS
206-
${_gss_root_hints}
207-
PATH_SUFFIXES
208-
"include"
209-
"inc"
210-
)
174+
find_path(_gss_INCLUDE_DIRS NAMES "gss.h" HINTS ${_gss_root_hints} PATH_SUFFIXES "include")
211175

212176
if(_gss_INCLUDE_DIRS)
213-
set(GSS_FLAVOUR "Heimdal")
214-
else()
215-
find_path(_gss_INCLUDE_DIRS NAMES "gss.h"
216-
HINTS
217-
${_gss_root_hints}
218-
PATH_SUFFIXES
219-
"include"
220-
)
221-
222-
if(_gss_INCLUDE_DIRS)
223-
set(GSS_FLAVOUR "GNU")
224-
set(GSS_PC_REQUIRES "gss")
225-
endif()
177+
set(GSS_FLAVOUR "GNU")
178+
set(GSS_PC_REQUIRES ${_gnu_modname})
179+
set(_gss_libname "gss")
226180
endif()
227181
endif()
228182

229-
# If we have headers, check if we can link libraries
183+
# If we have headers, look up libraries
230184
if(GSS_FLAVOUR)
231-
set(_gss_libdir_suffixes "")
232185
set(_gss_libdir_hints ${_gss_root_hints})
233-
get_filename_component(_gss_calculated_potential_root "${_gss_INCLUDE_DIRS}" DIRECTORY)
234-
list(APPEND _gss_libdir_hints ${_gss_calculated_potential_root})
235-
236-
if(WIN32)
237-
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
238-
list(APPEND _gss_libdir_suffixes "lib/AMD64")
239-
if(GSS_FLAVOUR STREQUAL "GNU")
240-
set(_gss_libname "gss")
241-
elseif(GSS_FLAVOUR STREQUAL "MIT")
242-
set(_gss_libname "gssapi64")
243-
else()
244-
set(_gss_libname "libgssapi")
245-
endif()
246-
else()
247-
list(APPEND _gss_libdir_suffixes "lib/i386")
248-
if(GSS_FLAVOUR STREQUAL "GNU")
249-
set(_gss_libname "gss")
250-
elseif(GSS_FLAVOUR STREQUAL "MIT")
251-
set(_gss_libname "gssapi32")
252-
else()
253-
set(_gss_libname "libgssapi")
254-
endif()
255-
endif()
186+
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.20)
187+
cmake_path(GET _gss_INCLUDE_DIRS PARENT_PATH _gss_calculated_potential_root)
256188
else()
257-
list(APPEND _gss_libdir_suffixes "lib;lib64") # those suffixes are not checked for HINTS
258-
if(GSS_FLAVOUR STREQUAL "GNU")
259-
set(_gss_libname "gss")
260-
elseif(GSS_FLAVOUR STREQUAL "MIT")
261-
set(_gss_libname "gssapi_krb5")
262-
else()
263-
set(_gss_libname "gssapi")
264-
endif()
189+
get_filename_component(_gss_calculated_potential_root "${_gss_INCLUDE_DIRS}" DIRECTORY)
265190
endif()
191+
list(APPEND _gss_libdir_hints ${_gss_calculated_potential_root})
266192

267-
find_library(_gss_LIBRARIES NAMES ${_gss_libname}
268-
HINTS
269-
${_gss_libdir_hints}
270-
PATH_SUFFIXES
271-
${_gss_libdir_suffixes}
272-
)
193+
find_library(_gss_LIBRARIES NAMES ${_gss_libname} HINTS ${_gss_libdir_hints} PATH_SUFFIXES ${_gss_libdir_suffixes})
273194
endif()
274195
endif()
196+
if(NOT GSS_FLAVOUR)
197+
message(FATAL_ERROR "GNU or MIT GSS is required")
198+
endif()
275199
else()
276-
# _gss_MODULE_NAME set since CMake 3.16
277-
if(_gss_MODULE_NAME STREQUAL _gnu_modname OR _gss_${_gnu_modname}_VERSION)
200+
# _gss_MODULE_NAME set since CMake 3.16.
201+
# _pkg_check_modules_pkg_name is undocumented and used as a fallback for CMake <3.16 versions.
202+
if(_gss_MODULE_NAME STREQUAL _gnu_modname OR _pkg_check_modules_pkg_name STREQUAL _gnu_modname)
278203
set(GSS_FLAVOUR "GNU")
279-
set(GSS_PC_REQUIRES "gss")
280-
if(NOT _gss_version) # for old CMake versions?
281-
set(_gss_version ${_gss_${_gnu_modname}_VERSION})
282-
endif()
283-
elseif(_gss_MODULE_NAME STREQUAL _mit_modname OR _gss_${_mit_modname}_VERSION)
204+
set(GSS_PC_REQUIRES ${_gnu_modname})
205+
elseif(_gss_MODULE_NAME STREQUAL _mit_modname OR _pkg_check_modules_pkg_name STREQUAL _mit_modname)
284206
set(GSS_FLAVOUR "MIT")
285-
set(GSS_PC_REQUIRES "mit-krb5-gssapi")
286-
if(NOT _gss_version) # for old CMake versions?
287-
set(_gss_version ${_gss_${_mit_modname}_VERSION})
288-
endif()
207+
set(GSS_PC_REQUIRES ${_mit_modname})
289208
else()
290-
set(GSS_FLAVOUR "Heimdal")
291-
set(GSS_PC_REQUIRES "heimdal-gssapi")
292-
if(NOT _gss_version) # for old CMake versions?
293-
set(_gss_version ${_gss_${_heimdal_modname}_VERSION})
294-
endif()
209+
message(FATAL_ERROR "GNU or MIT GSS is required")
295210
endif()
296211
message(STATUS "Found GSS/${GSS_FLAVOUR} (via pkg-config): ${_gss_INCLUDE_DIRS} (found version \"${_gss_version}\")")
297212
endif()
@@ -304,33 +219,21 @@ set(GSS_LIBRARY_DIRS ${_gss_LIBRARY_DIRS})
304219
set(GSS_CFLAGS ${_gss_CFLAGS})
305220
set(GSS_VERSION ${_gss_version})
306221

307-
if(GSS_FLAVOUR)
308-
if(NOT GSS_VERSION AND GSS_FLAVOUR STREQUAL "Heimdal")
309-
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
310-
set(_heimdal_manifest_file "Heimdal.Application.amd64.manifest")
222+
if(NOT GSS_VERSION)
223+
if(GSS_FLAVOUR STREQUAL "MIT")
224+
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.24)
225+
cmake_host_system_information(RESULT _mit_version QUERY WINDOWS_REGISTRY
226+
"HKLM/SOFTWARE/MIT/Kerberos/SDK/CurrentVersion" VALUE "VersionString")
311227
else()
312-
set(_heimdal_manifest_file "Heimdal.Application.x86.manifest")
313-
endif()
314-
315-
if(EXISTS "${GSS_INCLUDE_DIRS}/${_heimdal_manifest_file}")
316-
file(STRINGS "${GSS_INCLUDE_DIRS}/${_heimdal_manifest_file}" _heimdal_version_str
317-
REGEX "^.*version=\"[0-9]\\.[^\"]+\".*$")
318-
319-
string(REGEX MATCH "[0-9]\\.[^\"]+" GSS_VERSION "${_heimdal_version_str}")
320-
endif()
321-
322-
if(NOT GSS_VERSION)
323-
set(GSS_VERSION "Heimdal Unknown")
228+
get_filename_component(_mit_version
229+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos\\SDK\\CurrentVersion;VersionString]" NAME CACHE)
324230
endif()
325-
elseif(NOT GSS_VERSION AND GSS_FLAVOUR STREQUAL "MIT")
326-
get_filename_component(_mit_version "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos\\SDK\\CurrentVersion;VersionString]" NAME
327-
CACHE)
328231
if(WIN32 AND _mit_version)
329232
set(GSS_VERSION "${_mit_version}")
330233
else()
331234
set(GSS_VERSION "MIT Unknown")
332235
endif()
333-
elseif(NOT GSS_VERSION AND GSS_FLAVOUR STREQUAL "GNU")
236+
else() # GNU
334237
if(GSS_INCLUDE_DIRS AND EXISTS "${GSS_INCLUDE_DIRS}/gss.h")
335238
set(_version_regex "#[\t ]*define[\t ]+GSS_VERSION[\t ]+\"([^\"]*)\"")
336239
file(STRINGS "${GSS_INCLUDE_DIRS}/gss.h" _version_str REGEX "${_version_regex}")
@@ -350,7 +253,7 @@ find_package_handle_standard_args(GSS
350253
VERSION_VAR
351254
GSS_VERSION
352255
FAIL_MESSAGE
353-
"Could NOT find GSS, try to set the path to GSS root folder in the system variable GSS_ROOT_DIR"
256+
"Could NOT find GSS, try to set the absolute path to GSS installation root directory in the environment variable GSS_ROOT_DIR"
354257
)
355258

356259
mark_as_advanced(

0 commit comments

Comments
 (0)