mirror of
https://github.com/curl/curl.git
synced 2026-07-26 02:37:16 +03:00
build: drop Heimdal support, update docs, replace with MIT Kerberos in CI
The kerberos5 library Heimdal is one of three GSS libraries curl support. It has a memory leak triggered by the new test in #18917 and the project seems mostly abandoned. Drop support and steer users to the MIT krb5 or GNU GSS libraries. Co-authored-by: Daniel Stenberg Ref: #18928 Closes #18928 Closes #18932
This commit is contained in:
parent
cd7b45a3bb
commit
8be9a26451
13 changed files with 63 additions and 137 deletions
2
.github/workflows/codeql.yml
vendored
2
.github/workflows/codeql.yml
vendored
|
|
@ -76,7 +76,7 @@ jobs:
|
|||
sudo apt-get -o Dpkg::Use-Pty=0 update
|
||||
sudo rm -f /var/lib/man-db/auto-update
|
||||
sudo apt-get -o Dpkg::Use-Pty=0 install libpsl-dev libbrotli-dev libidn2-dev libssh2-1-dev libssh-dev \
|
||||
libnghttp2-dev libldap-dev heimdal-dev librtmp-dev libgnutls28-dev libwolfssl-dev
|
||||
libnghttp2-dev libldap-dev libkrb5-dev librtmp-dev libgnutls28-dev libwolfssl-dev
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 /home/linuxbrew/.linuxbrew/bin/brew install c-ares gsasl libnghttp3 libngtcp2 mbedtls rustls-ffi
|
||||
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
|
|
|
|||
2
.github/workflows/linux-old.yml
vendored
2
.github/workflows/linux-old.yml
vendored
|
|
@ -68,7 +68,7 @@ jobs:
|
|||
dpkg -i freexian-archive-keyring_2022.06.08_all.deb
|
||||
echo 'deb http://deb.freexian.com/extended-lts stretch-lts main contrib non-free' | tee /etc/apt/sources.list.d/extended-lts.list
|
||||
apt-get -o Dpkg::Use-Pty=0 update
|
||||
apt-get -o Dpkg::Use-Pty=0 install -y --no-install-suggests --no-install-recommends cmake make automake autoconf libtool gcc pkg-config libpsl-dev libzstd-dev zlib1g-dev libgnutls28-dev libc-ares-dev heimdal-dev libldap2-dev librtmp-dev stunnel4 groff
|
||||
apt-get -o Dpkg::Use-Pty=0 install -y --no-install-suggests --no-install-recommends cmake make automake autoconf libtool gcc pkg-config libpsl-dev libzstd-dev zlib1g-dev libgnutls28-dev libc-ares-dev libkrb5-dev libldap2-dev librtmp-dev stunnel4 groff
|
||||
# GitHub's actions/checkout needs newer glibc and libstdc++. The latter also depends on
|
||||
# gcc-8-base, but it doesn't actually seem used in our situation and isn't available in
|
||||
# the main repo, so force the install.
|
||||
|
|
|
|||
19
.github/workflows/linux.yml
vendored
19
.github/workflows/linux.yml
vendored
|
|
@ -69,13 +69,13 @@ jobs:
|
|||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: 'libressl heimdal'
|
||||
install_packages: libidn2-dev libnghttp2-dev libldap-dev heimdal-dev
|
||||
- name: 'libressl krb5'
|
||||
install_packages: libidn2-dev libnghttp2-dev libldap-dev libkrb5-dev
|
||||
install_steps: libressl pytest codeset-test
|
||||
configure: LDFLAGS=-Wl,-rpath,/home/runner/libressl/lib --with-openssl=/home/runner/libressl --with-gssapi --enable-debug
|
||||
|
||||
- name: 'libressl heimdal valgrind'
|
||||
install_packages: libnghttp2-dev libldap-dev heimdal-dev valgrind
|
||||
- name: 'libressl krb5 valgrind'
|
||||
install_packages: libnghttp2-dev libldap-dev libkrb5-dev valgrind
|
||||
install_steps: libressl
|
||||
generate: -DOPENSSL_ROOT_DIR=/home/runner/libressl -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DCURL_LIBCURL_VERSIONED_SYMBOLS=ON
|
||||
|
||||
|
|
@ -365,7 +365,7 @@ jobs:
|
|||
run: |
|
||||
apk add --no-cache build-base autoconf automake libtool perl openssl-dev \
|
||||
libssh2-dev zlib-dev brotli-dev zstd-dev libidn2-dev openldap-dev \
|
||||
heimdal-dev libpsl-dev c-ares-dev \
|
||||
krb5-dev libpsl-dev c-ares-dev \
|
||||
py3-impacket py3-asn1 py3-six py3-pycryptodomex \
|
||||
perl-time-hires openssh stunnel sudo git openssl
|
||||
|
||||
|
|
@ -671,13 +671,8 @@ jobs:
|
|||
TEST_TARGET: ${{ matrix.build.torture && 'test-torture' || 'test-ci' }}
|
||||
TFLAGS: '${{ matrix.build.tflags }}'
|
||||
run: |
|
||||
if [ "${TEST_TARGET}" = 'test-ci' ]; then
|
||||
if [[ "${MATRIX_INSTALL_PACKAGES}" = *'valgrind'* ]]; then
|
||||
TFLAGS+=' -j6'
|
||||
if [[ "${MATRIX_INSTALL_PACKAGES}" = *'heimdal-dev'* ]]; then
|
||||
TFLAGS+=' ~2056 ~2057 ~2077 ~2078' # memory leaks from Curl_auth_decode_spnego_message() -> gss_import_name()
|
||||
fi
|
||||
fi
|
||||
if [ "${TEST_TARGET}" = 'test-ci' ] && [[ "${MATRIX_INSTALL_PACKAGES}" = *'valgrind'* ]]; then
|
||||
TFLAGS+=' -j6'
|
||||
fi
|
||||
[ -f ~/venv/bin/activate ] && source ~/venv/bin/activate
|
||||
if [[ "${MATRIX_INSTALL_STEPS}" = *'codeset-test'* ]]; then
|
||||
|
|
|
|||
10
.github/workflows/macos.yml
vendored
10
.github/workflows/macos.yml
vendored
|
|
@ -294,17 +294,17 @@ jobs:
|
|||
|
||||
- name: 'HTTP/3 clang-tidy'
|
||||
compiler: clang
|
||||
install: llvm brotli zstd libnghttp3 libngtcp2 openldap heimdal
|
||||
install: llvm brotli zstd libnghttp3 libngtcp2 openldap krb5
|
||||
install_steps: clang-tidy skipall
|
||||
generate: >-
|
||||
-DCURL_USE_OPENSSL=ON -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl -DUSE_NGTCP2=ON
|
||||
-DLDAP_INCLUDE_DIR=/opt/homebrew/opt/openldap/include -DLDAP_LIBRARY=/opt/homebrew/opt/openldap/lib/libldap.dylib -DLDAP_LBER_LIBRARY=/opt/homebrew/opt/openldap/lib/liblber.dylib
|
||||
-DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=/opt/homebrew/opt/heimdal
|
||||
-DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=/opt/homebrew/opt/krb5
|
||||
-DCURL_CLANG_TIDY=ON -DCLANG_TIDY=/opt/homebrew/opt/llvm/bin/clang-tidy
|
||||
|
||||
- name: 'LibreSSL openldap heimdal c-ares +examples'
|
||||
install: libressl heimdal openldap
|
||||
generate: -DENABLE_DEBUG=ON -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/libressl -DENABLE_ARES=ON -DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=/opt/homebrew/opt/heimdal -DLDAP_INCLUDE_DIR=/opt/homebrew/opt/openldap/include -DLDAP_LIBRARY=/opt/homebrew/opt/openldap/lib/libldap.dylib -DLDAP_LBER_LIBRARY=/opt/homebrew/opt/openldap/lib/liblber.dylib
|
||||
- name: 'LibreSSL openldap krb5 c-ares +examples'
|
||||
install: libressl krb5 openldap
|
||||
generate: -DENABLE_DEBUG=ON -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/libressl -DENABLE_ARES=ON -DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=/opt/homebrew/opt/krb5 -DLDAP_INCLUDE_DIR=/opt/homebrew/opt/openldap/include -DLDAP_LIBRARY=/opt/homebrew/opt/openldap/lib/libldap.dylib -DLDAP_LBER_LIBRARY=/opt/homebrew/opt/openldap/lib/liblber.dylib
|
||||
- name: 'wolfSSL !ldap brotli zstd'
|
||||
install: brotli wolfssl zstd
|
||||
install_steps: pytest
|
||||
|
|
|
|||
6
.github/workflows/non-native.yml
vendored
6
.github/workflows/non-native.yml
vendored
|
|
@ -61,7 +61,7 @@ jobs:
|
|||
architecture: ${{ matrix.arch }}
|
||||
run: |
|
||||
# https://pkgsrc.se/
|
||||
time sudo pkgin -y install cmake ninja-build pkg-config perl brotli heimdal openldap-client libssh2 libidn2 libpsl nghttp2 py311-impacket
|
||||
time sudo pkgin -y install cmake ninja-build pkg-config perl brotli mit-krb5 openldap-client libssh2 libidn2 libpsl nghttp2 py311-impacket
|
||||
time cmake -B bld -G Ninja \
|
||||
-DCMAKE_INSTALL_PREFIX="$HOME"/curl-install \
|
||||
-DCMAKE_UNITY_BUILD=ON \
|
||||
|
|
@ -164,10 +164,10 @@ jobs:
|
|||
# https://ports.freebsd.org/
|
||||
if [ "${MATRIX_BUILD}" = 'cmake' ]; then
|
||||
time sudo pkg install -y cmake-core ninja perl5 \
|
||||
pkgconf brotli openldap26-client libidn2 libnghttp2 stunnel py311-impacket
|
||||
pkgconf brotli krb5-devel openldap26-client libidn2 libnghttp2 stunnel py311-impacket
|
||||
else
|
||||
time sudo pkg install -y autoconf automake libtool \
|
||||
pkgconf brotli openldap26-client libidn2 libnghttp2 stunnel py311-impacket
|
||||
pkgconf brotli krb5-devel openldap26-client libidn2 libnghttp2 stunnel py311-impacket
|
||||
export MAKEFLAGS=-j3
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue