mirror of
https://github.com/curl/curl.git
synced 2026-04-13 00:31:41 +08:00
Previous minimum was: 1.2.4 (2002-02-28) - assume `gssapi/gssapi.h` header for MIT Kerberos. Drop logic detecting this header, and drop alternate logic including a bare "gssapi.h". Bare `gssapi.h` is Heimdal-specific. MIT Kerberos added support for it for Heimdal compatibility on 2006-11-09, redirecting to `gssapi/gssapi.h`. MIT Kerberos supported the latter header in the 1990s already. Ref:40e1a016f9(2008-03-06) Ref:d119352001(2006-11-09) - configure.ac: stop using `HAVE_GSSAPI_GSSAPI_H`. Added in 2010 to support "ancient distros such as RHEL-3" where `gssapi/gssapi_krb5.h` did not include `gssapi/gssapi.h`. MIT Kerberos includes it since commit:d9e959edfa(2003-03-06) Released in 1.3 (2003-07-08). Bump minimum required version to avoid this issue. Revertscca192e58f(2010-04-16) Ref: https://web.mit.edu/kerberos/dist/historic.html Ref: https://sources.debian.org/src/krb5/ Closes #18992
63 lines
1.7 KiB
Markdown
63 lines
1.7 KiB
Markdown
<!--
|
|
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
|
|
SPDX-License-Identifier: curl
|
|
-->
|
|
|
|
# curl internals
|
|
|
|
The canonical libcurl internals documentation is now in the [everything
|
|
curl](https://everything.curl.dev/internals) book. This file lists supported
|
|
versions of libs and build tools.
|
|
|
|
## Portability
|
|
|
|
We write curl and libcurl to compile with C89 compilers on 32-bit and up
|
|
machines. Most of libcurl assumes more or less POSIX compliance but that is
|
|
not a requirement.
|
|
|
|
We write libcurl to build and work with lots of third party tools, and we
|
|
want it to remain functional and buildable with these and later versions
|
|
(older versions may still work but is not what we work hard to maintain):
|
|
|
|
## Dependencies
|
|
|
|
We aim to support these or later versions.
|
|
|
|
- OpenSSL 1.0.2a
|
|
- LibreSSL 2.9.1
|
|
- GnuTLS 3.1.10
|
|
- mbedTLS 3.2.0
|
|
- zlib 1.2.5.2
|
|
- libssh2 1.9.0
|
|
- c-ares 1.6.0
|
|
- libssh 0.9.0
|
|
- libidn2 2.0.0
|
|
- wolfSSL 3.4.6
|
|
- OpenLDAP 2.0
|
|
- MIT Kerberos 1.3
|
|
- nghttp2 1.15.0
|
|
|
|
## Build tools
|
|
|
|
When writing code (mostly for generating stuff included in release tarballs)
|
|
we use a few "build tools" and we make sure that we remain functional with
|
|
these versions:
|
|
|
|
- GNU Libtool 1.4.2
|
|
- GNU Autoconf 2.59
|
|
- GNU Automake 1.7
|
|
- GNU M4 1.4
|
|
- perl 5.8
|
|
- roffit 0.5
|
|
- cmake 3.7
|
|
|
|
Library Symbols
|
|
===============
|
|
|
|
All symbols used internally in libcurl must use a `Curl_` prefix if they are
|
|
used in more than a single file. Single-file symbols must be made static.
|
|
Public ("exported") symbols must use a `curl_` prefix. Public API functions
|
|
are marked with `CURL_EXTERN` in the public header files so that all others
|
|
can be hidden on platforms where this is possible.
|