chore: bump deps
This commit is contained in:
249
deps/curl/.azure-pipelines.yml
vendored
249
deps/curl/.azure-pipelines.yml
vendored
@ -1,249 +0,0 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# https://dev.azure.com/daniel0244/curl/_build?view=runs
|
||||
#
|
||||
# Azure Pipelines configuration:
|
||||
# https://aka.ms/yaml
|
||||
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- 'master'
|
||||
- '*/ci'
|
||||
paths:
|
||||
exclude:
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/*'
|
||||
- '.github/workflows/*'
|
||||
- 'appveyor.*'
|
||||
- 'packages/*'
|
||||
- 'plan9/*'
|
||||
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- 'master'
|
||||
paths:
|
||||
exclude:
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/*'
|
||||
- '.github/workflows/*'
|
||||
- 'appveyor.*'
|
||||
- 'packages/*'
|
||||
- 'plan9/*'
|
||||
|
||||
variables:
|
||||
MAKEFLAGS: '-j 2'
|
||||
|
||||
stages:
|
||||
|
||||
##########################################
|
||||
### Linux jobs first
|
||||
##########################################
|
||||
|
||||
- stage: linux
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: ubuntu
|
||||
# define defaults to make sure variables are always expanded/replaced
|
||||
variables:
|
||||
install: ''
|
||||
configure: ''
|
||||
tests: '!433'
|
||||
timeoutInMinutes: 60
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
strategy:
|
||||
matrix:
|
||||
default:
|
||||
name: default
|
||||
install:
|
||||
configure: --enable-debug --with-openssl
|
||||
disable_ipv6:
|
||||
name: w/o IPv6
|
||||
configure: --disable-ipv6 --with-openssl
|
||||
disable_http_smtp_imap:
|
||||
name: w/o HTTP/SMTP/IMAP
|
||||
configure: --disable-http --disable-smtp --disable-imap --without-ssl
|
||||
disable_thredres:
|
||||
name: sync resolver
|
||||
configure: --disable-threaded-resolver --with-openssl
|
||||
https_only:
|
||||
name: HTTPS only
|
||||
configure: --disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp --disable-smb --disable-smtp --disable-telnet --disable-tftp --with-openssl
|
||||
torture:
|
||||
name: torture
|
||||
install: libnghttp2-dev
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl
|
||||
tests: -n -t --shallow=25 !FTP
|
||||
steps:
|
||||
- script: sudo apt-get update && sudo apt-get install -y stunnel4 python3-impacket libzstd-dev libbrotli-dev libpsl-dev $(install)
|
||||
displayName: 'apt install'
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: autoreconf -fi && ./configure --enable-warnings --enable-werror $(configure)
|
||||
displayName: 'configure $(name)'
|
||||
|
||||
- script: make V=1 && make V=1 examples && cd tests && make V=1
|
||||
displayName: 'compile'
|
||||
|
||||
- script: make V=1 test-ci
|
||||
displayName: 'test'
|
||||
env:
|
||||
AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
|
||||
TFLAGS: "-ac /usr/bin/curl -r $(tests)"
|
||||
|
||||
- stage: scanbuild
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: ubuntu
|
||||
timeoutInMinutes: 30
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
steps:
|
||||
- script: sudo apt-get update && sudo apt-get install -y clang-tools clang libssl-dev libssh2-1-dev libpsl-dev libbrotli-dev libzstd-dev
|
||||
displayName: 'apt install'
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: autoreconf -fi
|
||||
displayName: 'autoreconf'
|
||||
|
||||
- script: scan-build ./configure --enable-debug --enable-werror --with-openssl --with-libssh2
|
||||
displayName: 'configure'
|
||||
env:
|
||||
CC: "clang"
|
||||
CCX: "clang++"
|
||||
|
||||
- script: scan-build --status-bugs make
|
||||
displayName: 'make'
|
||||
|
||||
- script: scan-build --status-bugs make examples
|
||||
displayName: 'make examples'
|
||||
|
||||
##########################################
|
||||
### Windows jobs below
|
||||
##########################################
|
||||
|
||||
- stage: windows
|
||||
dependsOn: []
|
||||
variables:
|
||||
agent.preferPowerShellOnContainers: true
|
||||
jobs:
|
||||
- job: msys2
|
||||
# define defaults to make sure variables are always expanded/replaced
|
||||
variables:
|
||||
container_img: ''
|
||||
container_cmd: ''
|
||||
configure: ''
|
||||
tests: ''
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: 'windows-2019'
|
||||
strategy:
|
||||
matrix:
|
||||
mingw32_openssl:
|
||||
name: 32-bit OpenSSL/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-i686-libssh2
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --with-libssh2 --with-openssl --without-libpsl
|
||||
tests: "~571"
|
||||
mingw64_openssl:
|
||||
name: 64-bit OpenSSL/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-x86_64-libssh2
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --with-libssh2 --with-openssl --without-libpsl
|
||||
tests: "~571"
|
||||
mingw64_libssh:
|
||||
name: 64-bit OpenSSL/libssh
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh-devel mingw-w64-x86_64-libssh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --with-libssh --with-openssl --without-libpsl
|
||||
tests: "~571 ~614"
|
||||
mingw32:
|
||||
name: 32-bit w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --without-zlib --without-ssl --without-libpsl
|
||||
tests: "!203 !1143"
|
||||
mingw64:
|
||||
name: 64-bit w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --without-zlib --without-ssl --without-libpsl
|
||||
tests: "!203 !1143"
|
||||
mingw32_schannel:
|
||||
name: 32-bit Schannel/SSPI/WinIDN/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-i686-libssh2
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --with-libssh2 --without-libpsl
|
||||
tests: "~571"
|
||||
mingw64_schannel:
|
||||
name: 64-bit Schannel/SSPI/WinIDN/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-x86_64-libssh2
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --with-libssh2 --without-libpsl
|
||||
tests: "~571"
|
||||
mingw32_schannel_nozlib:
|
||||
name: 32-bit Schannel/SSPI/WinIDN w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --without-zlib --without-libpsl
|
||||
tests: "!203 !1143"
|
||||
mingw64_schannel_nozlib:
|
||||
name: 64-bit Schannel/SSPI/WinIDN w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --without-zlib --without-libpsl
|
||||
tests: "!203 !1143"
|
||||
container:
|
||||
image: $(container_img)
|
||||
env:
|
||||
MSYS2_PATH_TYPE: inherit
|
||||
steps:
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && $(prepare)"
|
||||
displayName: 'prepare'
|
||||
condition: variables.prepare
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && autoreconf -fi && ./configure $(configure)"
|
||||
displayName: 'configure $(name)'
|
||||
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 && make V=1 examples && cd tests && make V=1"
|
||||
displayName: 'compile'
|
||||
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 install && PATH=/usr/bin:/bin find . -type f -path '*/.libs/*.exe' -print -execdir mv -t .. {} \;"
|
||||
displayName: 'install'
|
||||
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 test-ci"
|
||||
displayName: 'test'
|
||||
env:
|
||||
AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
|
||||
TFLAGS: "-ac /usr/bin/curl.exe !IDN !SCP ~612 $(tests)"
|
389
deps/curl/.circleci/config.yml
vendored
389
deps/curl/.circleci/config.yml
vendored
@ -23,119 +23,11 @@
|
||||
###########################################################################
|
||||
|
||||
# View these jobs in the browser: https://app.circleci.com/pipelines/github/curl/curl
|
||||
#
|
||||
# The macOS builds use M1 (ARM) machines for platform diversity.
|
||||
# See https://circleci.com/docs/configuration-reference/#macos-execution-environment
|
||||
|
||||
# Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/2.0/configuration-reference
|
||||
# Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/configuration-reference/
|
||||
version: 2.1
|
||||
|
||||
commands:
|
||||
configure:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-werror --with-openssl
|
||||
|
||||
configure-openssl-no-verbose:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --disable-verbose --enable-werror --with-openssl
|
||||
|
||||
configure-no-proxy:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --disable-proxy --enable-werror --with-openssl
|
||||
|
||||
configure-macos-normal:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --without-ssl CFLAGS='-Wno-vla -mmacosx-version-min=10.9' CPPFLAGS="-I$(brew --prefix libpsl)/include" LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-debug:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --without-ssl --enable-debug CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-libssh2:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --without-ssl --with-libssh2=/opt/homebrew/opt/libssh2 --enable-debug CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-libssh-c-ares:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --with-openssl --with-libssh --enable-ares --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-libssh:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --with-openssl --with-libssh --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata" || tail -1000 config.log
|
||||
|
||||
configure-macos-c-ares:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --without-ssl --enable-ares --enable-debug CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-http-only:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-maintainer-mode --disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-mqtt --disable-pop3 --disable-rtsp --disable-smb --disable-smtp --disable-telnet --disable-tftp --disable-unix-sockets --disable-shared --without-brotli --without-gssapi --without-libidn2 --without-libpsl --without-librtmp --without-libssh2 --without-nghttp2 --without-ssl --without-zlib --enable-debug CFLAGS='-Wno-vla -mmacosx-version-min=10.15'
|
||||
|
||||
configure-macos-securetransport-http2:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --with-secure-transport CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.8' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-openssl-http2:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --with-openssl --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-libressl-http2:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --with-openssl --enable-debug PKG_CONFIG_PATH="$(brew --prefix libressl)/lib/pkgconfig" CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-torture:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --disable-shared --disable-threaded-resolver --with-openssl --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
configure-macos-torture-ftp:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-websockets --disable-shared --disable-threaded-resolver --with-openssl --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CPPFLAGS="-I$(brew --prefix libpsl)/include" CFLAGS='-Wno-vla -mmacosx-version-min=10.9' LDFLAGS="-L$(brew --prefix libpsl)/lib -L$(brew --prefix icu4c)/lib" LIBS="-licuuc -licudata"
|
||||
|
||||
install-cares:
|
||||
steps:
|
||||
- run:
|
||||
@ -155,93 +47,106 @@ commands:
|
||||
sudo apt-get update && sudo apt-get install -y libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev python3-pip libpsl-dev
|
||||
sudo python3 -m pip install impacket
|
||||
|
||||
install-deps-brew:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
# Drop libressl as long as we're not trying to build it
|
||||
echo libtool autoconf automake pkg-config nghttp2 libssh2 openssl libssh c-ares libpsl icu4c | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
while [ $? -eq 0 ]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done
|
||||
sudo python3 -m pip install impacket
|
||||
|
||||
configure-libssh:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-werror --with-openssl --with-libssh
|
||||
|
||||
install-wolfssl:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
WOLFSSL_VER=5.6.0
|
||||
# renovate: datasource=github-tags depName=wolfSSL/wolfssl versioning=semver extractVersion=^v?(?<version>.+)-stable$ registryUrl=https://github.com
|
||||
WOLFSSL_VER=5.7.4
|
||||
echo "Installing wolfSSL $WOLFSSL_VER"
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v$WOLFSSL_VER-stable.tar.gz
|
||||
tar -xzf v$WOLFSSL_VER-stable.tar.gz
|
||||
cd wolfssl-$WOLFSSL_VER-stable
|
||||
./autogen.sh
|
||||
./configure --enable-tls13 --enable-all --enable-harden --prefix=$HOME/wssl
|
||||
./configure --disable-dependency-tracking --enable-tls13 --enable-all --enable-harden --prefix=$HOME/wssl
|
||||
make install
|
||||
|
||||
install-wolfssh:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
WOLFSSH_VER=1.4.12
|
||||
# renovate: datasource=github-tags depName=wolfSSL/wolfssh versioning=semver extractVersion=^v?(?<version>.+)-stable$ registryUrl=https://github.com
|
||||
WOLFSSH_VER=1.4.18
|
||||
echo "Installing wolfSSH $WOLFSSH_VER"
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssh/archive/v$WOLFSSH_VER-stable.tar.gz
|
||||
tar -xzf v$WOLFSSH_VER-stable.tar.gz
|
||||
cd wolfssh-$WOLFSSH_VER-stable
|
||||
./autogen.sh
|
||||
./configure --with-wolfssl=$HOME/wssl --prefix=$HOME/wssh --enable-scp --enable-sftp --disable-examples
|
||||
./configure --disable-dependency-tracking --with-wolfssl=$HOME/wssl --prefix=$HOME/wssh --enable-scp --enable-sftp --disable-examples
|
||||
make install
|
||||
|
||||
configure:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \
|
||||
--with-openssl \
|
||||
|| { tail -1000 config.log; false; }
|
||||
|
||||
configure-openssl-no-verbose:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror \
|
||||
--with-openssl --disable-verbose \
|
||||
|| { tail -1000 config.log; false; }
|
||||
|
||||
configure-no-proxy:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror \
|
||||
--with-openssl --disable-proxy \
|
||||
|| { tail -1000 config.log; false; }
|
||||
|
||||
configure-libssh:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \
|
||||
--with-openssl --with-libssh \
|
||||
|| { tail -1000 config.log; false; }
|
||||
|
||||
configure-cares:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-warnings --enable-werror --with-openssl --enable-ares
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \
|
||||
--with-openssl --enable-ares \
|
||||
|| { tail -1000 config.log; false; }
|
||||
|
||||
configure-wolfssh:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
LDFLAGS="-Wl,-rpath,$HOME/wssh/lib" ./configure --enable-warnings --enable-werror --with-wolfssl=$HOME/wssl --with-wolfssh=$HOME/wssh
|
||||
LDFLAGS="-Wl,-rpath,$HOME/wssh/lib" \
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \
|
||||
--with-wolfssl=$HOME/wssl --with-wolfssh=$HOME/wssh \
|
||||
|| { tail -1000 config.log; false; }
|
||||
|
||||
configure-cares-debug:
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
autoreconf -fi
|
||||
./configure --enable-debug --enable-werror --with-openssl --enable-ares
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-debug \
|
||||
--with-openssl --enable-ares \
|
||||
|| { tail -1000 config.log; false; }
|
||||
|
||||
build:
|
||||
steps:
|
||||
- run: make -j3 V=1
|
||||
- run: make -j3 V=1 examples
|
||||
|
||||
build-macos:
|
||||
steps:
|
||||
- run: make -j5 V=1
|
||||
- run: make -j5 V=1 examples
|
||||
|
||||
test:
|
||||
steps:
|
||||
- run: make -j3 V=1 test-ci
|
||||
|
||||
test-macos:
|
||||
steps:
|
||||
- run: make -j5 V=1 test-ci
|
||||
|
||||
test-torture:
|
||||
steps:
|
||||
- run: make -j5 V=1 test-ci TFLAGS="-n -t --shallow=25 !FTP"
|
||||
|
||||
test-torture-ftp:
|
||||
steps:
|
||||
# Test 250 takes too long, causing Circle CI to kill the job
|
||||
- run: make -j5 V=1 test-ci TFLAGS="-n -t --shallow=20 FTP !250 !251"
|
||||
- run: make -j3 V=1 test-ci TFLAGS='-j14'
|
||||
|
||||
executors:
|
||||
ubuntu:
|
||||
@ -328,138 +233,6 @@ jobs:
|
||||
- build
|
||||
- test
|
||||
|
||||
macos-arm-normal:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-normal
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-debug:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-debug
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-libssh2:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-libssh2
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-libssh-c-ares:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-libssh-c-ares
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-libssh:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-libssh
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-c-ares:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-c-ares
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-http-only:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-http-only
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-http-securetransport-http2:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-securetransport-http2
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-http-openssl-http2:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-openssl-http2
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-http-libressl-http2:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-libressl-http2
|
||||
- build-macos
|
||||
- test-macos
|
||||
|
||||
macos-arm-http-torture:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-torture
|
||||
- build-macos
|
||||
- test-torture
|
||||
|
||||
macos-arm-http-torture-ftp:
|
||||
macos:
|
||||
xcode: 15.0.0
|
||||
resource_class: macos.m1.medium.gen1
|
||||
steps:
|
||||
- checkout
|
||||
- install-deps-brew
|
||||
- configure-macos-torture-ftp
|
||||
- build-macos
|
||||
- test-torture-ftp
|
||||
|
||||
workflows:
|
||||
x86-openssl:
|
||||
jobs:
|
||||
@ -492,53 +265,3 @@ workflows:
|
||||
arm-openssl-c-ares:
|
||||
jobs:
|
||||
- arm-cares
|
||||
|
||||
macos-arm-normal:
|
||||
jobs:
|
||||
- macos-arm-normal
|
||||
|
||||
macos-arm-debug:
|
||||
jobs:
|
||||
- macos-arm-debug
|
||||
|
||||
macos-arm-libssh2:
|
||||
jobs:
|
||||
- macos-arm-libssh2
|
||||
|
||||
macos-arm-libssh-c-ares:
|
||||
jobs:
|
||||
- macos-arm-libssh-c-ares
|
||||
|
||||
macos-arm-libssh:
|
||||
jobs:
|
||||
- macos-arm-libssh
|
||||
|
||||
macos-arm-c-ares:
|
||||
jobs:
|
||||
- macos-arm-c-ares
|
||||
|
||||
macos-arm-http-only:
|
||||
jobs:
|
||||
- macos-arm-http-only
|
||||
|
||||
macos-arm-http-securetransport-http2:
|
||||
jobs:
|
||||
- macos-arm-http-securetransport-http2
|
||||
|
||||
macos-arm-http-openssl-http2:
|
||||
jobs:
|
||||
- macos-arm-http-openssl-http2
|
||||
|
||||
# There are problem linking with LibreSSL on the CI boxes that prevent this
|
||||
# from working.
|
||||
# macos-arm-http-libressl-http2:
|
||||
# jobs:
|
||||
# - macos-arm-http-libressl-http2
|
||||
|
||||
macos-arm-http-torture:
|
||||
jobs:
|
||||
- macos-arm-http-torture
|
||||
|
||||
macos-arm-http-torture-ftp:
|
||||
jobs:
|
||||
- macos-arm-http-torture-ftp
|
||||
|
85
deps/curl/.cirrus.yml
vendored
85
deps/curl/.cirrus.yml
vendored
@ -1,85 +0,0 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# https://cirrus-ci.com/github/curl/curl
|
||||
#
|
||||
# Cirrus CI configuration:
|
||||
# https://cirrus-ci.org/guide/writing-tasks/
|
||||
|
||||
freebsd_task:
|
||||
skip: "changesIncludeOnly(
|
||||
'**/CMakeLists.txt',
|
||||
'.azure-pipelines.yml',
|
||||
'.circleci/**',
|
||||
'.github/**',
|
||||
'appveyor.*',
|
||||
'CMake/**',
|
||||
'packages/**',
|
||||
'plan9/**',
|
||||
'projects/**',
|
||||
'winbuild/**'
|
||||
)"
|
||||
|
||||
name: FreeBSD
|
||||
|
||||
matrix:
|
||||
- name: FreeBSD 14.0
|
||||
freebsd_instance:
|
||||
image_family: freebsd-14-0
|
||||
|
||||
env:
|
||||
CIRRUS_CLONE_DEPTH: 10
|
||||
CRYPTOGRAPHY_DONT_BUILD_RUST: 1
|
||||
MAKEFLAGS: -j 3
|
||||
|
||||
pkginstall_script:
|
||||
- pkg update -f
|
||||
- pkg install -y autoconf automake libtool pkgconf brotli openldap26-client heimdal libpsl libssh2 libidn2 librtmp libnghttp2 nghttp2 stunnel py39-openssl py39-impacket py39-cryptography libpsl
|
||||
- pkg delete -y curl
|
||||
configure_script:
|
||||
- autoreconf -fi
|
||||
# Building with the address sanitizer is causing unexplainable test issues due to timeouts
|
||||
# - case `uname -r` in
|
||||
# 12.2*)
|
||||
# export CC=clang;
|
||||
# export CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g";
|
||||
# export CXXFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g";
|
||||
# export LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer" ;;
|
||||
# esac
|
||||
- ./configure --prefix="${HOME}"/install --enable-debug --with-openssl --with-libssh2 --with-brotli --with-gssapi --with-libidn2 --enable-manual --enable-ldap --enable-ldaps --with-librtmp --with-libpsl --with-nghttp2 || { tail -300 config.log; false; }
|
||||
compile_script:
|
||||
- make V=1 && make V=1 examples && cd tests && make V=1
|
||||
test_script:
|
||||
# blackhole?
|
||||
- sysctl net.inet.tcp.blackhole
|
||||
# make sure we don't run blackhole != 0
|
||||
- sudo sysctl net.inet.tcp.blackhole=0
|
||||
# Some tests won't run if run as root so run them as another user.
|
||||
# Make directories world writable so the test step can write wherever it needs.
|
||||
- find . -type d -exec chmod 777 {} \;
|
||||
# The OpenSSH server instance for the testsuite cannot be started on FreeBSD,
|
||||
# therefore the SFTP and SCP tests are disabled right away from the beginning.
|
||||
#
|
||||
- sudo -u nobody make V=1 TFLAGS="-n !SFTP !SCP" test-ci
|
||||
install_script:
|
||||
- make V=1 install
|
7
deps/curl/.dcignore
vendored
7
deps/curl/.dcignore
vendored
@ -1,7 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
tests/**
|
||||
docs/**
|
||||
docs/examples/**
|
5
deps/curl/.gitattributes
vendored
5
deps/curl/.gitattributes
vendored
@ -2,7 +2,6 @@
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
*.dsw -crlf
|
||||
buildconf eol=lf
|
||||
configure.ac eol=lf
|
||||
*.m4 eol=lf
|
||||
@ -11,8 +10,6 @@ configure.ac eol=lf
|
||||
*.sh eol=lf
|
||||
*.[ch] whitespace=tab-in-indent
|
||||
|
||||
# Batch files (bat,btm,cmd) must be run with CRLF line endings.
|
||||
# Batch files must be run with CRLF line endings.
|
||||
# Refer to https://github.com/curl/curl/pull/6442
|
||||
*.bat text eol=crlf
|
||||
*.btm text eol=crlf
|
||||
*.cmd text eol=crlf
|
||||
|
2
deps/curl/.github/CONTRIBUTING.md
vendored
2
deps/curl/.github/CONTRIBUTING.md
vendored
@ -26,4 +26,4 @@ Send your suggestions using one of these methods:
|
||||
|
||||
3. as an [issue](https://github.com/curl/curl/issues)
|
||||
|
||||
/ The curl team!
|
||||
/ The curl team
|
||||
|
@ -2,8 +2,8 @@
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Bug Report
|
||||
description: Create a report to help us improve
|
||||
name: Bug Report on code
|
||||
description: Tell us about your problem with curl or libcurl
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
|
15
deps/curl/.github/ISSUE_TEMPLATE/config.yml
vendored
15
deps/curl/.github/ISSUE_TEMPLATE/config.yml
vendored
@ -4,12 +4,15 @@
|
||||
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Ask a question (without email)
|
||||
url: https://github.com/curl/curl/discussions
|
||||
about: Use the Discussion forum here on GitHub
|
||||
- name: Ask a question (using email)
|
||||
url: https://curl.se/mail/
|
||||
about: Send question to the suitable mailing list
|
||||
- name: Commercial support
|
||||
url: https://curl.se/support.html
|
||||
about: Pay for fast quality support for and help with curl/libcurl
|
||||
- name: Feature request
|
||||
url: https://curl.se/mail/
|
||||
about: To propose new features or enhancements, please bring that discussion to a suitable curl mailing list.
|
||||
- name: Question
|
||||
url: https://curl.se/mail/
|
||||
about: Questions should go to the mailing list
|
||||
- name: Commercial support
|
||||
url: https://curl.se/support.html
|
||||
about: Several companies are offering paid support for curl/libcurl
|
||||
|
32
deps/curl/.github/ISSUE_TEMPLATE/docs.yml
vendored
Normal file
32
deps/curl/.github/ISSUE_TEMPLATE/docs.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Bug Report on documentation
|
||||
description: Problems, errors, mistakes or typos in documentation.
|
||||
labels: documentation
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
|
||||
Only file documentation bugs here! Ask questions on the mailing lists https://curl.se/mail/
|
||||
|
||||
- type: textarea
|
||||
id: source
|
||||
attributes:
|
||||
label: Specify which documentation you found a problem with
|
||||
description: |
|
||||
Include function name, URL, tarball version and all other relevant
|
||||
details that identify the documentation source.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: The problem
|
||||
validations:
|
||||
required: true
|
4
deps/curl/.github/dependabot.yml
vendored
4
deps/curl/.github/dependabot.yml
vendored
@ -1,3 +1,7 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
|
419
deps/curl/.github/labeler.yml
vendored
419
deps/curl/.github/labeler.yml
vendored
@ -15,36 +15,78 @@
|
||||
# something else (e.g. CI if the PR also touches CI jobs).
|
||||
#
|
||||
# N.B. any-glob-to-all-files is misnamed; it acts like one-glob-to-all-files.
|
||||
# Therefore, to get any-glob-to-all-files semantics, there must be a single glob
|
||||
# with all matching patterns within braces.
|
||||
# Therefore, to get any-glob-to-all-files semantics with multiple matching
|
||||
# patterns, they must be joined with commas to a single string surrounded by
|
||||
# braces. For example: '{lib/**,src/**}'.
|
||||
#
|
||||
# See https://github.com/actions/labeler/ for documentation on this file.
|
||||
---
|
||||
|
||||
appleOS:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{.github/workflows/macos.yml,lib/config-mac.h,lib/macos*,lib/vtls/sectransp*,m4/curl-sectransp.m4,MacOSX-Framework}'
|
||||
- any-glob-to-all-files: "{\
|
||||
.github/workflows/macos.yml,\
|
||||
lib/config-mac.h,\
|
||||
lib/macos*,\
|
||||
lib/vtls/sectransp*,\
|
||||
m4/curl-sectransp.m4\
|
||||
}"
|
||||
|
||||
authentication:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/mk-ca-bundle.1,docs/libcurl/opts/CURLINFO_HTTPAUTH*,docs/libcurl/opts/CURLINFO_PROXYAUTH*,docs/libcurl/opts/CURLOPT_KRB*,docs/libcurl/opts/CURLOPT_SASL*,docs/libcurl/opts/CURLOPT_SERVICE_NAME*,docs/libcurl/opts/CURLOPT_USERNAME*,docs/libcurl/opts/CURLOPT_USERPWD*,docs/libcurl/opts/CURLOPT_XOAUTH*,lib/*gssapi*,lib/*krb5*,lib/*ntlm*,lib/curl_sasl.*,lib/http_aws*,lib/http_digest.*,lib/http_negotiate.*,lib/vauth/**,tests/server/fake_ntlm.c}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/mk-ca-bundle.1,\
|
||||
docs/libcurl/opts/CURLINFO_HTTPAUTH*,\
|
||||
docs/libcurl/opts/CURLINFO_PROXYAUTH*,\
|
||||
docs/libcurl/opts/CURLOPT_KRB*,\
|
||||
docs/libcurl/opts/CURLOPT_SASL*,\
|
||||
docs/libcurl/opts/CURLOPT_SERVICE_NAME*,\
|
||||
docs/libcurl/opts/CURLOPT_USERNAME*,\
|
||||
docs/libcurl/opts/CURLOPT_USERPWD*,\
|
||||
docs/libcurl/opts/CURLOPT_XOAUTH*,\
|
||||
lib/*gssapi*,\
|
||||
lib/*krb5*,\
|
||||
lib/*ntlm*,\
|
||||
lib/curl_sasl.*,\
|
||||
lib/http_aws*,\
|
||||
lib/http_digest.*,\
|
||||
lib/http_negotiate.*,\
|
||||
lib/vauth/**\
|
||||
}"
|
||||
|
||||
build:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{**/CMakeLists.txt,**/Makefile.am,**/Makefile.inc,**/Makefile.mk,**/*.m4,**/*.mk,*.m4,docs/INSTALL.cmake,lib/curl_config.h.cmake,lib/libcurl*.in,CMake/**,CMakeLists.txt,configure.ac,m4/**,MacOSX-Framework,Makefile.*,packages/**,plan9/**,projects/**,winbuild/**,libcurl.def}'
|
||||
- any-glob-to-all-files: "{\
|
||||
**/CMakeLists.txt,\
|
||||
**/Makefile.am,\
|
||||
**/Makefile.inc,\
|
||||
**/Makefile.mk,\
|
||||
**/*.m4,\
|
||||
**/*.mk,\
|
||||
*.m4,\
|
||||
docs/INSTALL.cmake,\
|
||||
lib/curl_config.h.cmake,\
|
||||
lib/libcurl*.in,\
|
||||
CMake/**,\
|
||||
CMakeLists.txt,\
|
||||
configure.ac,\
|
||||
m4/**,\
|
||||
Makefile.*,\
|
||||
packages/**,\
|
||||
plan9/**,\
|
||||
projects/**,\
|
||||
winbuild/**,\
|
||||
lib/libcurl.def\
|
||||
}"
|
||||
|
||||
CI:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- '.github/**'
|
||||
- 'appveyor.*'
|
||||
- 'scripts/ci*'
|
||||
@ -55,8 +97,12 @@ CI:
|
||||
cmake:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{**/CMakeLists.txt,CMake/**,docs/INSTALL.cmake,lib/curl_config.h.cmake}'
|
||||
- any-glob-to-all-files: "{\
|
||||
**/CMakeLists.txt,\
|
||||
CMake/**,\
|
||||
docs/INSTALL.cmake,\
|
||||
lib/curl_config.h.cmake\
|
||||
}"
|
||||
|
||||
cmdline tool:
|
||||
- all:
|
||||
@ -68,32 +114,93 @@ cmdline tool:
|
||||
connecting & proxies:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/CONNECTION-FILTERS.md,docs/examples/ipv6.c,docs/libcurl/opts/CURLINFO_CONNECT*,docs/libcurl/opts/CURLINFO_PROXY*,docs/libcurl/opts/CURLOPT_ADDRESS*,docs/libcurl/opts/CURLOPT_CONNECT*,docs/libcurl/opts/CURLOPT_HAPROXY*,docs/libcurl/opts/CURLOPT_OPENSOCKET*,docs/libcurl/opts/CURLOPT_PRE_PROXY*,docs/libcurl/opts/CURLOPT_PROXY*,docs/libcurl/opts/CURLOPT_SOCKOPT*,docs/libcurl/opts/CURLOPT_SOCKS*,docs/libcurl/opts/CURLOPT_TCP*,docs/libcurl/opts/CURLOPT_TIMEOUT*,lib/cf-*proxy.*,lib/cf-socket.*,lib/cfilters.*,lib/conncache.*,lib/connect.*,lib/http_proxy.*,lib/if2ip.*,lib/noproxy.*,lib/socks.*,tests/server/socksd.c}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/internals/CONNECTION-FILTERS.md,\
|
||||
docs/examples/ipv6.c,\
|
||||
docs/libcurl/opts/CURLINFO_CONNECT*,\
|
||||
docs/libcurl/opts/CURLINFO_PROXY*,\
|
||||
docs/libcurl/opts/CURLOPT_ADDRESS*,\
|
||||
docs/libcurl/opts/CURLOPT_CONNECT*,\
|
||||
docs/libcurl/opts/CURLOPT_HAPROXY*,\
|
||||
docs/libcurl/opts/CURLOPT_OPENSOCKET*,\
|
||||
docs/libcurl/opts/CURLOPT_PRE_PROXY*,\
|
||||
docs/libcurl/opts/CURLOPT_PROXY*,\
|
||||
docs/libcurl/opts/CURLOPT_SOCKOPT*,\
|
||||
docs/libcurl/opts/CURLOPT_SOCKS*,\
|
||||
docs/libcurl/opts/CURLOPT_TCP*,\
|
||||
docs/libcurl/opts/CURLOPT_TIMEOUT*,\
|
||||
lib/cf-*proxy.*,\
|
||||
lib/cf-socket.*,\
|
||||
lib/cfilters.*,\
|
||||
lib/conncache.*,\
|
||||
lib/connect.*,\
|
||||
lib/http_proxy.*,\
|
||||
lib/if2ip.*,\
|
||||
lib/noproxy.*,\
|
||||
lib/socks.*,\
|
||||
tests/server/socksd.c\
|
||||
}"
|
||||
|
||||
cookies:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/HTTP-COOKIES.md,docs/cmdline-opts/cookie*,docs/cmdline-opts/junk-session-cookies.md,docs/libcurl/opts/CURLINFO_COOKIE*,docs/libcurl/opts/CURLOPT_COOKIE*,docs/examples/cookie_interface.c,lib/cookie.*,lib/psl.*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/HTTP-COOKIES.md,\
|
||||
docs/cmdline-opts/cookie*,\
|
||||
docs/cmdline-opts/junk-session-cookies.md,\
|
||||
docs/libcurl/opts/CURLINFO_COOKIE*,\
|
||||
docs/libcurl/opts/CURLOPT_COOKIE*,\
|
||||
docs/examples/cookie_interface.c,\
|
||||
lib/cookie.*,\
|
||||
lib/psl.*\
|
||||
}"
|
||||
|
||||
cryptography:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/CIPHERS.md,docs/RUSTLS.md,docs/libcurl/opts/CURLOPT_EGDSOCKET*,lib/*sha256*,lib/*sha512*,lib/curl_des.*,lib/curl_hmac.*,lib/curl_md?.*,lib/md?.*,lib/rand.*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/CIPHERS.md,\
|
||||
docs/RUSTLS.md,\
|
||||
docs/libcurl/opts/CURLOPT_EGDSOCKET*,\
|
||||
lib/*sha256*,\
|
||||
lib/*sha512*,\
|
||||
lib/curl_des.*,\
|
||||
lib/curl_hmac.*,\
|
||||
lib/curl_md?.*,\
|
||||
lib/md?.*,\
|
||||
lib/rand.*\
|
||||
}"
|
||||
|
||||
DICT:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{lib/dict.*,tests/dictserver.py}'
|
||||
- any-glob-to-all-files: "{\
|
||||
lib/dict.*,\
|
||||
tests/dictserver.py\
|
||||
}"
|
||||
|
||||
documentation:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{.github/workflows/badwords.yml,.github/workflows/man-examples.yml,.github/workflows/synopsis.yml,.github/scripts/badwords.*,.github/scripts/cd2cd,.github/scripts/cd2nroff,.github/scripts/cdall.pl,.github/scripts/nroff2cd,.github/scripts/verify-examples.pl,.github/scripts/verify-synopsis.pl,**/*.md,**/*.txt,**/*.1,CHANGES,docs/**,LICENSES/**,README,RELEASE-NOTES,scripts/cd*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
.github/workflows/checkdocs.yml,\
|
||||
.github/scripts/badwords.*,\
|
||||
.github/scripts/cd2cd,\
|
||||
.github/scripts/cd2nroff,\
|
||||
.github/scripts/cdall.pl,\
|
||||
.github/scripts/nroff2cd,\
|
||||
.github/scripts/verify-examples.pl,\
|
||||
.github/scripts/verify-synopsis.pl,\
|
||||
**/*.md,\
|
||||
**/*.txt,\
|
||||
**/*.1,\
|
||||
CHANGES.md,\
|
||||
docs/**,\
|
||||
LICENSES/**,\
|
||||
README,\
|
||||
RELEASE-NOTES,\
|
||||
scripts/cd*\
|
||||
}"
|
||||
- all-globs-to-all-files:
|
||||
# negative matches
|
||||
- '!**/CMakeLists.txt'
|
||||
@ -102,50 +209,112 @@ documentation:
|
||||
FTP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/libcurl/opts/CURLINFO_FTP*,docs/libcurl/opts/CURLOPT_FTP*,docs/libcurl/opts/CURLOPT_WILDCARDMATCH*,docs/examples/ftp*,lib/curl_fnmatch.*,lib/curl_range.*,lib/ftp*,tests/ftp*'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/libcurl/opts/CURLINFO_FTP*,\
|
||||
docs/libcurl/opts/CURLOPT_FTP*,\
|
||||
docs/libcurl/opts/CURLOPT_WILDCARDMATCH*,\
|
||||
docs/examples/ftp*,\
|
||||
lib/curl_fnmatch.*,\
|
||||
lib/curl_range.*,\
|
||||
lib/ftp*,\
|
||||
tests/ftp*\
|
||||
}"
|
||||
|
||||
GOPHER:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{lib/gopher*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
lib/gopher*\
|
||||
}"
|
||||
|
||||
HTTP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/examples/hsts*,docs/examples/http-*,docs/examples/httpput*,docs/examples/https*,docs/examples/*post*,docs/HSTS.md,docs/HTTP-COOKIES.md,docs/libcurl/opts/CURLINFO_COOKIE*,docs/libcurl/opts/CURLOPT_COOKIE*,docs/libcurl/opts/CURLINFO_HTTP_**,docs/libcurl/opts/CURLINFO_REDIRECT*,docs/libcurl/opts/CURLINFO_REFER*,docs/libcurl/opts/CURLOPT_FOLLOWLOCATION*,docs/libcurl/opts/CURLOPT_HSTS*,docs/libcurl/opts/CURLOPT_HTTP*,docs/libcurl/opts/CURLOPT_POST.*,docs/libcurl/opts/CURLOPT_POSTFIELD*,docs/libcurl/opts/CURLOPT_POSTREDIR*,docs/libcurl/opts/CURLOPT_REDIR*,docs/libcurl/opts/CURLOPT_REFER*,docs/libcurl/opts/CURLOPT_TRAILER*,docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING*,lib/cf-https*,lib/cf-h1*,lib/cf-h2*,lib/cookie.*,lib/http*,tests/http*,tests/http-server.pl,tests/http/*,tests/nghttp*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/examples/hsts*,\
|
||||
docs/examples/http-*,\
|
||||
docs/examples/httpput*,\
|
||||
docs/examples/https*,\
|
||||
docs/examples/*post*,\
|
||||
docs/HTTP-COOKIES.md,\
|
||||
docs/libcurl/opts/CURLINFO_COOKIE*,\
|
||||
docs/libcurl/opts/CURLOPT_COOKIE*,\
|
||||
docs/libcurl/opts/CURLINFO_HTTP_**,\
|
||||
docs/libcurl/opts/CURLINFO_REDIRECT*,\
|
||||
docs/libcurl/opts/CURLINFO_REFER*,\
|
||||
docs/libcurl/opts/CURLOPT_FOLLOWLOCATION*,\
|
||||
docs/libcurl/opts/CURLOPT_HSTS*,\
|
||||
docs/libcurl/opts/CURLOPT_HTTP*,\
|
||||
docs/libcurl/opts/CURLOPT_POST.*,\
|
||||
docs/libcurl/opts/CURLOPT_POSTFIELD*,\
|
||||
docs/libcurl/opts/CURLOPT_POSTREDIR*,\
|
||||
docs/libcurl/opts/CURLOPT_REDIR*,\
|
||||
docs/libcurl/opts/CURLOPT_REFER*,\
|
||||
docs/libcurl/opts/CURLOPT_TRAILER*,\
|
||||
docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING*,\
|
||||
lib/cf-https*,\
|
||||
lib/cf-h1*,\
|
||||
lib/cf-h2*,\
|
||||
lib/cookie.*,\
|
||||
lib/hsts.*,\
|
||||
lib/http*,\
|
||||
tests/http*,\
|
||||
tests/http-server.pl,\
|
||||
tests/http/*,\
|
||||
tests/nghttp*\
|
||||
}"
|
||||
|
||||
HTTP/2:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{CMake/FindNGHTTP2.cmake,CMake/FindQUICHE.cmake,docs/HTTP2.md,docs/libcurl/opts/CURLOPT_STREAM*,docs/examples/http2*,lib/http2*,tests/http2-server.pl}'
|
||||
- any-glob-to-all-files: "{\
|
||||
CMake/FindNGHTTP2.cmake,\
|
||||
CMake/FindQuiche.cmake,\
|
||||
docs/libcurl/opts/CURLOPT_STREAM*,\
|
||||
docs/examples/http2*,\
|
||||
lib/http2*,\
|
||||
tests/http2-server.pl\
|
||||
}"
|
||||
|
||||
HTTP/3:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{.github/workflows/ngtcp2*,.github/workflows/quiche*,.github/workflows/osslq*,CMake/FindMSH3.cmake,CMake/FindNGHTTP3.cmake,CMake/FindNGTCP2.cmake,docs/HTTP3.md,docs/examples/http3*,lib/vquic/**,tests/http3-server.pl,tests/nghttpx.conf}'
|
||||
- any-glob-to-all-files: "{\
|
||||
.github/workflows/ngtcp2*,\
|
||||
.github/workflows/quiche*,\
|
||||
.github/workflows/osslq*,\
|
||||
CMake/FindMSH3.cmake,\
|
||||
CMake/FindNGHTTP3.cmake,\
|
||||
CMake/FindNGTCP2.cmake,\
|
||||
docs/HTTP3.md,\
|
||||
docs/examples/http3*,\
|
||||
lib/vquic/**,\
|
||||
tests/http3-server.pl,\
|
||||
tests/nghttpx.conf\
|
||||
}"
|
||||
|
||||
Hyper:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/HYPER.md,lib/c-hyper.*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/HYPER.md,\
|
||||
lib/c-hyper.*\
|
||||
}"
|
||||
|
||||
IMAP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{lib/imap*,docs/examples/imap*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
lib/imap*,\
|
||||
docs/examples/imap*\
|
||||
}"
|
||||
|
||||
LDAP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{lib/*ldap*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
lib/*ldap*\
|
||||
}"
|
||||
|
||||
libcurl API:
|
||||
- all:
|
||||
@ -158,68 +327,120 @@ libcurl API:
|
||||
logging:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/cmdline-opts/trace*,docs/libcurl/curl_global_trace*,lib/curl_trc*,tests/http/test_15_tracing.py}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/cmdline-opts/trace*,\
|
||||
docs/libcurl/curl_global_trace*,\
|
||||
lib/curl_trc*,\
|
||||
tests/http/test_15_tracing.py\
|
||||
}"
|
||||
|
||||
MIME:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/libcurl/curl_form*,docs/libcurl/curl_mime_*,docs/libcurl/opts/CURLOPT_MIME*,docs/libcurl/opts/CURLOPT_HTTPPOST*,lib/formdata*,lib/mime*,src/tool_formparse.*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/libcurl/curl_form*,\
|
||||
docs/libcurl/curl_mime_*,\
|
||||
docs/libcurl/opts/CURLOPT_MIME*,\
|
||||
docs/libcurl/opts/CURLOPT_HTTPPOST*,\
|
||||
lib/formdata*,\
|
||||
lib/mime*,\
|
||||
src/tool_formparse.*\
|
||||
}"
|
||||
|
||||
MQTT:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/MQTT.md,lib/mqtt*,tests/server/mqttd.c}'
|
||||
- any-glob-to-all-files: "{\
|
||||
lib/mqtt*,\
|
||||
tests/server/mqttd.c\
|
||||
}"
|
||||
|
||||
name lookup:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/examples/resolve.c,docs/libcurl/opts/CURLINFO_NAMELOOKUP*,docs/libcurl/opts/CURLOPT_DNS*,docs/libcurl/opts/CURLOPT_DOH*,docs/libcurl/opts/CURLOPT_RESOLVE*,lib/asyn*,lib/curl_gethostname.*,lib/doh*,lib/host*,lib/idn*,lib/inet_pton.*,lib/socketpair*,tests/server/resolve.c}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/examples/resolve.c,\
|
||||
docs/libcurl/opts/CURLINFO_NAMELOOKUP*,\
|
||||
docs/libcurl/opts/CURLOPT_DNS*,\
|
||||
docs/libcurl/opts/CURLOPT_DOH*,\
|
||||
docs/libcurl/opts/CURLOPT_RESOLVE*,\
|
||||
lib/asyn*,\
|
||||
lib/curl_gethostname.*,\
|
||||
lib/doh*,\
|
||||
lib/host*,\
|
||||
lib/idn*,\
|
||||
lib/inet_pton.*,\
|
||||
lib/socketpair*,\
|
||||
tests/server/resolve.c\
|
||||
}"
|
||||
|
||||
POP3:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/examples/pop3*,lib/pop3.*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/examples/pop3*,\
|
||||
lib/pop3.*\
|
||||
}"
|
||||
|
||||
RTMP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{lib/curl_rtmp.*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
lib/curl_rtmp.*\
|
||||
}"
|
||||
|
||||
RTSP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/libcurl/opts/CURLINFO_RTSP*,docs/libcurl/opts/CURLOPT_RTSP*,lib/rtsp.*,tests/rtspserver.pl,tests/server/rtspd.c}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/libcurl/opts/CURLINFO_RTSP*,\
|
||||
docs/libcurl/opts/CURLOPT_RTSP*,\
|
||||
lib/rtsp.*,\
|
||||
tests/rtspserver.pl,\
|
||||
tests/server/rtspd.c\
|
||||
}"
|
||||
|
||||
SCP/SFTP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{CMake/FindLibSSH2.cmake,docs/libcurl/opts/CURLOPT_SSH*,docs/examples/sftp*,lib/vssh/**,tests/sshhelp.pm,tests/sshserver.pl}'
|
||||
- any-glob-to-all-files: "{\
|
||||
CMake/FindLibssh2.cmake,\
|
||||
docs/libcurl/opts/CURLOPT_SSH*,\
|
||||
docs/examples/sftp*,\
|
||||
lib/vssh/**,\
|
||||
tests/sshhelp.pm,\
|
||||
tests/sshserver.pl\
|
||||
}"
|
||||
|
||||
script:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{**/*.pl,**/*.sh,curl-config.in,docs/curl-config.1,docs/mk-ca-bundle.1,docs/THANKS-filter,scripts/**}'
|
||||
- any-glob-to-all-files: "{\
|
||||
**/*.pl,\
|
||||
**/*.sh,\
|
||||
curl-config.in,\
|
||||
docs/curl-config.1,\
|
||||
docs/mk-ca-bundle.1,\
|
||||
docs/THANKS-filter,\
|
||||
scripts/**\
|
||||
}"
|
||||
|
||||
SMB:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{lib/smb.*,tests/smbserver.py}'
|
||||
- any-glob-to-all-files: "{\
|
||||
lib/smb.*,\
|
||||
tests/smbserver.py\
|
||||
}"
|
||||
|
||||
SMTP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/examples/smtp-*,docs/libcurl/opts/CURLOPT_MAIL*,lib/smtp.*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/examples/smtp-*,\
|
||||
docs/libcurl/opts/CURLOPT_MAIL*,\
|
||||
lib/smtp.*\
|
||||
}"
|
||||
|
||||
tests:
|
||||
- all:
|
||||
@ -230,29 +451,87 @@ tests:
|
||||
TFTP:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{lib/tftp.*,tests/tftpserver.pl,tests/server/tftp*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
lib/tftp.*,\
|
||||
tests/tftpserver.pl,\
|
||||
tests/server/tftp*\
|
||||
}"
|
||||
|
||||
TLS:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{CMake/FindBearSSL.cmake,CMake/FindMbedTLS.cmake,CMake/FindWolfSSL.cmake,docs/examples/ssl*,docs/examples/*ssl.*,docs/examples/*tls.*,docs/SSL*,docs/libcurl/curl_global_sslset*,docs/libcurl/opts/CURLINFO_CA*,docs/libcurl/opts/CURLINFO_CERT*,docs/libcurl/opts/CURLINFO_SSL*,docs/libcurl/opts/CURLINFO_TLS*,docs/libcurl/opts/CURLOPT_CA*,docs/libcurl/opts/CURLOPT_CERT*,docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY*,docs/libcurl/opts/CURLOPT_SSL*,docs/libcurl/opts/CURLOPT_TLS*,docs/libcurl/opts/CURLOPT_USE_SSL*,lib/vtls/**,m4/curl-bearssl.m4,m4/curl-gnutls.m4,m4/curl-mbedtls.m4,m4/curl-openssl.m4,m4/curl-rustls.m4,m4/curl-schannel.m4,m4/curl-sectransp.m4,m4/curl-wolfssl.m4}'
|
||||
- any-glob-to-all-files: "{\
|
||||
CMake/FindBearSSL.cmake,\
|
||||
CMake/FindMbedTLS.cmake,\
|
||||
CMake/FindWolfSSL.cmake,\
|
||||
CMake/FindRustls.cmake,\
|
||||
docs/examples/ssl*,\
|
||||
docs/examples/*ssl.*,\
|
||||
docs/examples/*tls.*,\
|
||||
docs/SSL*,\
|
||||
docs/libcurl/curl_global_sslset*,\
|
||||
docs/libcurl/opts/CURLINFO_CA*,\
|
||||
docs/libcurl/opts/CURLINFO_CERT*,\
|
||||
docs/libcurl/opts/CURLINFO_SSL*,\
|
||||
docs/libcurl/opts/CURLINFO_TLS*,\
|
||||
docs/libcurl/opts/CURLOPT_CA*,\
|
||||
docs/libcurl/opts/CURLOPT_CERT*,\
|
||||
docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY*,\
|
||||
docs/libcurl/opts/CURLOPT_SSL*,\
|
||||
docs/libcurl/opts/CURLOPT_TLS*,\
|
||||
docs/libcurl/opts/CURLOPT_USE_SSL*,\
|
||||
lib/vtls/**,\
|
||||
m4/curl-bearssl.m4,\
|
||||
m4/curl-gnutls.m4,\
|
||||
m4/curl-mbedtls.m4,\
|
||||
m4/curl-openssl.m4,\
|
||||
m4/curl-rustls.m4,\
|
||||
m4/curl-schannel.m4,\
|
||||
m4/curl-sectransp.m4,\
|
||||
m4/curl-wolfssl.m4\
|
||||
}"
|
||||
|
||||
URL:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/libcurl/curl_url*,docs/URL-SYNTAX.md,docs/examples/parseurl*,include/curl/urlapi.h,lib/urlapi*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/libcurl/curl_url*,\
|
||||
docs/URL-SYNTAX.md,\
|
||||
docs/examples/parseurl*,\
|
||||
include/curl/urlapi.h,\
|
||||
lib/urlapi*\
|
||||
}"
|
||||
|
||||
WebSocket:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{docs/WEBSOCKET.md*,docs/examples/websocket*,docs/libcurl/curl_ws_*,docs/libcurl/libcurl-ws*,docs/libcurl/opts/CURLOPT_WS_*,include/curl/websockets.h,lib/ws.*,tests/http/clients/ws*,tests/http/test_20_websockets.py,tests/http/testenv/ws*}'
|
||||
- any-glob-to-all-files: "{\
|
||||
docs/internals/WEBSOCKET.md*,\
|
||||
docs/examples/websocket*,\
|
||||
docs/libcurl/curl_ws_*,\
|
||||
docs/libcurl/libcurl-ws*,\
|
||||
docs/libcurl/opts/CURLOPT_WS_*,\
|
||||
include/curl/websockets.h,\
|
||||
lib/ws.*,\
|
||||
tests/http/clients/ws*,\
|
||||
tests/http/test_20_websockets.py,\
|
||||
tests/http/testenv/ws*\
|
||||
}"
|
||||
|
||||
Windows:
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files:
|
||||
- '{appveyor.*,CMake/Platforms/WindowsCache.cmake,lib/*win32*,lib/curl_multibyte.*,lib/rename.*,lib/vtls/schannel*,m4/curl-schannel.m4,projects/**,src/tool_doswin.c,winbuild/**,libcurl.def}'
|
||||
- any-glob-to-all-files: "{\
|
||||
appveyor.*,\
|
||||
.github/workflows/windows.yml,\
|
||||
CMake/Platforms/WindowsCache.cmake,\
|
||||
lib/*win32*,\
|
||||
lib/curl_multibyte.*,\
|
||||
lib/rename.*,\
|
||||
lib/vtls/schannel*,\
|
||||
m4/curl-schannel.m4,\
|
||||
projects/**,\
|
||||
src/tool_doswin.c,\
|
||||
winbuild/**,\
|
||||
lib/libcurl.def\
|
||||
}"
|
||||
|
2
deps/curl/.github/scripts/badwords.pl
vendored
2
deps/curl/.github/scripts/badwords.pl
vendored
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/perl
|
||||
#!/usr/bin/env perl
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
26
deps/curl/.github/scripts/badwords.txt
vendored
26
deps/curl/.github/scripts/badwords.txt
vendored
@ -12,28 +12,38 @@ wild-card:wildcard
|
||||
wild card:wildcard
|
||||
i'm:I am
|
||||
you've:You have
|
||||
we've:we have
|
||||
we're:we are
|
||||
we'll:we will
|
||||
we'd:we would
|
||||
they've:They have
|
||||
they're:They are
|
||||
they'll:They will
|
||||
they'd:They would
|
||||
you've:you have
|
||||
you'd:you would
|
||||
you'll:you will
|
||||
you're:you are
|
||||
should've:should have
|
||||
don't:do not
|
||||
don't=do not
|
||||
could've:could have
|
||||
doesn't:does not
|
||||
isn't:is not
|
||||
aren't:are not
|
||||
a html: an html
|
||||
a http: an http
|
||||
a ftp: an ftp
|
||||
url =URL
|
||||
internet\b=Internet
|
||||
isation:ization
|
||||
it's:it is
|
||||
\bit's:it is
|
||||
it'd:it would
|
||||
there's:there is
|
||||
[^.]\. And: Rewrite it somehow?
|
||||
^(And|So|But) = Rewrite it somehow?
|
||||
\. But: Rewrite it somehow?
|
||||
\. So : Rewrite without "so" ?
|
||||
dir :directory
|
||||
you'd:you would
|
||||
you'll:you will
|
||||
can't:cannot
|
||||
that's:that is
|
||||
web page:webpage
|
||||
@ -43,8 +53,16 @@ file name\b:filename
|
||||
file names\b:filenames
|
||||
\buser name\b:username
|
||||
\buser names\b:usernames
|
||||
\bpass phrase:passphrase
|
||||
didn't:did not
|
||||
doesn't:does not
|
||||
won't:will not
|
||||
couldn't:could not
|
||||
\bwill\b:rewrite to present tense
|
||||
\b32bit=32-bit
|
||||
\b64bit=64-bit
|
||||
32 bit\b=32-bit
|
||||
64 bit\b=64-bit
|
||||
64-bits:64 bits or 64-bit
|
||||
32-bits:32 bits or 32-bit
|
||||
\bvery\b:rephrase using an alternative word
|
||||
|
115
deps/curl/.github/scripts/binarycheck.pl
vendored
Normal file
115
deps/curl/.github/scripts/binarycheck.pl
vendored
Normal file
@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env perl
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
# This scripts scans the entire git repository for binary files.
|
||||
#
|
||||
# All files in the git repo that contain signs of being binary are then
|
||||
# collected and a sha256sum is generated for all of them. That summary is then
|
||||
# compared to the list of pre-vetted files so that only the exact copies of
|
||||
# already scrutinized files are deemed okay to "appear binary".
|
||||
#
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $root = ".";
|
||||
my $sumsfile = ".github/scripts/binarycheck.sums";
|
||||
if($ARGV[0]) {
|
||||
$root = $ARGV[0];
|
||||
}
|
||||
|
||||
my @bin;
|
||||
my %known;
|
||||
my $error = 0;
|
||||
|
||||
sub knownbins {
|
||||
open(my $mh, "<", "$sumsfile") ||
|
||||
die "can't read known binaries";
|
||||
while(<$mh>) {
|
||||
my $l = $_;
|
||||
chomp $l;
|
||||
if($l =~ /^([a-f0-9]+) (.*)/) {
|
||||
my ($sum, $file) = ($1, $2);
|
||||
$known{$file} = 1;
|
||||
}
|
||||
elsif($l =~ /^#/) {
|
||||
# skip comments
|
||||
}
|
||||
else {
|
||||
print STDERR "suspicious line in $sumsfile\n";
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
close($mh);
|
||||
}
|
||||
|
||||
sub checkfile {
|
||||
my ($file) = @_;
|
||||
open(my $mh, "<", "$file") || die "can't read $file";
|
||||
my $line = 0;
|
||||
while(<$mh>) {
|
||||
my $l = $_;
|
||||
$line++;
|
||||
if($l =~ /([\x00-\x08\x0b\x0c\x0e-\x1f\x7f])/) {
|
||||
push @bin, $file;
|
||||
|
||||
if(!$known{$file}) {
|
||||
printf STDERR "$file:$line has unknown binary contents\n";
|
||||
$error++;
|
||||
}
|
||||
last;
|
||||
}
|
||||
}
|
||||
close($mh);
|
||||
}
|
||||
|
||||
my @files = `git ls-files -- $root`;
|
||||
|
||||
if(scalar(@files) < 3000) {
|
||||
# this means this is not the git source code repository or that git does
|
||||
# not work, error out!
|
||||
print STDERR "too few files in the git repository!\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
knownbins();
|
||||
|
||||
if(scalar(keys %known) < 10) {
|
||||
print STDERR "too few known binaries in $sumsfile\n";
|
||||
exit 2;
|
||||
}
|
||||
|
||||
for my $f (@files) {
|
||||
chomp $f;
|
||||
checkfile("$root/$f");
|
||||
}
|
||||
|
||||
my $check=system("sha256sum -c $sumsfile");
|
||||
if($check) {
|
||||
print STDERR "sha256sum detected a problem\n";
|
||||
$error++;
|
||||
}
|
||||
|
||||
exit $error;
|
25
deps/curl/.github/scripts/binarycheck.sums
vendored
Normal file
25
deps/curl/.github/scripts/binarycheck.sums
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
# SPDX-License-Identifier: curl
|
||||
339d83446859f914867398046270d40b6ca7538c0adfef45eb62c8a16abb6a51 ./tests/certs/EdelCurlRoot-ca.der
|
||||
c819fdeb4a6d27dde78895c2f3ed6467a31b332e72781e4ce6e11400bae9df3c ./tests/certs/Server-localhost-firstSAN-sv.der
|
||||
f95d6b18fa02a0e2d98ed851cfa2f0b4b57d67fe8676ce4b1f78fc294ac22307 ./tests/certs/Server-localhost-firstSAN-sv.pub.der
|
||||
3520cdc749d32bbe93276be4d8f714e24b5b882284566966f28361f1cb8a4d1c ./tests/certs/Server-localhost-lastSAN-sv.der
|
||||
d623be406f9c02b28b2f2a376b3d8e06ed25335b7cbf96cb2c8de9357a09250d ./tests/certs/Server-localhost-lastSAN-sv.pub.der
|
||||
d89d7ea295af4baa5f57304c69570b4a71f2dd4f9fe06350ab50041287b6910a ./tests/certs/Server-localhost-sv.der
|
||||
0005032e4e1cf7cc5c1540ef03d8bf32703d1ee3b4dc83e2d79afe0b1f4e5e77 ./tests/certs/Server-localhost-sv.pub.der
|
||||
5b22627a94c67159a18203ab5cd96b739188188cec61e73a444b2290e14d3d82 ./tests/certs/Server-localhost.nn-sv.der
|
||||
611cbce062c9c6924119d7498e19eacdee4326190e516cad9c212a4b4bb49930 ./tests/certs/Server-localhost.nn-sv.pub.der
|
||||
6eb66ef346068b4d9bbcc7c79244c48d3a4877f08618ff379b40ae02e067ba09 ./tests/certs/Server-localhost0h-sv.der
|
||||
b967734c9bfe3d7a1a7795f348f0bce4d9ba15ca9590697ef2d4d15b92822db0 ./tests/certs/Server-localhost0h-sv.pub.der
|
||||
6605cac758b09a954b12c2970c7d7a00f92658fc3ced250b281ae066e3ea6a73 ./tests/certs/stunnel-sv.der
|
||||
2e9634d7d8387fbffd1fe43e030746610b2fc088f627333a9b58e5cb224ad6ba ./tests/certs/stunnel-sv.pub.der
|
||||
9e38c1fb0a151c4e23c8abddc44711c12afb3161c6b2a1c68e1bb2b0a4484e3b ./tests/data/test1425
|
||||
26ee981dcb84b6a2adce601084b78e6b787b54a2a997549582a8bd42087ab51b ./tests/data/test1426
|
||||
d640923e45809a3fe277e0af90459d82d32603aacc7b8db88754fcb335bf98df ./tests/data/test1531
|
||||
6f51bc318104fb5fe4b6013fc4e8e1c3c8dec1819202e8ea025bdbc4bbc8c02d ./tests/data/test1938
|
||||
28a957ec3397881bbafd0d97879cedfd475bcd1ece903e531576affd7aa3865c ./tests/data/test2080
|
||||
db99126801fd5e7cb0c1ec1a0078e5599038c8c07073f3d62ed51f155e0e3d38 ./tests/data/test262
|
||||
2d073a52984bab1f196d80464ea8ab6dafd887bd5fee9ed58603f8510df0c6a5 ./tests/data/test35
|
||||
4cc9fd6f31d0bb4dcb38e1565796e7ec5e48ea5ac9d3c1101de576be618786ba ./tests/data/test463
|
||||
d655a29dcf2423b420b508c9e381b0fad0b88feb74caa8978725e22c9f7c374d ./tests/data/test467
|
||||
8644ccf85e552755bf65faf2991d84f19523919379ec2cf195841a4cabe1507b ./tests/data/test545
|
4
deps/curl/.github/scripts/cleancmd.pl
vendored
4
deps/curl/.github/scripts/cleancmd.pl
vendored
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/perl
|
||||
#!/usr/bin/env perl
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
# Input: a cmdline docs markdown, it gets modfied *in place*
|
||||
# Input: a cmdline docs markdown, it gets modified *in place*
|
||||
#
|
||||
# The main purpose is to strip off the leading meta-data part, but also to
|
||||
# clean up whatever else the spell checker might have a problem with that we
|
||||
|
2
deps/curl/.github/scripts/cleanspell.pl
vendored
2
deps/curl/.github/scripts/cleanspell.pl
vendored
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/perl
|
||||
#!/usr/bin/env perl
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
@ -37,19 +37,28 @@ my %remove = (
|
||||
'#define _FILE_OFFSET_BITS 64' => 1,
|
||||
'#define CURL_EXTERN_SYMBOL' => 1,
|
||||
'#define CURL_SA_FAMILY_T sa_family_t' => 1,
|
||||
'#define CURL_SA_FAMILY_T ADDRESS_FAMILY' => 1,
|
||||
'#define HAVE_ADDRESS_FAMILY 1' => 1,
|
||||
'#define GETHOSTNAME_TYPE_ARG2 size_t' => 1,
|
||||
'#define GETHOSTNAME_TYPE_ARG2 int' => 1,
|
||||
'#define HAVE_BROTLI 1' => 1,
|
||||
'#define HAVE_BROTLI_DECODE_H 1' => 1,
|
||||
'#define HAVE_DECL_GETPWUID_R 1' => 1,
|
||||
'#define HAVE_DECL_GETPWUID_R 0' => 1,
|
||||
'#define HAVE_DECL_GETPWUID_R_MISSING 1' => 1,
|
||||
'#define HAVE_DLFCN_H 1' => 1,
|
||||
'#define HAVE_GETHOSTBYNAME 1' => 1,
|
||||
'#define HAVE_GSSAPI_GSSAPI_KRB5_H 1' => 1,
|
||||
'#define HAVE_INTTYPES_H 1' => 1,
|
||||
'#define HAVE_IOCTL 1' => 1,
|
||||
'#define HAVE_LDAP_H 1' => 1,
|
||||
'#define HAVE_LDAP_SSL 1' => 1,
|
||||
'#define HAVE_LIBBROTLIDEC 1' => 1,
|
||||
'#define HAVE_LIBSOCKET 1' => 1,
|
||||
'#define HAVE_LIBSSH2 1' => 1,
|
||||
'#define HAVE_LIBSSL 1' => 1,
|
||||
'#define HAVE_LIBZSTD 1' => 1,
|
||||
'#define HAVE_OPENSSL3 1' => 1,
|
||||
'#define HAVE_NGHTTP2_NGHTTP2_H 1' => 1,
|
||||
'#define HAVE_OPENSSL_CRYPTO_H 1' => 1,
|
||||
'#define HAVE_OPENSSL_ERR_H 1' => 1,
|
||||
'#define HAVE_OPENSSL_PEM_H 1' => 1,
|
||||
@ -66,8 +75,9 @@ my %remove = (
|
||||
'#define HAVE_ZSTD 1' => 1,
|
||||
'#define HAVE_ZSTD_H 1' => 1,
|
||||
'#define LT_OBJDIR ".libs/"' => 1,
|
||||
'#define OS "Linux"' => 1,
|
||||
'#define OS "x86_64-pc-linux-gnu"' => 1,
|
||||
'#define NEED_LBER_H 1' => 1,
|
||||
'#define CURL_OS "Linux"' => 1,
|
||||
'#define CURL_OS "x86_64-pc-linux-gnu"' => 1,
|
||||
'#define PACKAGE "curl"' => 1,
|
||||
'#define PACKAGE_BUGREPORT "a suitable curl mailing list: https://curl.se/mail/"' => 1,
|
||||
'#define PACKAGE_NAME "curl"' => 1,
|
||||
@ -76,7 +86,6 @@ my %remove = (
|
||||
'#define PACKAGE_URL ""' => 1,
|
||||
'#define PACKAGE_VERSION "-"' => 1,
|
||||
'#define SIZEOF_LONG_LONG 8' => 1,
|
||||
'#define USE_MANUAL 1' => 1,
|
||||
'#define VERSION "-"' => 1,
|
||||
);
|
||||
|
49
deps/curl/.github/scripts/cmp-pkg-config.sh
vendored
Normal file
49
deps/curl/.github/scripts/cmp-pkg-config.sh
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
# Sort list of libs, libpaths, cflags found in libcurl.pc and curl-config files,
|
||||
# then diff the autotools and cmake generated ones.
|
||||
|
||||
sort_lists() {
|
||||
prevline=''
|
||||
section=''
|
||||
while IFS= read -r l; do
|
||||
if [[ "${prevline}" =~ (--cc|--configure) ]]; then # curl-config
|
||||
echo "<IGNORED>"
|
||||
else
|
||||
# libcurl.pc
|
||||
if [[ "${l}" =~ ^(Requires|Libs|Cflags)(\.private)?:\ (.+)$ ]]; then
|
||||
if [ "${BASH_REMATCH[1]}" = 'Requires' ]; then
|
||||
# Spec does not allow duplicates here:
|
||||
# https://manpages.debian.org/unstable/pkg-config/pkg-config.1.en.html#Requires:
|
||||
# "You may only mention the same package one time on the Requires: line"
|
||||
val="$(printf '%s' "${BASH_REMATCH[3]}" | tr ',' '\n' | sort | tr '\n' ' ')"
|
||||
else
|
||||
val="$(printf '%s' "${BASH_REMATCH[3]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')"
|
||||
fi
|
||||
l="${BASH_REMATCH[1]}${BASH_REMATCH[2]}: ${val}"
|
||||
# curl-config
|
||||
elif [[ "${section}" =~ (--libs|--static-libs) && "${l}" =~ ^( *echo\ \")(.+)(\")$ ]]; then
|
||||
val="$(printf '%s' "${BASH_REMATCH[2]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')"
|
||||
l="${BASH_REMATCH[1]}${val}${BASH_REMATCH[3]}"
|
||||
section=''
|
||||
fi
|
||||
echo "${l}"
|
||||
fi
|
||||
# curl-config
|
||||
prevline="${l}"
|
||||
if [[ "${l}" =~ --[a-z-]+\) ]]; then
|
||||
section="${BASH_REMATCH[0]}"
|
||||
fi
|
||||
done < "$1"
|
||||
}
|
||||
|
||||
am=$(mktemp -t autotools.XXX); sort_lists "$1" > "${am}"
|
||||
cm=$(mktemp -t cmake.XXX) ; sort_lists "$2" > "${cm}"
|
||||
diff -u "${am}" "${cm}"
|
||||
res="$?"
|
||||
rm -r -f "${am}" "${cm}"
|
||||
|
||||
exit "${res}"
|
@ -13,3 +13,4 @@ inout
|
||||
msdos
|
||||
ba
|
||||
fo
|
||||
ede
|
||||
|
58
deps/curl/.github/scripts/distfiles.sh
vendored
Normal file
58
deps/curl/.github/scripts/distfiles.sh
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
# Compare git repo files with tarball files and report a mismatch
|
||||
# after excluding exceptions.
|
||||
|
||||
set -eu
|
||||
|
||||
gitonly=".git*
|
||||
^.*
|
||||
^appveyor.*
|
||||
^buildconf
|
||||
^GIT-INFO.md
|
||||
^README.md
|
||||
^renovate.json
|
||||
^REUSE.toml
|
||||
^SECURITY.md
|
||||
^LICENSES/*
|
||||
^docs/examples/adddocsref.pl
|
||||
^docs/THANKS-filter
|
||||
^projects/Windows/*
|
||||
^scripts/ciconfig.pl
|
||||
^scripts/cijobs.pl
|
||||
^scripts/contributors.sh
|
||||
^scripts/contrithanks.sh
|
||||
^scripts/delta
|
||||
^scripts/installcheck.sh
|
||||
^scripts/release-notes.pl
|
||||
^scripts/singleuse.pl
|
||||
^src/tool_hugehelp.c.cvs
|
||||
^tests/CI.md"
|
||||
|
||||
tarfiles="$(mktemp)"
|
||||
gitfiles="$(mktemp)"
|
||||
|
||||
tar -tf "$1" \
|
||||
| sed -E 's|^[^/]+/||g' \
|
||||
| grep -v -E '(/|^)$' \
|
||||
| sort > "${tarfiles}"
|
||||
|
||||
git -C "${2:-.}" ls-files \
|
||||
| grep -v -E "($(printf '%s' "${gitonly}" | tr $'\n' '|' | sed -e 's|\.|\\.|g' -e 's|\*|.+|g'))$" \
|
||||
| sort > "${gitfiles}"
|
||||
|
||||
dif="$(diff -u "${tarfiles}" "${gitfiles}" | tail -n +3 || true)"
|
||||
|
||||
rm -rf "${tarfiles:?}" "${gitfiles:?}"
|
||||
|
||||
echo 'Only in tarball:'
|
||||
echo "${dif}" | grep '^-' || true
|
||||
echo
|
||||
|
||||
echo 'Missing from tarball:'
|
||||
if echo "${dif}" | grep '^+'; then
|
||||
exit 1
|
||||
fi
|
10
deps/curl/.github/scripts/shellcheck.sh
vendored
Normal file
10
deps/curl/.github/scripts/shellcheck.sh
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
shellcheck --version
|
||||
# shellcheck disable=SC2046
|
||||
shellcheck --exclude=1091 \
|
||||
--enable=avoid-nullary-conditions,deprecate-which \
|
||||
$(grep -l -E '^#!(/usr/bin/env bash|/bin/sh|/bin/bash)' $(git ls-files))
|
153
deps/curl/.github/scripts/spacecheck.pl
vendored
Normal file
153
deps/curl/.github/scripts/spacecheck.pl
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env perl
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my @tabs = (
|
||||
"^m4/zz40-xc-ovr.m4",
|
||||
"Makefile\\.[a-z]+\$",
|
||||
"/mkfile",
|
||||
"\\.(bat|sln|vc)\$",
|
||||
"^tests/certs/.+\\.der\$",
|
||||
"^tests/data/test",
|
||||
);
|
||||
|
||||
my @mixed_eol = (
|
||||
"^tests/certs/.+\\.(crt|der)\$",
|
||||
"^tests/certs/Server-localhost0h-sv.pem",
|
||||
"^tests/data/test",
|
||||
);
|
||||
|
||||
my @need_crlf = (
|
||||
"\\.(bat|sln)\$",
|
||||
"^winbuild/.+\\.md\$",
|
||||
);
|
||||
|
||||
my @space_at_eol = (
|
||||
"^tests/.+\\.(cacert|crt|pem)\$",
|
||||
"^tests/data/test",
|
||||
);
|
||||
|
||||
my @eol_at_eof = (
|
||||
"^tests/certs/.+\\.der\$",
|
||||
);
|
||||
|
||||
sub fn_match {
|
||||
my ($filename, @masklist) = @_;
|
||||
|
||||
foreach my $mask (@masklist) {
|
||||
if ($filename =~ $mask) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub eol_detect {
|
||||
my ($content) = @_;
|
||||
|
||||
my $cr = () = $content =~ /\r/g;
|
||||
my $lf = () = $content =~ /\n/g;
|
||||
|
||||
if ($cr > 0 && $lf == 0) {
|
||||
return "cr"
|
||||
}
|
||||
elsif ($cr == 0 && $lf > 0) {
|
||||
return "lf"
|
||||
}
|
||||
elsif ($cr == 0 && $lf == 0) {
|
||||
return "bin"
|
||||
}
|
||||
elsif ($cr == $lf) {
|
||||
return "crlf"
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
my $issues = 0;
|
||||
|
||||
open my $git_ls_files, '-|', 'git ls-files' or die "Failed running git ls-files: $!";
|
||||
while (my $filename = <$git_ls_files>) {
|
||||
chomp $filename;
|
||||
|
||||
open my $fh, '<', $filename or die "Cannot open '$filename': $!";
|
||||
my $content = do { local $/; <$fh> };
|
||||
close $fh;
|
||||
|
||||
my @err = ();
|
||||
|
||||
if (!fn_match($filename, @tabs) &&
|
||||
$content =~ /\t/) {
|
||||
push @err, "content: has tab";
|
||||
}
|
||||
|
||||
my $eol = eol_detect($content);
|
||||
|
||||
if ($eol eq "" &&
|
||||
!fn_match($filename, @mixed_eol)) {
|
||||
push @err, "content: has mixed EOL types";
|
||||
}
|
||||
|
||||
if ($eol ne "crlf" &&
|
||||
fn_match($filename, @need_crlf)) {
|
||||
push @err, "content: must use CRLF EOL for this file type";
|
||||
}
|
||||
|
||||
if ($eol ne "lf" && $content ne "" &&
|
||||
!fn_match($filename, @need_crlf) &&
|
||||
!fn_match($filename, @mixed_eol)) {
|
||||
push @err, "content: must use LF EOL for this file type";
|
||||
}
|
||||
|
||||
if (!fn_match($filename, @space_at_eol) &&
|
||||
$content =~ /[ \t]\n/) {
|
||||
push @err, "content: has line-ending whitespace";
|
||||
}
|
||||
|
||||
if ($content ne "" &&
|
||||
!fn_match($filename, @eol_at_eof) &&
|
||||
$content !~ /\n\z/) {
|
||||
push @err, "content: has no EOL at EOF";
|
||||
}
|
||||
|
||||
if ($content =~ /\n\n\z/ ||
|
||||
$content =~ /\r\n\r\n\z/) {
|
||||
push @err, "content: has multiple EOL at EOF";
|
||||
}
|
||||
|
||||
if (@err) {
|
||||
$issues++;
|
||||
foreach my $err (@err) {
|
||||
print "$filename: $err\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
close $git_ls_files;
|
||||
|
||||
if ($issues) {
|
||||
exit 1;
|
||||
}
|
64
deps/curl/.github/scripts/spellcheck.words
vendored
64
deps/curl/.github/scripts/spellcheck.words
vendored
@ -2,6 +2,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
AAAA
|
||||
ABI
|
||||
accessor
|
||||
ACK
|
||||
@ -10,6 +11,7 @@ AIA
|
||||
AIX
|
||||
al
|
||||
Alessandro
|
||||
aliasMode
|
||||
allocator
|
||||
alnum
|
||||
ALPN
|
||||
@ -31,7 +33,6 @@ archivers
|
||||
Archos
|
||||
Arntsen
|
||||
Aros
|
||||
ascii
|
||||
asynch
|
||||
AsynchDNS
|
||||
atime
|
||||
@ -42,6 +43,7 @@ Autoconf
|
||||
autoconf
|
||||
Automake
|
||||
automake
|
||||
autoreconf
|
||||
Autotools
|
||||
autotools
|
||||
AVR
|
||||
@ -67,7 +69,6 @@ Bjørn
|
||||
bool
|
||||
boolean
|
||||
BoringSSL
|
||||
boringssl
|
||||
Boukris
|
||||
Broadcom
|
||||
brotli
|
||||
@ -77,7 +78,6 @@ bugfix
|
||||
bugfixes
|
||||
buildable
|
||||
buildbot
|
||||
buildconf
|
||||
Caddy
|
||||
calloc
|
||||
CAPA
|
||||
@ -109,6 +109,7 @@ CLA
|
||||
CLAs
|
||||
cleartext
|
||||
CLI
|
||||
ClientHello
|
||||
clientp
|
||||
cliget
|
||||
closesocket
|
||||
@ -117,11 +118,15 @@ cmake
|
||||
CMake's
|
||||
cmake's
|
||||
CMakeLists
|
||||
CNA
|
||||
CNAME
|
||||
CNAMEs
|
||||
CodeQL
|
||||
codeql
|
||||
CODESET
|
||||
codeset
|
||||
Comcast
|
||||
commit's
|
||||
Config
|
||||
config
|
||||
conncache
|
||||
@ -132,6 +137,7 @@ CPUs
|
||||
CR
|
||||
CRL
|
||||
CRLF
|
||||
crontab
|
||||
crt
|
||||
crypto
|
||||
cryptographic
|
||||
@ -145,6 +151,7 @@ cURL
|
||||
CURLcode
|
||||
curldown
|
||||
CURLE
|
||||
CURLECH
|
||||
CURLH
|
||||
curlimages
|
||||
CURLINFO
|
||||
@ -163,9 +170,12 @@ dbg
|
||||
Debian
|
||||
DEBUGBUILD
|
||||
decrypt
|
||||
decrypting
|
||||
deepcode
|
||||
DELE
|
||||
DER
|
||||
dereference
|
||||
dereferences
|
||||
deselectable
|
||||
deserialization
|
||||
Deserialized
|
||||
@ -189,6 +199,7 @@ DNS
|
||||
dns
|
||||
dnsop
|
||||
DoH
|
||||
DoT
|
||||
doxygen
|
||||
drftpd
|
||||
dsa
|
||||
@ -200,8 +211,13 @@ EBCDIC
|
||||
ECC
|
||||
ECDHE
|
||||
ECH
|
||||
ECHConfig
|
||||
ECHConfigList
|
||||
ecl
|
||||
ECONNREFUSED
|
||||
eCOS
|
||||
ECT
|
||||
EF
|
||||
EFnet
|
||||
EGD
|
||||
EHLO
|
||||
@ -277,12 +293,13 @@ globbed
|
||||
globbing
|
||||
gmail
|
||||
GnuTLS
|
||||
gnutls
|
||||
Golemon
|
||||
GOST
|
||||
GPG
|
||||
GPL
|
||||
GPLed
|
||||
GREASE
|
||||
GREASEing
|
||||
Greear
|
||||
groff
|
||||
gsasl
|
||||
@ -306,6 +323,7 @@ Hards
|
||||
Haxx
|
||||
haxx
|
||||
Heimdal
|
||||
HelloRetryRequest
|
||||
HELO
|
||||
HH
|
||||
HMAC
|
||||
@ -315,6 +333,7 @@ homebrew
|
||||
hostname
|
||||
hostnames
|
||||
Housley
|
||||
HRR
|
||||
Hruska
|
||||
HSTS
|
||||
hsts
|
||||
@ -342,9 +361,10 @@ ifdef
|
||||
ifdefed
|
||||
Ifdefs
|
||||
ifdefs
|
||||
ifhost
|
||||
IIS
|
||||
ILE
|
||||
Illumos
|
||||
illumos
|
||||
IMAP
|
||||
imap
|
||||
IMAPS
|
||||
@ -420,11 +440,9 @@ libpsl
|
||||
Libre
|
||||
libre
|
||||
LibreSSL
|
||||
libressl
|
||||
librtmp
|
||||
libs
|
||||
libssh
|
||||
libSSH
|
||||
libssh2
|
||||
Libtool
|
||||
libtool
|
||||
@ -434,12 +452,15 @@ libz
|
||||
libzstd
|
||||
LineageOS
|
||||
linux
|
||||
lldb
|
||||
ln
|
||||
localhost
|
||||
LOGDIR
|
||||
logfile
|
||||
lookups
|
||||
loopback
|
||||
LOWCOST
|
||||
LOWDELAY
|
||||
LPRT
|
||||
LSB
|
||||
lseek
|
||||
@ -459,6 +480,7 @@ Marek
|
||||
Mavrogiannopoulos
|
||||
Mbed
|
||||
mbedTLS
|
||||
md
|
||||
Meglio
|
||||
memdebug
|
||||
MesaLink
|
||||
@ -469,6 +491,8 @@ Michal
|
||||
Micrium
|
||||
MicroBlaze
|
||||
MicroOS
|
||||
middlebox
|
||||
MINCOST
|
||||
mingw
|
||||
MinGW
|
||||
MINIX
|
||||
@ -485,6 +509,7 @@ MorphOS
|
||||
MPE
|
||||
MPL
|
||||
mprintf
|
||||
MPTCP
|
||||
MQTT
|
||||
mqtt
|
||||
mqtts
|
||||
@ -504,6 +529,7 @@ mTLS
|
||||
MUA
|
||||
multicwd
|
||||
multiparts
|
||||
multipath
|
||||
MultiSSL
|
||||
mumbo
|
||||
musedev
|
||||
@ -589,6 +615,7 @@ pkcs
|
||||
PKGBUILD
|
||||
PKI
|
||||
pluggable
|
||||
pn
|
||||
PolarSSL
|
||||
Polhem
|
||||
pollset
|
||||
@ -624,6 +651,7 @@ py
|
||||
pycurl
|
||||
pytest
|
||||
Pytest
|
||||
qname
|
||||
QNX
|
||||
QoS
|
||||
Qubes
|
||||
@ -638,6 +666,7 @@ ReactOS
|
||||
README
|
||||
realloc
|
||||
Realtime
|
||||
rebalances
|
||||
rebase
|
||||
RECV
|
||||
recv
|
||||
@ -659,7 +688,6 @@ RETR
|
||||
retransmit
|
||||
retrigger
|
||||
RHEL
|
||||
RICS
|
||||
Rikard
|
||||
rmdir
|
||||
ROADMAP
|
||||
@ -667,9 +695,13 @@ Roadmap
|
||||
Rockbox
|
||||
roffit
|
||||
RPG
|
||||
RR
|
||||
RRs
|
||||
RRtype
|
||||
RSA
|
||||
RTMP
|
||||
rtmp
|
||||
rtmpdump
|
||||
RTMPE
|
||||
RTMPS
|
||||
RTMPT
|
||||
@ -684,6 +716,7 @@ runtests
|
||||
runtime
|
||||
Ruslan
|
||||
rustc
|
||||
Rustls
|
||||
rustls
|
||||
Sagula
|
||||
SanDisk
|
||||
@ -735,6 +768,7 @@ SOCKOPT
|
||||
SOCKSv
|
||||
Solaris
|
||||
SONAME
|
||||
SOVERSION
|
||||
Soref
|
||||
SPARC
|
||||
SPDX
|
||||
@ -762,6 +796,7 @@ stdin
|
||||
stdout
|
||||
Steinar
|
||||
Stenberg
|
||||
STLS
|
||||
STOR
|
||||
strcat
|
||||
strcpy
|
||||
@ -783,6 +818,7 @@ SunSSH
|
||||
superset
|
||||
svc
|
||||
svcb
|
||||
SVCB
|
||||
Svyatoslav
|
||||
Swisscom
|
||||
sws
|
||||
@ -798,6 +834,7 @@ TCP
|
||||
tcpdump
|
||||
Tekniska
|
||||
testability
|
||||
testcurl
|
||||
TFTP
|
||||
tftp
|
||||
threadsafe
|
||||
@ -811,10 +848,12 @@ toolchain
|
||||
toolchains
|
||||
toolset
|
||||
toplevel
|
||||
TOS
|
||||
TPF
|
||||
TrackMemory
|
||||
transcode
|
||||
Tru
|
||||
trurl
|
||||
trustless
|
||||
Tse
|
||||
Tsujikawa
|
||||
@ -840,7 +879,6 @@ unescape
|
||||
Unglobbed
|
||||
Unicode
|
||||
UNICOS
|
||||
unix
|
||||
UnixSockets
|
||||
UnixWare
|
||||
unlink
|
||||
@ -852,6 +890,7 @@ unsanitized
|
||||
Unshare
|
||||
unsharing
|
||||
untrusted
|
||||
unwrite
|
||||
UPN
|
||||
upstreaming
|
||||
URI
|
||||
@ -874,6 +913,7 @@ VC
|
||||
vcpkg
|
||||
vexxhost
|
||||
Viktor
|
||||
VLAN
|
||||
VM
|
||||
VMS
|
||||
VMware
|
||||
@ -881,6 +921,7 @@ vnd
|
||||
VRF
|
||||
VRFY
|
||||
VSE
|
||||
vsftpd
|
||||
vsprintf
|
||||
vt
|
||||
vtls
|
||||
@ -890,6 +931,7 @@ Warta
|
||||
watchOS
|
||||
WAV
|
||||
WB
|
||||
wcurl
|
||||
web page
|
||||
WebDAV
|
||||
WebOS
|
||||
@ -900,14 +942,10 @@ WHATWG
|
||||
whitespace
|
||||
Whitespaces
|
||||
winbind
|
||||
WinBind
|
||||
winbuild
|
||||
winidn
|
||||
WinIDN
|
||||
WinLDAP
|
||||
WinSock
|
||||
winsock
|
||||
WinSSL
|
||||
winssl
|
||||
Wireshark
|
||||
wolfSSH
|
||||
|
2
deps/curl/.github/scripts/spellcheck.yaml
vendored
2
deps/curl/.github/scripts/spellcheck.yaml
vendored
@ -29,4 +29,4 @@ matrix:
|
||||
- 'strong'
|
||||
- 'em'
|
||||
sources:
|
||||
- '**/*.md|!docs/BINDINGS.md'
|
||||
- '**/*.md|!docs/BINDINGS.md|!docs/DISTROS.md|!docs/CIPHERS-TLS12.md'
|
||||
|
41
deps/curl/.github/scripts/trimmarkdownheader.pl
vendored
Normal file
41
deps/curl/.github/scripts/trimmarkdownheader.pl
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env perl
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
# Given: a libcurl curldown man page
|
||||
# Outputs: the same file, minus the header
|
||||
#
|
||||
|
||||
my $f = $ARGV[0];
|
||||
|
||||
open(F, "<$f") or die;
|
||||
|
||||
my @out;
|
||||
my $line = 0;
|
||||
my $hideheader = 0;
|
||||
|
||||
while(<F>) {
|
||||
if($hideheader) {
|
||||
if(/^---/) {
|
||||
# end if hiding
|
||||
$hideheader = 0;
|
||||
}
|
||||
push @out, "\n"; # replace with blank
|
||||
next;
|
||||
}
|
||||
elsif(!$line++ && /^---/) {
|
||||
# starts with a header, strip off the header
|
||||
$hideheader = 1;
|
||||
push @out, "\n"; # replace with blank
|
||||
next;
|
||||
}
|
||||
push @out, $_;
|
||||
}
|
||||
close(F);
|
||||
|
||||
open(O, ">$f") or die;
|
||||
for my $l (@out) {
|
||||
print O $l;
|
||||
}
|
||||
close(O);
|
14
deps/curl/.github/scripts/verify-synopsis.pl
vendored
14
deps/curl/.github/scripts/verify-synopsis.pl
vendored
@ -46,17 +46,17 @@ sub extract {
|
||||
open(O, ">$cfile");
|
||||
while(<F>) {
|
||||
$iline++;
|
||||
if(/^.SH SYNOPSIS/) {
|
||||
if(/^# SYNOPSIS/) {
|
||||
$syn = 1
|
||||
}
|
||||
elsif($syn == 1) {
|
||||
if(/^.nf/) {
|
||||
if(/^\~\~\~/) {
|
||||
$syn++;
|
||||
print O "#line $iline \"$f\"\n";
|
||||
}
|
||||
}
|
||||
elsif($syn == 2) {
|
||||
if(/^.fi/) {
|
||||
if(/^\~\~\~/) {
|
||||
last;
|
||||
}
|
||||
# turn the vararg argument into vararg
|
||||
@ -68,13 +68,17 @@ sub extract {
|
||||
close(F);
|
||||
close(O);
|
||||
|
||||
if($syn < 2) {
|
||||
print STDERR "Found no synopsis in $f\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
my $error;
|
||||
for my $m (@files) {
|
||||
print "Verify $m\n";
|
||||
extract($m);
|
||||
$error |= extract($m);
|
||||
$error |= testcompile($m);
|
||||
}
|
||||
exit $error;
|
||||
|
13
deps/curl/.github/scripts/yamlcheck.sh
vendored
Normal file
13
deps/curl/.github/scripts/yamlcheck.sh
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
set -eu
|
||||
|
||||
# shellcheck disable=SC2046
|
||||
yamllint \
|
||||
--format standard \
|
||||
--strict \
|
||||
--config-data "$(dirname "$0")/yamlcheck.yaml" \
|
||||
$(git ls-files '*.yaml' '*.yml')
|
17
deps/curl/.github/scripts/yamlcheck.yaml
vendored
Normal file
17
deps/curl/.github/scripts/yamlcheck.yaml
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
# Docs: https://yamllint.readthedocs.io/en/stable/configuration.html
|
||||
|
||||
extends: default
|
||||
|
||||
rules:
|
||||
line-length:
|
||||
max: 500
|
||||
level: warning
|
||||
|
||||
braces: disable
|
||||
commas: disable
|
||||
comments: disable
|
||||
document-start: disable
|
@ -4,7 +4,7 @@
|
||||
|
||||
name: AppVeyor Status Report
|
||||
|
||||
on:
|
||||
'on':
|
||||
status
|
||||
|
||||
concurrency:
|
||||
|
152
deps/curl/.github/workflows/awslc.yml
vendored
152
deps/curl/.github/workflows/awslc.yml
vendored
@ -1,152 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Linux AWS-LC
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
group: awslc-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 3
|
||||
awslc-version: 1.13.0
|
||||
|
||||
jobs:
|
||||
autoconf:
|
||||
name: awslc (autoconf)
|
||||
runs-on: 'ubuntu-latest'
|
||||
timeout-minutes: 30
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update --yes
|
||||
sudo apt-get install --yes libtool autoconf automake pkg-config stunnel4 libpsl-dev
|
||||
# ensure we don't pick up openssl in this build
|
||||
sudo apt remove --yes libssl-dev
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- name: cache awslc
|
||||
uses: actions/cache@v4
|
||||
id: cache-awslc
|
||||
env:
|
||||
cache-name: cache-awslc
|
||||
with:
|
||||
path: /home/runner/awslc
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }}
|
||||
|
||||
- name: build awslc
|
||||
if: steps.cache-awslc.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \
|
||||
https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz
|
||||
tar xzf v${{ env.awslc-version }}.tar.gz
|
||||
mkdir aws-lc-${{ env.awslc-version }}-build
|
||||
cd aws-lc-${{ env.awslc-version }}-build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }}
|
||||
cmake --build . --parallel
|
||||
cmake --install .
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: |
|
||||
mkdir build
|
||||
cd build
|
||||
../configure --enable-warnings --enable-werror --with-openssl=$HOME/awslc
|
||||
cd ..
|
||||
name: 'configure out-of-tree'
|
||||
|
||||
- run: make -C build V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make -C build V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make -C build V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make -C build V=1 test-ci
|
||||
name: 'run tests'
|
||||
|
||||
cmake:
|
||||
name: awslc (cmake)
|
||||
runs-on: 'ubuntu-latest'
|
||||
timeout-minutes: 15
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install cmake stunnel4
|
||||
# ensure we don't pick up openssl in this build
|
||||
sudo apt remove --yes libssl-dev
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- name: cache awslc
|
||||
uses: actions/cache@v4
|
||||
id: cache-awslc
|
||||
env:
|
||||
cache-name: cache-awslc
|
||||
with:
|
||||
path: /home/runner/awslc
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }}
|
||||
|
||||
- name: build awslc
|
||||
if: steps.cache-awslc.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \
|
||||
https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz
|
||||
tar xzf v${{ env.awslc-version }}.tar.gz
|
||||
mkdir aws-lc-${{ env.awslc-version }}-build
|
||||
cd aws-lc-${{ env.awslc-version }}-build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }}
|
||||
cmake --build . --parallel
|
||||
cmake --install .
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# CMAKE_COMPILE_WARNING_AS_ERROR is available in cmake 3.24 or later
|
||||
- run: cmake -Bbuild -DOPENSSL_ROOT_DIR=$HOME/awslc -DBUILD_SHARED_LIBS=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON .
|
||||
name: 'cmake generate out-of-tree'
|
||||
|
||||
- run: cmake --build build --parallel
|
||||
name: 'cmake build'
|
||||
|
||||
- run: cmake --install build --prefix $HOME/curl --strip
|
||||
name: 'cmake install'
|
27
deps/curl/.github/workflows/badwords.yml
vendored
27
deps/curl/.github/workflows/badwords.yml
vendored
@ -1,27 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: badwords
|
||||
|
||||
on:
|
||||
# Trigger the workflow on push or pull requests, but only for the
|
||||
# master branch
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
check:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: check
|
||||
run: ./.github/scripts/badwords.pl < .github/scripts/badwords.txt docs/*.md docs/libcurl/*.md docs/libcurl/opts/*.md docs/cmdline-opts/*.md
|
159
deps/curl/.github/workflows/checkdocs.yml
vendored
Normal file
159
deps/curl/.github/workflows/checkdocs.yml
vendored
Normal file
@ -0,0 +1,159 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
# This workflow contains tests that operate on documentation files only. Some
|
||||
# checks modify the source so they cannot be combined into a single job.
|
||||
|
||||
name: Docs
|
||||
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- '.github/workflows/checkdocs.yml'
|
||||
- '.github/scripts/**'
|
||||
- '**.md'
|
||||
- 'docs/*'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- '.github/workflows/checkdocs.yml'
|
||||
- '.github/scripts/**'
|
||||
- '**.md'
|
||||
- 'docs/*'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
# proselint:
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4
|
||||
# name: checkout
|
||||
#
|
||||
# - name: install prereqs
|
||||
# run: |
|
||||
# sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
|
||||
# sudo apt-get install -y --no-install-suggests --no-install-recommends \
|
||||
# python3-proselint
|
||||
#
|
||||
# # config file help: https://github.com/amperser/proselint/
|
||||
# - name: create proselint config
|
||||
# run: |
|
||||
# cat <<JSON > $HOME/.proselintrc.json
|
||||
# {
|
||||
# "checks": {
|
||||
# "typography.diacritical_marks": false,
|
||||
# "typography.symbols": false,
|
||||
# "annotations.misc": false,
|
||||
# "security.password": false,
|
||||
# "misc.annotations": false
|
||||
# }
|
||||
# }
|
||||
# JSON
|
||||
#
|
||||
# - name: trim headers off all *.md files
|
||||
# run: git ls-files -z '*.md' | xargs -0 -n1 .github/scripts/trimmarkdownheader.pl
|
||||
#
|
||||
# - name: check prose
|
||||
# run: git ls-files -z '*.md' | grep -Evz 'CHECKSRC.md|DISTROS.md|curl_mprintf.md|CURLOPT_INTERFACE.md|interface.md' | xargs -0 proselint README
|
||||
#
|
||||
# # This is for CHECKSRC and files with aggressive exclamation mark needs
|
||||
# - name: create second proselint config
|
||||
# run: |
|
||||
# cat <<JSON > $HOME/.proselintrc.json
|
||||
# {
|
||||
# "checks": {
|
||||
# "typography.diacritical_marks": false,
|
||||
# "typography.symbols": false,
|
||||
# "typography.exclamation": false,
|
||||
# "lexical_illusions.misc": false,
|
||||
# "annotations.misc": false
|
||||
# }
|
||||
# }
|
||||
# JSON
|
||||
#
|
||||
# - name: check special prose
|
||||
# run: proselint docs/internals/CHECKSRC.md docs/libcurl/curl_mprintf.md docs/libcurl/opts/CURLOPT_INTERFACE.md docs/cmdline-opts/interface.md
|
||||
|
||||
# Docs: https://github.com/marketplace/actions/markdown-link-check
|
||||
linkcheck:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: trim the cmdline docs markdown files
|
||||
run: find docs/cmdline-opts -name "*.md" ! -name "_*" ! -name MANPAGE.md -print0 | xargs -0 -n1 .github/scripts/cleancmd.pl
|
||||
|
||||
- uses: gaurav-nelson/github-action-markdown-link-check@5c5dfc0ac2e225883c0e5f03a85311ec2830d368 # v1
|
||||
with:
|
||||
use-quiet-mode: 'yes'
|
||||
|
||||
spellcheck:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: trim all man page *.md files
|
||||
run: find docs -name "*.md" ! -name "_*" -print0 | xargs -0 -n1 .github/scripts/cleancmd.pl
|
||||
|
||||
- name: trim libcurl man page *.md files
|
||||
run: find docs/libcurl \( -name "curl_*.md" -o -name "libcurl*.md" \) -print0 | xargs -0 -n1 .github/scripts/cleanspell.pl
|
||||
|
||||
- name: trim libcurl option man page *.md files
|
||||
run: find docs/libcurl/opts -name "CURL*.md" -print0 | xargs -0 -n1 .github/scripts/cleanspell.pl
|
||||
|
||||
- name: trim cmdline docs markdown _*.md files
|
||||
run: find docs/cmdline-opts -name "_*.md" -print0 | xargs -0 -n1 .github/scripts/cleancmd.pl --no-header
|
||||
|
||||
- name: setup the custom wordlist
|
||||
run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
|
||||
|
||||
- name: Check Spelling
|
||||
uses: rojopolis/spellcheck-github-actions@74c2a1451c617e7dd9532340b199e18d5411b168 # v0
|
||||
with:
|
||||
config_path: .github/scripts/spellcheck.yaml
|
||||
|
||||
badwords-synopsis:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: badwords
|
||||
run: .github/scripts/badwords.pl < .github/scripts/badwords.txt docs/*.md docs/libcurl/*.md docs/libcurl/opts/*.md docs/cmdline-opts/*.md docs/TODO docs/KNOWN_BUGS tests/*.md
|
||||
|
||||
- name: verify-synopsis
|
||||
run: .github/scripts/verify-synopsis.pl docs/libcurl/curl*.md
|
||||
|
||||
man-examples:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: render nroff versions
|
||||
run: autoreconf -fi && ./configure --without-ssl --without-libpsl && make -C docs
|
||||
|
||||
- name: verify examples
|
||||
run: .github/scripts/verify-examples.pl docs/libcurl/curl*.3 docs/libcurl/opts/*.3
|
||||
|
||||
miscchecks:
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: spacecheck
|
||||
run: .github/scripts/spacecheck.pl
|
110
deps/curl/.github/workflows/checksrc.yml
vendored
Normal file
110
deps/curl/.github/workflows/checksrc.yml
vendored
Normal file
@ -0,0 +1,110 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
# This workflow contains checks at the source code level only.
|
||||
|
||||
name: Source
|
||||
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'plan9/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'plan9/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
checksrc:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: check
|
||||
run: git ls-files -z "*.[ch]" | xargs -0 -n1 ./scripts/checksrc.pl
|
||||
|
||||
codespell-cmakelint-pytype-ruff:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: install
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
run: >-
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends
|
||||
codespell python3-pip python3-networkx python3-pydot python3-yaml
|
||||
python3-toml python3-markupsafe python3-jinja2 python3-tabulate
|
||||
python3-typing-extensions python3-libcst python3-impacket
|
||||
python3-websockets python3-pytest &&
|
||||
python3 -m pip install --break-system-packages cmakelint==1.4.3 pytype==2024.9.13 ruff==0.6.8
|
||||
|
||||
- name: spellcheck
|
||||
run: |
|
||||
codespell \
|
||||
--skip scripts/mk-ca-bundle.pl \
|
||||
--skip src/tool_hugehelp.c \
|
||||
-I .github/scripts/codespell-ignore.txt \
|
||||
CMake include m4 scripts src lib
|
||||
|
||||
- name: cmakelint
|
||||
run: scripts/cmakelint.sh
|
||||
|
||||
- name: pytype
|
||||
run: find . -name '*.py' -exec pytype -j auto -k {} +
|
||||
|
||||
- name: ruff
|
||||
run: ruff check --extend-select=B007,B016,C405,C416,COM818,D200,D213,D204,D401,D415,FURB129,N818,PERF401,PERF403,PIE790,PIE808,PLW0127,Q004,RUF010,SIM101,SIM117,SIM118,TRY400,TRY401
|
||||
|
||||
reuse:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@3ae3c6bdf1257ab19397fab11fd3312144692083 # v4
|
||||
|
||||
miscchecks:
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
name: checkout
|
||||
|
||||
- name: shellcheck
|
||||
run: .github/scripts/shellcheck.sh
|
||||
|
||||
- name: spacecheck
|
||||
run: .github/scripts/spacecheck.pl
|
||||
|
||||
- name: yamlcheck
|
||||
run: .github/scripts/yamlcheck.sh
|
||||
|
||||
- name: binarycheck
|
||||
run: .github/scripts/binarycheck.pl
|
||||
|
||||
# we allow some extra in source code
|
||||
- name: badwords
|
||||
run: |
|
||||
grep -Ev '(\\bwill| url | dir )' .github/scripts/badwords.txt | \
|
||||
.github/scripts/badwords.pl $(git ls-files -- src lib include)
|
14
deps/curl/.github/workflows/codeql-analysis.yml
vendored
14
deps/curl/.github/workflows/codeql-analysis.yml
vendored
@ -4,16 +4,14 @@
|
||||
|
||||
name: CodeQL
|
||||
|
||||
on:
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'docs/**'
|
||||
- 'packages/**'
|
||||
@ -26,9 +24,7 @@ on:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'docs/**'
|
||||
- 'packages/**'
|
||||
@ -51,11 +47,11 @@ jobs:
|
||||
security-events: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@662472033e021d55d94146f66f6058822b0b39fd # v3
|
||||
with:
|
||||
languages: cpp
|
||||
queries: security-extended
|
||||
@ -63,7 +59,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
uses: github/codeql-action/autobuild@662472033e021d55d94146f66f6058822b0b39fd # v3
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@ -77,4 +73,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@662472033e021d55d94146f66f6058822b0b39fd # v3
|
||||
|
36
deps/curl/.github/workflows/codespell.yml
vendored
36
deps/curl/.github/workflows/codespell.yml
vendored
@ -1,36 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Codespell
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- 'lib/**'
|
||||
- 'src/**'
|
||||
- 'include/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- 'lib/**'
|
||||
- 'src/**'
|
||||
- 'include/**'
|
||||
|
||||
jobs:
|
||||
codespell:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: install
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install codespell
|
||||
|
||||
- name: spellcheck
|
||||
run: codespell --skip src/tool_hugehelp.c -I .github/scripts/codespell-ignore.txt include src lib
|
111
deps/curl/.github/workflows/configure-vs-cmake.yml
vendored
111
deps/curl/.github/workflows/configure-vs-cmake.yml
vendored
@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: configure-vs-cmake
|
||||
on:
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
@ -12,7 +12,8 @@ on:
|
||||
- '**/*.m4'
|
||||
- '**/CMakeLists.txt'
|
||||
- 'lib/curl_config.h.cmake'
|
||||
- 'scripts/cmp-config.pl'
|
||||
- '.github/scripts/cmp-config.pl'
|
||||
- '.github/workflows/configure-vs-cmake.yml'
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
@ -22,24 +23,116 @@ on:
|
||||
- '**/*.m4'
|
||||
- '**/CMakeLists.txt'
|
||||
- 'lib/curl_config.h.cmake'
|
||||
- 'scripts/cmp-config.pl'
|
||||
- '.github/scripts/cmp-config.pl'
|
||||
- '.github/workflows/configure-vs-cmake.yml'
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
check:
|
||||
check-linux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: run configure --with-openssl
|
||||
run: |
|
||||
autoreconf -fi
|
||||
./configure --with-openssl --without-libpsl
|
||||
autoreconf -fi
|
||||
export PKG_CONFIG_DEBUG_SPEW=1
|
||||
mkdir bld-am && cd bld-am && ../configure --enable-static=no --with-openssl --without-libpsl --without-brotli --without-zstd
|
||||
|
||||
- name: run cmake
|
||||
run: |
|
||||
mkdir build && cd build && cmake ..
|
||||
cmake -B bld-cm -DCURL_USE_LIBPSL=OFF
|
||||
|
||||
- name: 'configure log'
|
||||
run: cat bld-am/config.log 2>/dev/null || true
|
||||
|
||||
- name: 'cmake log'
|
||||
run: cat bld-cm/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true
|
||||
|
||||
- name: compare generated curl_config.h files
|
||||
run: ./scripts/cmp-config.pl lib/curl_config.h build/lib/curl_config.h
|
||||
run: ./.github/scripts/cmp-config.pl bld-am/lib/curl_config.h bld-cm/lib/curl_config.h
|
||||
|
||||
- name: compare generated libcurl.pc files
|
||||
run: ./.github/scripts/cmp-pkg-config.sh bld-am/libcurl.pc bld-cm/libcurl.pc
|
||||
|
||||
- name: compare generated curl-config files
|
||||
run: ./.github/scripts/cmp-pkg-config.sh bld-am/curl-config bld-cm/curl-config
|
||||
|
||||
check-macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: install packages
|
||||
run: |
|
||||
while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew install libtool autoconf automake && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done
|
||||
|
||||
- name: 'toolchain versions'
|
||||
run: |
|
||||
echo '::group::brew packages installed'; ls -l "$(brew --prefix)/opt"; echo '::endgroup::'
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: run configure --with-openssl
|
||||
run: |
|
||||
autoreconf -fi
|
||||
export PKG_CONFIG_DEBUG_SPEW=1
|
||||
mkdir bld-am && cd bld-am && ../configure --enable-static=no --with-openssl --without-libpsl --disable-ldap
|
||||
|
||||
- name: run cmake
|
||||
run: |
|
||||
cmake -B bld-cm -DCURL_USE_LIBPSL=OFF -DCURL_DISABLE_LDAP=ON \
|
||||
"-DCMAKE_C_COMPILER_TARGET=$(uname -m | sed 's/arm64/aarch64/')-apple-darwin$(uname -r)" \
|
||||
-DCURL_USE_LIBSSH2=OFF
|
||||
|
||||
- name: 'configure log'
|
||||
run: cat bld-am/config.log 2>/dev/null || true
|
||||
|
||||
- name: 'cmake log'
|
||||
run: cat bld-cm/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true
|
||||
|
||||
- name: compare generated curl_config.h files
|
||||
run: ./.github/scripts/cmp-config.pl bld-am/lib/curl_config.h bld-cm/lib/curl_config.h
|
||||
|
||||
- name: compare generated libcurl.pc files
|
||||
run: ./.github/scripts/cmp-pkg-config.sh bld-am/libcurl.pc bld-cm/libcurl.pc
|
||||
|
||||
- name: compare generated curl-config files
|
||||
run: ./.github/scripts/cmp-pkg-config.sh bld-am/curl-config bld-cm/curl-config
|
||||
|
||||
check-windows:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TRIPLET: 'x86_64-w64-mingw32'
|
||||
steps:
|
||||
- name: install packages
|
||||
run: sudo apt-get --quiet 2 --option Dpkg::Use-Pty=0 install mingw-w64
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: run configure --with-schannel
|
||||
run: |
|
||||
autoreconf -fi
|
||||
export PKG_CONFIG_DEBUG_SPEW=1
|
||||
mkdir bld-am && cd bld-am && ../configure --enable-static=no --with-schannel --without-libpsl --host=${TRIPLET}
|
||||
|
||||
- name: run cmake
|
||||
run: |
|
||||
cmake -B bld-cm -DCURL_USE_SCHANNEL=ON -DCURL_USE_LIBPSL=OFF \
|
||||
-DCMAKE_SYSTEM_NAME=Windows \
|
||||
-DCMAKE_C_COMPILER_TARGET=${TRIPLET} \
|
||||
-DCMAKE_C_COMPILER=${TRIPLET}-gcc
|
||||
|
||||
- name: 'configure log'
|
||||
run: cat bld-am/config.log 2>/dev/null || true
|
||||
|
||||
- name: 'cmake log'
|
||||
run: cat bld-cm/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true
|
||||
|
||||
- name: compare generated curl_config.h files
|
||||
run: ./.github/scripts/cmp-config.pl bld-am/lib/curl_config.h bld-cm/lib/curl_config.h
|
||||
|
||||
- name: compare generated libcurl.pc files
|
||||
run: ./.github/scripts/cmp-pkg-config.sh bld-am/libcurl.pc bld-cm/libcurl.pc
|
||||
|
||||
- name: compare generated curl-config files
|
||||
run: ./.github/scripts/cmp-pkg-config.sh bld-am/curl-config bld-cm/curl-config
|
||||
|
135
deps/curl/.github/workflows/curl-for-win.yml
vendored
Normal file
135
deps/curl/.github/workflows/curl-for-win.yml
vendored
Normal file
@ -0,0 +1,135 @@
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
---
|
||||
name: curl-for-win
|
||||
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
CW_NOGET: 'curl trurl'
|
||||
CW_MAP: '0'
|
||||
CW_JOBS: '5'
|
||||
CW_NOPKG: '1'
|
||||
|
||||
jobs:
|
||||
linux-glibc-llvm:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
path: 'curl'
|
||||
fetch-depth: 8
|
||||
- name: 'build'
|
||||
run: |
|
||||
git clone --depth 1 https://github.com/curl/curl-for-win
|
||||
mv curl-for-win/* .
|
||||
export CW_CONFIG='-main-werror-linux-a64-x64'
|
||||
export CW_REVISION='${{ github.sha }}'
|
||||
DOCKER_IMAGE='debian:bookworm-slim'
|
||||
DOCKER_CONTENT_TRUST=1
|
||||
export CW_CCSUFFIX='-15'
|
||||
export CW_GCCSUFFIX='-12'
|
||||
docker trust inspect --pretty "${DOCKER_IMAGE}"
|
||||
time docker pull "${DOCKER_IMAGE}"
|
||||
docker images --digests
|
||||
time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
|
||||
--env-file <(env | grep -a -E \
|
||||
'^(CW_|GITHUB_)') \
|
||||
"${DOCKER_IMAGE}" \
|
||||
sh -c ./_ci-linux-debian.sh
|
||||
|
||||
linux-musl-llvm:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
path: 'curl'
|
||||
fetch-depth: 8
|
||||
- name: 'build'
|
||||
run: |
|
||||
git clone --depth 1 https://github.com/curl/curl-for-win
|
||||
mv curl-for-win/* .
|
||||
export CW_CONFIG='-main-werror-linux-musl-r64-x64'
|
||||
export CW_REVISION='${{ github.sha }}'
|
||||
. ./_versions.sh
|
||||
docker trust inspect --pretty "${DOCKER_IMAGE}"
|
||||
time docker pull "${DOCKER_IMAGE}"
|
||||
docker images --digests
|
||||
time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
|
||||
--env-file <(env | grep -a -E \
|
||||
'^(CW_|GITHUB_)') \
|
||||
"${DOCKER_IMAGE}" \
|
||||
sh -c ./_ci-linux-debian.sh
|
||||
|
||||
mac-clang:
|
||||
runs-on: macos-latest
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
CW_JOBS: '4'
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
path: 'curl'
|
||||
fetch-depth: 8
|
||||
- name: 'build'
|
||||
run: |
|
||||
git clone --depth 1 https://github.com/curl/curl-for-win
|
||||
mv curl-for-win/* .
|
||||
export CW_CONFIG='-main-werror-mac-x64'
|
||||
export CW_REVISION='${{ github.sha }}'
|
||||
sh -c ./_ci-mac-homebrew.sh
|
||||
|
||||
win-llvm:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
path: 'curl'
|
||||
fetch-depth: 8
|
||||
- name: 'build'
|
||||
run: |
|
||||
git clone --depth 1 https://github.com/curl/curl-for-win
|
||||
mv curl-for-win/* .
|
||||
export CW_CONFIG='-main-werror-win-x64'
|
||||
export CW_REVISION='${{ github.sha }}'
|
||||
. ./_versions.sh
|
||||
docker trust inspect --pretty "${DOCKER_IMAGE}"
|
||||
time docker pull "${DOCKER_IMAGE}"
|
||||
docker images --digests
|
||||
time docker run --volume "$(pwd):$(pwd)" --workdir "$(pwd)" \
|
||||
--env-file <(env | grep -a -E \
|
||||
'^(CW_|GITHUB_)') \
|
||||
"${DOCKER_IMAGE}" \
|
||||
sh -c ./_ci-linux-debian.sh
|
86
deps/curl/.github/workflows/distcheck.yml
vendored
86
deps/curl/.github/workflows/distcheck.yml
vendored
@ -4,7 +4,7 @@
|
||||
|
||||
name: dist
|
||||
|
||||
on:
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
@ -17,12 +17,14 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
maketgz-and-verify-in-tree:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- run: sudo apt-get purge -y curl libcurl4 libcurl4-doc
|
||||
name: 'remove preinstalled curl libcurl4{-doc}'
|
||||
@ -33,25 +35,27 @@ jobs:
|
||||
- run: ./configure --without-ssl --without-libpsl
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1 && make V=1 clean
|
||||
name: 'make and clean'
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: ./maketgz 99.98.97
|
||||
name: 'maketgz'
|
||||
- name: 'maketgz'
|
||||
run: |
|
||||
SOURCE_DATE_EPOCH=1711526400 ./scripts/maketgz 99.98.97
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
path: 'curl-99.98.97.tar.gz'
|
||||
retention-days: 1
|
||||
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
pushd curl-99.98.97
|
||||
./configure --prefix=$HOME/temp --without-ssl --without-libpsl
|
||||
make
|
||||
make test-ci
|
||||
make install
|
||||
make -j5
|
||||
make -j5 test-ci
|
||||
make -j5 install
|
||||
popd
|
||||
# basic check of the installed files
|
||||
bash scripts/installcheck.sh $HOME/temp
|
||||
@ -60,10 +64,10 @@ jobs:
|
||||
|
||||
verify-out-of-tree-docs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 15
|
||||
needs: maketgz-and-verify-in-tree
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
|
||||
@ -74,8 +78,8 @@ jobs:
|
||||
mkdir build
|
||||
pushd build
|
||||
../curl-99.98.97/configure --without-ssl --without-libpsl
|
||||
make
|
||||
make test-ci
|
||||
make -j5
|
||||
make -j5 test-ci
|
||||
popd
|
||||
rm -rf build
|
||||
rm -rf curl-99.98.97
|
||||
@ -83,10 +87,10 @@ jobs:
|
||||
|
||||
verify-out-of-tree-autotools-debug:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 15
|
||||
needs: maketgz-and-verify-in-tree
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
|
||||
@ -97,17 +101,17 @@ jobs:
|
||||
mkdir build
|
||||
pushd build
|
||||
../configure --without-ssl --enable-debug "--prefix=${PWD}/pkg" --without-libpsl
|
||||
make -j3
|
||||
make -j3 test-ci
|
||||
make -j3 install
|
||||
make -j5
|
||||
make -j5 test-ci
|
||||
make -j5 install
|
||||
name: 'verify out-of-tree autotools debug build'
|
||||
|
||||
verify-out-of-tree-cmake:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 15
|
||||
needs: maketgz-and-verify-in-tree
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
|
||||
@ -115,8 +119,38 @@ jobs:
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
pushd curl-99.98.97
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake ..
|
||||
make
|
||||
cmake -B build -DCURL_WERROR=ON -DCURL_USE_LIBPSL=OFF
|
||||
make -C build -j5
|
||||
name: 'verify out-of-tree cmake build'
|
||||
|
||||
missing-files:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
needs: maketgz-and-verify-in-tree
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
|
||||
- name: 'detect files missing from release tarball'
|
||||
run: .github/scripts/distfiles.sh curl-99.98.97.tar.gz
|
||||
|
||||
reproducible-releases:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- run: sudo apt-get purge -y curl libcurl4 libcurl4-doc
|
||||
name: 'remove preinstalled curl libcurl4{-doc}'
|
||||
|
||||
- run: ./scripts/dmaketgz 9.10.11
|
||||
name: 'generate release tarballs'
|
||||
|
||||
- name: 'verify release tarballs'
|
||||
run: |
|
||||
mkdir _verify
|
||||
mv curl-9.10.11.tar.gz _verify
|
||||
cd _verify
|
||||
../scripts/verify-release curl-9.10.11.tar.gz
|
||||
|
6
deps/curl/.github/workflows/fuzz.yml
vendored
6
deps/curl/.github/workflows/fuzz.yml
vendored
@ -4,7 +4,7 @@
|
||||
|
||||
name: Fuzzer
|
||||
|
||||
on:
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
@ -12,9 +12,7 @@ on:
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
@ -28,9 +26,7 @@ on:
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
name: Hacktoberfest
|
||||
|
||||
on:
|
||||
'on':
|
||||
# this must not ever run on any other branch than master
|
||||
push:
|
||||
branches:
|
||||
@ -26,7 +26,7 @@ jobs:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
fetch-depth: 100
|
||||
|
||||
|
537
deps/curl/.github/workflows/http3-linux.yml
vendored
Normal file
537
deps/curl/.github/workflows/http3-linux.yml
vendored
Normal file
@ -0,0 +1,537 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Linux HTTP/3
|
||||
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
group: http3-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 5
|
||||
# handled in renovate.json
|
||||
openssl-version: 3.4.0
|
||||
# handled in renovate.json
|
||||
quictls-version: 3.3.0
|
||||
# renovate: datasource=github-tags depName=gnutls/gnutls versioning=semver registryUrl=https://github.com
|
||||
gnutls-version: 3.8.7
|
||||
wolfssl-version: master
|
||||
# renovate: datasource=github-tags depName=ngtcp2/nghttp3 versioning=semver registryUrl=https://github.com
|
||||
nghttp3-version: 1.6.0
|
||||
# renovate: datasource=github-tags depName=ngtcp2/ngtcp2 versioning=semver registryUrl=https://github.com
|
||||
ngtcp2-version: 1.8.1
|
||||
# renovate: datasource=github-tags depName=nghttp2/nghttp2 versioning=semver registryUrl=https://github.com
|
||||
nghttp2-version: 1.64.0
|
||||
# renovate: datasource=github-tags depName=cloudflare/quiche versioning=semver registryUrl=https://github.com
|
||||
quiche-version: 0.22.0
|
||||
|
||||
jobs:
|
||||
setup:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
wolfssl-version: ${{ steps.wolfssl-version.outputs.result }}
|
||||
|
||||
steps:
|
||||
- id: wolfssl-version
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
let version = '${{ env.wolfssl-version }}'
|
||||
|
||||
if (version != 'master') {
|
||||
return version
|
||||
}
|
||||
|
||||
let { data: commits } = await github.rest.repos.listCommits({
|
||||
owner: 'wolfSSL',
|
||||
repo: 'wolfssl',
|
||||
})
|
||||
|
||||
return commits[0].sha
|
||||
|
||||
build-cache:
|
||||
needs:
|
||||
- setup
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: cache quictls
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-quictls-no-deprecated
|
||||
env:
|
||||
cache-name: cache-quictls-no-deprecated
|
||||
with:
|
||||
path: /home/runner/quictls/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.quictls-version }}-quic1
|
||||
|
||||
- name: cache gnutls
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-gnutls
|
||||
env:
|
||||
cache-name: cache-gnutls
|
||||
with:
|
||||
path: /home/runner/gnutls/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.gnutls-version }}
|
||||
|
||||
- name: cache wolfssl
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-wolfssl
|
||||
env:
|
||||
cache-name: cache-wolfssl
|
||||
wolfssl-version: ${{ needs.setup.outputs.wolfssl-version }}
|
||||
with:
|
||||
path: /home/runner/wolfssl/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.wolfssl-version }}
|
||||
|
||||
- name: cache nghttp3
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-nghttp3
|
||||
env:
|
||||
cache-name: cache-nghttp3
|
||||
with:
|
||||
path: /home/runner/nghttp3/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.nghttp3-version }}
|
||||
|
||||
- name: cache ngtcp2
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-ngtcp2
|
||||
env:
|
||||
cache-name: cache-ngtcp2
|
||||
with:
|
||||
path: /home/runner/ngtcp2/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.ngtcp2-version }}
|
||||
|
||||
- name: cache nghttp2
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-nghttp2
|
||||
env:
|
||||
cache-name: cache-nghttp2
|
||||
with:
|
||||
path: /home/runner/nghttp2/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.nghttp2-version }}
|
||||
|
||||
- id: settings
|
||||
if: |
|
||||
steps.cache-quictls-no-deprecated.outputs.cache-hit != 'true' ||
|
||||
steps.cache-gnutls.outputs.cache-hit != 'true' ||
|
||||
steps.cache-wolfssl.outputs.cache-hit != 'true' ||
|
||||
steps.cache-nghttp3.outputs.cache-hit != 'true' ||
|
||||
steps.cache-ngtcp2.outputs.cache-hit != 'true' ||
|
||||
steps.cache-nghttp2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
echo 'needs-build=true' >> $GITHUB_OUTPUT
|
||||
|
||||
- name: install build prereqs
|
||||
if: steps.settings.outputs.needs-build == 'true'
|
||||
run: |
|
||||
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends \
|
||||
libtool autoconf automake pkgconf stunnel4 \
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev \
|
||||
nettle-dev libp11-kit-dev libtspi-dev libunistring-dev guile-2.2-dev libtasn1-bin \
|
||||
libtasn1-6-dev libidn2-0-dev gawk gperf libtss2-dev dns-root-data bison gtk-doc-tools \
|
||||
texinfo texlive texlive-extra-utils autopoint libev-dev \
|
||||
apache2 apache2-dev libnghttp2-dev
|
||||
echo 'CC=gcc-12' >> $GITHUB_ENV
|
||||
echo 'CXX=g++-12' >> $GITHUB_ENV
|
||||
|
||||
- if: steps.cache-quictls-no-deprecated.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }}-quic1 https://github.com/quictls/openssl quictls
|
||||
cd quictls
|
||||
./config no-deprecated --prefix=$PWD/build --libdir=lib
|
||||
make
|
||||
make -j1 install_sw
|
||||
name: 'build quictls'
|
||||
|
||||
- if: steps.cache-gnutls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.gnutls-version }} https://github.com/gnutls/gnutls.git
|
||||
cd gnutls
|
||||
./bootstrap
|
||||
./configure --disable-dependency-tracking --prefix=$PWD/build \
|
||||
LDFLAGS="-Wl,-rpath,$PWD/build/lib -L$PWD/build/lib" \
|
||||
--with-included-libtasn1 --with-included-unistring \
|
||||
--disable-guile --disable-doc --disable-tests --disable-tools
|
||||
make
|
||||
make install
|
||||
name: 'build gnutls'
|
||||
|
||||
- if: steps.cache-wolfssl.outputs.cache-hit != 'true'
|
||||
env:
|
||||
wolfssl-version: ${{ needs.setup.outputs.wolfssl-version }}
|
||||
run: |
|
||||
cd $HOME
|
||||
mkdir wolfssl
|
||||
cd wolfssl
|
||||
git init
|
||||
git remote add origin https://github.com/wolfSSL/wolfssl.git
|
||||
git fetch origin --depth=1 ${{ env.wolfssl-version }}
|
||||
git checkout ${{ env.wolfssl-version }}
|
||||
./autogen.sh
|
||||
./configure --disable-dependency-tracking --enable-all --enable-quic --prefix=$PWD/build
|
||||
make
|
||||
make install
|
||||
name: 'build wolfssl'
|
||||
|
||||
- if: steps.cache-nghttp3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b v${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3
|
||||
cd nghttp3
|
||||
git submodule update --init --depth=1
|
||||
autoreconf -fi
|
||||
./configure --disable-dependency-tracking --prefix=$PWD/build PKG_CONFIG_PATH="$PWD/build/lib/pkgconfig" --enable-lib-only
|
||||
make
|
||||
make install
|
||||
name: 'build nghttp3'
|
||||
|
||||
- if: steps.cache-ngtcp2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b v${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2
|
||||
cd ngtcp2
|
||||
autoreconf -fi
|
||||
./configure --disable-dependency-tracking --prefix=$PWD/build \
|
||||
PKG_CONFIG_PATH="$PWD/build/lib/pkgconfig:$HOME/quictls/build/lib/pkgconfig:$HOME/gnutls/build/lib/pkgconfig:$HOME/wolfssl/build/lib/pkgconfig:$HOME/nghttp3/build/lib/pkgconfig" \
|
||||
--enable-lib-only --with-openssl --with-gnutls --with-wolfssl
|
||||
make install
|
||||
name: 'build ngtcp2'
|
||||
|
||||
- if: steps.cache-nghttp2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b v${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2
|
||||
cd nghttp2
|
||||
autoreconf -fi
|
||||
./configure --disable-dependency-tracking --prefix=$PWD/build \
|
||||
PKG_CONFIG_PATH="$HOME/build/lib/pkgconfig:$HOME/quictls/build/lib/pkgconfig:$HOME/nghttp3/build/lib/pkgconfig:$HOME/ngtcp2/build/lib/pkgconfig" \
|
||||
LDFLAGS="-Wl,-rpath,$HOME/quictls/build/lib" \
|
||||
--enable-http3
|
||||
make install
|
||||
name: 'build nghttp2'
|
||||
|
||||
linux:
|
||||
name: ${{ matrix.build.generate && 'CM' || 'AM' }} ${{ matrix.build.name }}
|
||||
needs:
|
||||
- setup
|
||||
- build-cache
|
||||
runs-on: 'ubuntu-24.04'
|
||||
timeout-minutes: 45
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: quictls
|
||||
PKG_CONFIG_PATH: '$HOME/quictls/build/lib/pkgconfig:$HOME/nghttp3/build/lib/pkgconfig:$HOME/ngtcp2/build/lib/pkgconfig:$HOME/nghttp2/build/lib/pkgconfig'
|
||||
configure: >-
|
||||
LDFLAGS="-Wl,-rpath,$HOME/quictls/build/lib"
|
||||
--with-ngtcp2=$HOME/ngtcp2/build --enable-warnings --enable-werror --enable-debug --disable-ntlm
|
||||
--with-test-nghttpx="$HOME/nghttp2/build/bin/nghttpx"
|
||||
--with-openssl=$HOME/quictls/build
|
||||
|
||||
- name: gnutls
|
||||
PKG_CONFIG_PATH: '$HOME/gnutls/build/lib/pkgconfig:$HOME/nghttp3/build/lib/pkgconfig:$HOME/ngtcp2/build/lib/pkgconfig:$HOME/nghttp2/build/lib/pkgconfig'
|
||||
configure: >-
|
||||
LDFLAGS="-Wl,-rpath,$HOME/gnutls/build/lib"
|
||||
--with-ngtcp2=$HOME/ngtcp2/build --enable-warnings --enable-werror --enable-debug
|
||||
--with-test-nghttpx="$HOME/nghttp2/build/bin/nghttpx"
|
||||
--with-gnutls=$HOME/gnutls/build
|
||||
|
||||
- name: wolfssl
|
||||
PKG_CONFIG_PATH: '$HOME/wolfssl/build/lib/pkgconfig:$HOME/nghttp3/build/lib/pkgconfig:$HOME/ngtcp2/build/lib/pkgconfig:$HOME/nghttp2/build/lib/pkgconfig'
|
||||
configure: >-
|
||||
LDFLAGS="-Wl,-rpath,$HOME/wolfssl/build/lib"
|
||||
--with-ngtcp2=$HOME/ngtcp2/build --enable-warnings --enable-werror --enable-debug
|
||||
--with-test-nghttpx="$HOME/nghttp2/build/bin/nghttpx"
|
||||
--with-wolfssl=$HOME/wolfssl/build
|
||||
|
||||
- name: wolfssl
|
||||
PKG_CONFIG_PATH: '$HOME/wolfssl/build/lib/pkgconfig:$HOME/nghttp3/build/lib/pkgconfig:$HOME/ngtcp2/build/lib/pkgconfig:$HOME/nghttp2/build/lib/pkgconfig'
|
||||
generate: >-
|
||||
-DCURL_USE_WOLFSSL=ON -DUSE_NGTCP2=ON -DENABLE_DEBUG=ON
|
||||
-DTEST_NGHTTPX="$HOME/nghttp2/build/bin/nghttpx"
|
||||
-DHTTPD_NGHTTPX="$HOME/nghttp2/build/bin/nghttpx"
|
||||
|
||||
- name: openssl-quic
|
||||
PKG_CONFIG_PATH: '$HOME/openssl/build/lib64/pkgconfig'
|
||||
configure: >-
|
||||
LDFLAGS="-Wl,-rpath,$HOME/openssl/build/lib64"
|
||||
--enable-warnings --enable-werror --enable-debug --disable-ntlm
|
||||
--with-test-nghttpx="$HOME/nghttp2/build/bin/nghttpx"
|
||||
--with-openssl=$HOME/openssl/build --with-openssl-quic
|
||||
--with-nghttp3=$HOME/nghttp3/build
|
||||
|
||||
- name: quiche
|
||||
configure: >-
|
||||
LDFLAGS="-Wl,-rpath,$HOME/quiche/target/release"
|
||||
--with-openssl=$HOME/quiche/quiche/deps/boringssl/src
|
||||
--enable-warnings --enable-werror --enable-debug
|
||||
--with-quiche=$HOME/quiche/target/release
|
||||
--with-test-nghttpx="$HOME/nghttp2/build/bin/nghttpx"
|
||||
--with-ca-fallback
|
||||
|
||||
- name: quiche
|
||||
PKG_CONFIG_PATH: '$HOME/quiche/target/release'
|
||||
generate: >-
|
||||
-DOPENSSL_ROOT_DIR=$HOME/quiche/quiche/deps/boringssl/src -DENABLE_DEBUG=ON
|
||||
-DUSE_QUICHE=ON
|
||||
-DTEST_NGHTTPX="$HOME/nghttp2/build/bin/nghttpx"
|
||||
-DHTTPD_NGHTTPX="$HOME/nghttp2/build/bin/nghttpx"
|
||||
-DCURL_CA_FALLBACK=ON
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends \
|
||||
libtool autoconf automake ninja-build pkgconf stunnel4 \
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev \
|
||||
nettle-dev libp11-kit-dev libtspi-dev libunistring-dev guile-2.2-dev libtasn1-bin \
|
||||
libtasn1-6-dev libidn2-0-dev gawk gperf libtss2-dev dns-root-data bison gtk-doc-tools \
|
||||
texinfo texlive texlive-extra-utils autopoint libev-dev \
|
||||
apache2 apache2-dev libnghttp2-dev vsftpd
|
||||
echo 'CC=gcc-12' >> $GITHUB_ENV
|
||||
echo 'CXX=g++-12' >> $GITHUB_ENV
|
||||
name: 'install prereqs'
|
||||
|
||||
- name: cache quictls
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-quictls-no-deprecated
|
||||
env:
|
||||
cache-name: cache-quictls-no-deprecated
|
||||
with:
|
||||
path: /home/runner/quictls/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.quictls-version }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: cache gnutls
|
||||
if: matrix.build.name == 'gnutls'
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-gnutls
|
||||
env:
|
||||
cache-name: cache-gnutls
|
||||
with:
|
||||
path: /home/runner/gnutls/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.gnutls-version }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: cache wolfssl
|
||||
if: matrix.build.name == 'wolfssl'
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-wolfssl
|
||||
env:
|
||||
cache-name: cache-wolfssl
|
||||
wolfssl-version: ${{ needs.setup.outputs.wolfssl-version }}
|
||||
with:
|
||||
path: /home/runner/wolfssl/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.wolfssl-version }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: cache nghttp3
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-nghttp3
|
||||
env:
|
||||
cache-name: cache-nghttp3
|
||||
with:
|
||||
path: /home/runner/nghttp3/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.nghttp3-version }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: cache ngtcp2
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-ngtcp2
|
||||
env:
|
||||
cache-name: cache-ngtcp2
|
||||
with:
|
||||
path: /home/runner/ngtcp2/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.ngtcp2-version }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: cache nghttp2
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-nghttp2
|
||||
env:
|
||||
cache-name: cache-nghttp2
|
||||
with:
|
||||
path: /home/runner/nghttp2/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.nghttp2-version }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: cache openssl
|
||||
if: matrix.build.name == 'openssl-quic'
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-openssl
|
||||
env:
|
||||
cache-name: cache-openssl
|
||||
with:
|
||||
path: /home/runner/openssl/build
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.openssl-version }}
|
||||
|
||||
- name: 'install openssl'
|
||||
if: matrix.build.name == 'openssl-quic' && steps.cache-openssl.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.openssl-version }} https://github.com/openssl/openssl
|
||||
cd openssl
|
||||
./config --prefix=$HOME/openssl/build
|
||||
make -j1 install_sw
|
||||
cat exporters/openssl.pc
|
||||
|
||||
- name: cache quiche
|
||||
if: matrix.build.name == 'quiche'
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-quiche
|
||||
env:
|
||||
cache-name: cache-quiche
|
||||
with:
|
||||
path: /home/runner/quiche
|
||||
key: ${{ runner.os }}-http3-build-${{ env.cache-name }}-${{ env.quiche-version }}
|
||||
|
||||
- if: matrix.build.name == 'quiche' && steps.cache-quiche.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.quiche-version }} --recursive https://github.com/cloudflare/quiche.git
|
||||
cd quiche
|
||||
#### Work-around https://github.com/curl/curl/issues/7927 #######
|
||||
#### See https://github.com/alexcrichton/cmake-rs/issues/131 ####
|
||||
sed -i -e 's/cmake = "0.1"/cmake = "=0.1.45"/' quiche/Cargo.toml
|
||||
|
||||
cargo build -v --package quiche --release --features ffi,pkg-config-meta,qlog --verbose
|
||||
ln -s libquiche.so target/release/libquiche.so.0
|
||||
mkdir -v quiche/deps/boringssl/src/lib
|
||||
ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) quiche/deps/boringssl/src/lib/
|
||||
|
||||
# include dir
|
||||
# $HOME/quiche/quiche/deps/boringssl/src/include
|
||||
# lib dir
|
||||
# $HOME/quiche/quiche/deps/boringssl/src/lib
|
||||
name: 'build quiche and boringssl'
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
if: ${{ matrix.build.configure }}
|
||||
name: 'autoreconf'
|
||||
|
||||
- name: 'configure'
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.PKG_CONFIG_PATH }}' ]; then
|
||||
export PKG_CONFIG_PATH="${{ matrix.build.PKG_CONFIG_PATH }}"
|
||||
fi
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake -B . -G Ninja \
|
||||
-DCMAKE_C_COMPILER_TARGET=$(uname -m)-pc-linux-gnu -DBUILD_STATIC_LIBS=ON \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON \
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON \
|
||||
${{ matrix.build.generate }}
|
||||
else
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
|
||||
${{ matrix.build.configure }}
|
||||
fi
|
||||
|
||||
- name: 'configure log'
|
||||
if: ${{ !cancelled() }}
|
||||
run: cat config.log CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'test configs'
|
||||
run: |
|
||||
cat tests/config || true
|
||||
cat tests/http/config.ini || true
|
||||
|
||||
- name: 'build'
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake --build . --verbose
|
||||
else
|
||||
make V=1
|
||||
fi
|
||||
|
||||
- run: ./src/curl -V
|
||||
name: 'check curl -V output'
|
||||
|
||||
- name: 'build tests'
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake --build . --verbose --target testdeps
|
||||
else
|
||||
make V=1 -C tests
|
||||
fi
|
||||
|
||||
- name: 'install test prereqs'
|
||||
run: |
|
||||
sudo python3 -m pip install --break-system-packages -r tests/requirements.txt
|
||||
|
||||
- name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake --build . --verbose --target test-ci
|
||||
else
|
||||
make V=1 test-ci
|
||||
fi
|
||||
|
||||
- name: 'install pytest prereqs'
|
||||
run: |
|
||||
sudo python3 -m pip install --break-system-packages -r tests/http/requirements.txt
|
||||
|
||||
- name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake --build . --verbose --target curl-pytest-ci
|
||||
else
|
||||
make V=1 pytest-ci
|
||||
fi
|
||||
|
||||
- name: 'build examples'
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake --build . --verbose --target curl-examples
|
||||
else
|
||||
make V=1 examples
|
||||
fi
|
4
deps/curl/.github/workflows/label.yml
vendored
4
deps/curl/.github/workflows/label.yml
vendored
@ -10,7 +10,7 @@
|
||||
# https://github.com/actions/labeler
|
||||
|
||||
name: Labeler
|
||||
on: [pull_request_target]
|
||||
'on': [pull_request_target]
|
||||
|
||||
jobs:
|
||||
label:
|
||||
@ -21,6 +21,6 @@ jobs:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/labeler@v5
|
||||
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
41
deps/curl/.github/workflows/linkcheck.yml
vendored
41
deps/curl/.github/workflows/linkcheck.yml
vendored
@ -1,41 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Markdown links
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- '.github/workflows/linkcheck.yml'
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- '.github/workflows/linkcheck.yml'
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
# Docs: https://github.com/marketplace/actions/markdown-link-check
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
name: checkout
|
||||
|
||||
- name: trim the cmdline docs markdown files
|
||||
run: find docs/cmdline-opts -name "*.md" ! -name "_*" ! -name MANPAGE.md | xargs -n1 ./.github/scripts/cleancmd.pl
|
||||
|
||||
- uses: gaurav-nelson/github-action-markdown-link-check@v1
|
||||
with:
|
||||
use-quiet-mode: 'yes'
|
144
deps/curl/.github/workflows/linux-old.yml
vendored
Normal file
144
deps/curl/.github/workflows/linux-old.yml
vendored
Normal file
@ -0,0 +1,144 @@
|
||||
# Copyright (C) Daniel Fandrich, <dan@coneharvesters.com>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
# Compile on an old version of Linux that has barely the minimal build
|
||||
# requirements for CMake. This tests that curl is still usable on really
|
||||
# outdated systems.
|
||||
#
|
||||
# Debian stretch is chosen as it closely matches some of the oldest major
|
||||
# versions we support (especially cmake); see docs/INTERNALS.md and it
|
||||
# is still supported (as of this writing).
|
||||
# stretch has ELTS support from Freexian until 2027-06-30
|
||||
# For ELTS info see https://www.freexian.com/lts/extended/docs/how-to-use-extended-lts/
|
||||
# The Debian key will expire 2025-05-20, after which package signature
|
||||
# verification may need to be disabled.
|
||||
# httrack is one of the smallest downloaders, needed to bootstrap ELTS,
|
||||
# and won't conflict with the curl we're building.
|
||||
|
||||
name: Old Linux
|
||||
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 5
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
|
||||
jobs:
|
||||
cmake:
|
||||
name: linux (cmake & autoconf)
|
||||
runs-on: 'ubuntu-latest'
|
||||
container: 'debian:stretch'
|
||||
|
||||
steps:
|
||||
- name: 'install prereqs'
|
||||
# Remember, this shell is dash, not bash
|
||||
run: |
|
||||
sed -E -i -e s@[a-z]+\.debian\.org/@archive.debian.org/debian-archive/@ -e '/ stretch-updates /d' /etc/apt/sources.list
|
||||
apt-get update
|
||||
# See comment above if this fails after 2025-05-20
|
||||
apt-get install -y --no-install-suggests --no-install-recommends httrack
|
||||
httrack --get https://deb.freexian.com/extended-lts/pool/main/f/freexian-archive-keyring/freexian-archive-keyring_2022.06.08_all.deb
|
||||
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 update
|
||||
apt-get install -y --no-install-suggests --no-install-recommends cmake make automake autoconf libtool gcc pkg-config libpsl-dev libzstd-dev zlib1g-dev libssl1.0-dev libssh-dev libssh2-1-dev libc-ares-dev heimdal-dev libldap2-dev librtmp-dev stunnel4 groff
|
||||
# GitHub's actions/checkout needs a newer glibc. This one is the
|
||||
# latest available for buster, the next stable release after stretch.
|
||||
httrack --get https://security.debian.org/debian-security/pool/updates/main/g/glibc/libc6_2.28-10+deb10u4_amd64.deb
|
||||
dpkg -i libc6_*_amd64.deb
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: 'cmake build-only (out-of-tree, libssh2)'
|
||||
run: |
|
||||
mkdir bld-1
|
||||
cd bld-1
|
||||
cmake .. -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON -DBUILD_SHARED_LIBS=ON \
|
||||
-DENABLE_ARES=OFF -DCURL_ZSTD=OFF -DCURL_USE_GSSAPI=OFF -DCURL_USE_LIBSSH2=ON -DCURL_USE_LIBSSH=OFF -DUSE_LIBRTMP=ON
|
||||
make install
|
||||
src/curl --disable --version
|
||||
|
||||
- name: 'cmake build-only curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat bld-1/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld-1/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'cmake generate (out-of-tree, c-ares, libssh, zstd, gssapi)'
|
||||
run: |
|
||||
mkdir bld-cares
|
||||
cd bld-cares
|
||||
cmake .. -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON -DBUILD_SHARED_LIBS=ON \
|
||||
-DENABLE_ARES=ON -DCURL_ZSTD=ON -DCURL_USE_GSSAPI=ON -DCURL_USE_LIBSSH2=OFF -DCURL_USE_LIBSSH=ON -DUSE_LIBRTMP=ON \
|
||||
-DCURL_LIBCURL_VERSIONED_SYMBOLS=ON
|
||||
|
||||
- name: 'cmake curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat bld-cares/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld-cares/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'cmake build'
|
||||
run: |
|
||||
make -C bld-cares
|
||||
bld-cares/src/curl --disable --version
|
||||
|
||||
- name: 'cmake install'
|
||||
run: make -C bld-cares install
|
||||
|
||||
- name: 'cmake build tests'
|
||||
run: make -C bld-cares testdeps
|
||||
|
||||
- name: 'cmake run tests'
|
||||
run: make -C bld-cares test-ci
|
||||
|
||||
- name: 'autoreconf'
|
||||
run: autoreconf -if
|
||||
|
||||
- name: 'configure (out-of-tree, libssh2)'
|
||||
run: |
|
||||
mkdir bld-am
|
||||
cd bld-am
|
||||
../configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
|
||||
--with-openssl --enable-ares --with-libssh --with-zstd --with-gssapi --with-librtmp \
|
||||
--prefix="$PWD"/../install-am
|
||||
|
||||
- name: 'autoconf curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat bld-am/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld-am/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'autoconf build'
|
||||
run: |
|
||||
make -C bld-am
|
||||
bld-am/src/curl --disable --version
|
||||
|
||||
- name: 'autoconf install'
|
||||
run: make -C bld-am install
|
||||
|
||||
- name: 'autoconf build tests'
|
||||
run: make -C bld-am/tests all
|
620
deps/curl/.github/workflows/linux.yml
vendored
620
deps/curl/.github/workflows/linux.yml
vendored
@ -4,16 +4,14 @@
|
||||
|
||||
name: Linux
|
||||
|
||||
on:
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -24,9 +22,7 @@ on:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -40,137 +36,236 @@ concurrency:
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 3
|
||||
MAKEFLAGS: -j 5
|
||||
# unhandled
|
||||
bearssl-version: 0.6
|
||||
libressl-version: v3.7.3
|
||||
mbedtls-version: v3.5.0
|
||||
mod_h2-version: v2.0.26
|
||||
msh3-version: v0.6.0
|
||||
openssl3-version: openssl-3.1.3
|
||||
quictls-version: 3.1.4+quic
|
||||
rustls-version: v0.12.0
|
||||
# renovate: datasource=github-tags depName=libressl-portable/portable versioning=semver registryUrl=https://github.com
|
||||
libressl-version: 4.0.0
|
||||
# renovate: datasource=github-tags depName=wolfSSL/wolfssl versioning=semver extractVersion=^v?(?<version>.+)-stable$ registryUrl=https://github.com
|
||||
wolfssl-version: 5.7.4
|
||||
# renovate: datasource=github-tags depName=Mbed-TLS/mbedtls versioning=semver registryUrl=https://github.com
|
||||
mbedtls-version: 3.6.2
|
||||
# renovate: datasource=github-tags depName=nibanks/msh3 versioning=semver registryUrl=https://github.com
|
||||
msh3-version: 0.6.0
|
||||
# renovate: datasource=github-tags depName=awslabs/aws-lc versioning=semver registryUrl=https://github.com
|
||||
awslc-version: 1.37.0
|
||||
# handled in renovate.json
|
||||
openssl-version: 3.4.0
|
||||
# handled in renovate.json
|
||||
quictls-version: 3.3.0
|
||||
# renovate: datasource=github-tags depName=rustls/rustls-ffi versioning=semver registryUrl=https://github.com
|
||||
rustls-version: 0.14.0
|
||||
|
||||
jobs:
|
||||
autotools:
|
||||
name: ${{ matrix.build.name }}
|
||||
runs-on: 'ubuntu-latest'
|
||||
linux:
|
||||
name: ${{ matrix.build.generate && 'CM' || 'AM' }} ${{ matrix.build.name }}
|
||||
runs-on: 'ubuntu-24.04'
|
||||
container: ${{ matrix.build.container }}
|
||||
timeout-minutes: 90
|
||||
timeout-minutes: 45
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: bearssl
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_packages: zlib1g-dev
|
||||
install_steps: bearssl pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: bearssl-clang
|
||||
- name: bearssl clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: bearssl
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: libressl
|
||||
install_packages: zlib1g-dev valgrind
|
||||
- name: libressl heimdal
|
||||
install_packages: zlib1g-dev heimdal-dev
|
||||
install_steps: libressl pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --enable-debug
|
||||
singleuse: --unit
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --with-gssapi --enable-debug
|
||||
|
||||
- name: libressl-clang
|
||||
- name: libressl heimdal valgrind
|
||||
install_packages: zlib1g-dev heimdal-dev valgrind
|
||||
install_steps: libressl pytest
|
||||
generate: -DOPENSSL_ROOT_DIR=$HOME/libressl -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DCURL_LIBCURL_VERSIONED_SYMBOLS=ON
|
||||
|
||||
- name: libressl clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: libressl
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: mbedtls
|
||||
- name: wolfssl-all
|
||||
install_packages: zlib1g-dev
|
||||
install_steps: wolfssl-all
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/wolfssl-all/lib" --with-wolfssl=$HOME/wolfssl-all --enable-debug
|
||||
|
||||
- name: wolfssl-opensslextra valgrind
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: wolfssl-opensslextra
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/wolfssl-opensslextra/lib" --with-wolfssl=$HOME/wolfssl-opensslextra --enable-debug
|
||||
|
||||
- name: mbedtls valgrind
|
||||
install_packages: libnghttp2-dev valgrind
|
||||
install_steps: mbedtls pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/mbedtls/lib" --with-mbedtls=$HOME/mbedtls --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: mbedtls-clang
|
||||
- name: mbedtls clang
|
||||
install_packages: libnghttp2-dev clang
|
||||
install_steps: mbedtls
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/mbedtls/lib" --with-mbedtls=$HOME/mbedtls --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: mbedtls
|
||||
install_packages: libnghttp2-dev
|
||||
install_steps: mbedtls
|
||||
PKG_CONFIG_PATH: '$HOME/mbedtls/lib/pkgconfig' # Requires v3.6.0 or v2.28.8
|
||||
generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON
|
||||
|
||||
- name: mbedtls-pkg
|
||||
install_packages: libnghttp2-dev libmbedtls-dev
|
||||
generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON
|
||||
|
||||
- name: mbedtls-pkg !pc
|
||||
install_packages: libnghttp2-dev libmbedtls-dev
|
||||
install_steps: skipall
|
||||
generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON -DCURL_USE_PKGCONFIG=OFF
|
||||
|
||||
- name: msh3
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_packages: zlib1g-dev
|
||||
install_steps: quictls msh3
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/msh3/lib -Wl,-rpath,$HOME/quictls/lib" --with-msh3=$HOME/msh3 --with-openssl=$HOME/quictls --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: openssl3
|
||||
- name: msh3
|
||||
install_packages: zlib1g-dev
|
||||
install_steps: quictls msh3 skipall
|
||||
PKG_CONFIG_PATH: '$HOME/msh3/lib/pkgconfig' # Broken as of v0.6.0
|
||||
generate: -DOPENSSL_ROOT_DIR=$HOME/quictls -DUSE_MSH3=ON -DMSH3_INCLUDE_DIR=$HOME/msh3/include -DMSH3_LIBRARY=$HOME/msh3/lib/libmsh3.so -DENABLE_DEBUG=ON
|
||||
|
||||
- name: awslc
|
||||
install_packages: zlib1g-dev
|
||||
install_steps: awslc
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/awslc/lib" --with-openssl=$HOME/awslc
|
||||
|
||||
- name: awslc
|
||||
install_packages: zlib1g-dev
|
||||
install_steps: awslc
|
||||
generate: -DOPENSSL_ROOT_DIR=$HOME/awslc -DCMAKE_UNITY_BUILD=OFF
|
||||
|
||||
- name: openssl default
|
||||
install_steps: pytest
|
||||
configure: --with-openssl --enable-debug --disable-unity
|
||||
|
||||
- name: openssl libssh2 sync-resolver valgrind
|
||||
install_packages: zlib1g-dev libssh2-1-dev valgrind
|
||||
install_steps: pytest
|
||||
configure: --with-openssl --enable-debug --disable-threaded-resolver --with-libssh2
|
||||
|
||||
- name: openssl
|
||||
install_packages: zlib1g-dev
|
||||
install_steps: pytest
|
||||
configure: CFLAGS=-std=gnu89 --with-openssl --enable-debug
|
||||
|
||||
- name: openssl -O3 valgrind
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: gcc-11 openssl3 pytest
|
||||
configure: CFLAGS=-std=gnu89 LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
configure: CPPFLAGS=-DCURL_WARN_SIGN_CONVERSION CFLAGS=-O3 --with-openssl --enable-debug
|
||||
|
||||
- name: openssl3-O3
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: gcc-11 openssl3
|
||||
configure: CPPFLAGS=-DCURL_WARN_SIGN_CONVERSION CFLAGS=-O3 LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
- name: openssl clang krb5
|
||||
install_packages: zlib1g-dev libkrb5-dev clang
|
||||
configure: CC=clang --with-openssl --with-gssapi --enable-debug
|
||||
|
||||
- name: openssl3-clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: openssl3
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
- name: openssl clang krb5
|
||||
install_packages: zlib1g-dev libkrb5-dev clang
|
||||
install_steps: skipall
|
||||
generate: -DCURL_USE_OPENSSL=ON -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON
|
||||
|
||||
- name: openssl !ipv6
|
||||
configure: --with-openssl --disable-ipv6 --enable-debug --disable-unity
|
||||
|
||||
- name: openssl https-only
|
||||
configure: >-
|
||||
--with-openssl --enable-debug --disable-unity
|
||||
--disable-dict --disable-gopher --disable-ldap --disable-telnet
|
||||
--disable-imap --disable-pop3 --disable-smtp
|
||||
--disable-rtmp --disable-rtsp
|
||||
--disable-scp --disable-sftp --disable-tftp --disable-ftp --disable-file --disable-smb
|
||||
|
||||
- name: openssl torture !FTP
|
||||
install_packages: zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
|
||||
generate: -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=ON -DENABLE_ARES=ON
|
||||
tflags: -t --shallow=25 !FTP
|
||||
torture: true
|
||||
|
||||
- name: openssl torture FTP
|
||||
install_packages: zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
|
||||
generate: -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=ON -DENABLE_ARES=ON
|
||||
tflags: -t --shallow=20 FTP
|
||||
torture: true
|
||||
|
||||
- name: openssl i686
|
||||
install_packages: gcc-14-i686-linux-gnu libssl-dev:i386 librtmp-dev:i386 libssh2-1-dev:i386 libidn2-0-dev:i386 libc-ares-dev:i386 zlib1g-dev:i386
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig
|
||||
CC=i686-linux-gnu-gcc-14
|
||||
CPPFLAGS=-I/usr/include/i386-linux-gnu
|
||||
LDFLAGS=-L/usr/lib/i386-linux-gnu
|
||||
--host=i686-linux-gnu
|
||||
--with-openssl --with-librtmp --with-libssh2 --with-libidn2 --enable-ares --enable-debug
|
||||
|
||||
- name: '!ssl !http !smtp !imap'
|
||||
configure: --without-ssl --enable-debug --disable-http --disable-smtp --disable-imap --disable-unity
|
||||
|
||||
- name: scanbuild
|
||||
install_packages: clang-tools clang libssl-dev libssh2-1-dev
|
||||
install_steps: skipall
|
||||
configure: --with-openssl --enable-debug --with-libssh2 --disable-unity
|
||||
configure-prefix: CC=clang scan-build
|
||||
make-prefix: scan-build --status-bugs
|
||||
|
||||
- name: address-sanitizer
|
||||
install_packages: zlib1g-dev libssh2-1-dev clang libssl-dev libubsan1 libasan8 libtsan2
|
||||
install_steps: pytest
|
||||
configure: >
|
||||
configure: >-
|
||||
CC=clang
|
||||
CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g"
|
||||
LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer"
|
||||
LIBS="-ldl -lubsan"
|
||||
--with-openssl --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
--with-openssl --enable-debug
|
||||
|
||||
- name: thread-sanitizer
|
||||
install_packages: zlib1g-dev clang libtsan2
|
||||
install_steps: pytest openssl-tsan
|
||||
configure: >-
|
||||
CC=clang
|
||||
CFLAGS="-fsanitize=thread -g"
|
||||
LDFLAGS="-fsanitize=thread -Wl,-rpath,$HOME/openssl/lib"
|
||||
--with-openssl=$HOME/openssl --enable-debug
|
||||
|
||||
- name: memory-sanitizer
|
||||
install_packages: clang
|
||||
install_steps:
|
||||
configure: >
|
||||
configure: >-
|
||||
CC=clang
|
||||
CFLAGS="-fsanitize=memory -Wformat -Werror=format-security -Werror=array-bounds -g"
|
||||
LDFLAGS="-fsanitize=memory"
|
||||
LIBS="-ldl"
|
||||
--without-ssl --without-zlib --without-brotli --without-zstd --without-libpsl --without-nghttp2 --enable-debug --enable-websocketsx
|
||||
singleuse: --unit
|
||||
--without-ssl --without-zlib --without-brotli --without-zstd --without-libpsl --without-nghttp2 --enable-debug
|
||||
|
||||
- name: event-based
|
||||
install_packages: libssh-dev valgrind
|
||||
install_packages: libssh-dev
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-libssh --with-openssl
|
||||
tflags: -n -e '!TLS-SRP'
|
||||
singleuse: --unit
|
||||
|
||||
- name: hyper
|
||||
install_steps: rust hyper valgrind
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/hyper/target/debug" --with-openssl --with-hyper=$HOME/hyper --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
- name: rustls valgrind
|
||||
install_packages: valgrind
|
||||
install_steps: rust rustls pytest
|
||||
configure: --with-rustls=$HOME/rustls --enable-debug
|
||||
|
||||
- name: rustls
|
||||
install_steps: rust rustls pytest valgrind libpsl-dev
|
||||
configure: --with-rustls=$HOME/rustls --enable-debug
|
||||
singleuse: --unit
|
||||
install_steps: rust rustls skipall
|
||||
PKG_CONFIG_PATH: '$HOME/rustls/lib/pkgconfig' # Not built as of v0.14.0
|
||||
generate: -DCURL_USE_RUSTLS=ON -DRUSTLS_INCLUDE_DIR=$HOME/rustls/include -DRUSTLS_LIBRARY=$HOME/rustls/lib/librustls.a -DENABLE_DEBUG=ON
|
||||
|
||||
- name: Intel compiler - without SSL
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: intel
|
||||
configure: CC=icc --enable-debug --without-ssl
|
||||
singleuse: --unit
|
||||
|
||||
- name: Intel compiler - OpenSSL
|
||||
install_packages: zlib1g-dev libssl-dev valgrind
|
||||
- name: IntelC openssl
|
||||
install_packages: zlib1g-dev libssl-dev
|
||||
install_steps: intel
|
||||
configure: CC=icc --enable-debug --with-openssl
|
||||
singleuse: --unit
|
||||
|
||||
- name: Slackware-openssl-with-gssapi-gcc
|
||||
- name: Slackware openssl gssapi gcc
|
||||
# These are essentially the same flags used to build the curl Slackware package
|
||||
# https://ftpmirror.infania.net/slackware/slackware64-current/source/n/curl/curl.SlackBuild
|
||||
configure: --with-openssl --with-libssh2 --with-gssapi --enable-ares --enable-static=no --without-ca-bundle --with-ca-path=/etc/ssl/certs
|
||||
@ -178,44 +273,64 @@ jobs:
|
||||
container: 'andy5995/slackware-build-essential:15.0'
|
||||
|
||||
- name: Alpine MUSL
|
||||
configure: --enable-debug --enable-websockets --with-ssl --with-libssh2 --with-libidn2 --with-gssapi --enable-ldap --with-libpsl
|
||||
configure: --enable-debug --with-ssl --with-libssh2 --with-libidn2 --with-gssapi --enable-ldap --with-libpsl
|
||||
container: 'alpine:3.18'
|
||||
singleuse: --unit
|
||||
|
||||
steps:
|
||||
- if: matrix.build.container == null
|
||||
- if: matrix.build.container == null && !contains(matrix.build.name, 'i686')
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 libpsl-dev libbrotli-dev libzstd-dev ${{ matrix.build.install_packages }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends \
|
||||
libtool autoconf automake pkgconf ninja-build stunnel4 \
|
||||
libpsl-dev libbrotli-dev libzstd-dev \
|
||||
${{ matrix.build.install_packages }}
|
||||
name: 'install prereqs'
|
||||
|
||||
- if: contains(matrix.build.name, 'i686')
|
||||
run: |
|
||||
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends \
|
||||
libtool autoconf automake pkgconf stunnel4 \
|
||||
libpsl-dev:i386 libbrotli-dev:i386 libzstd-dev:i386 \
|
||||
${{ matrix.build.install_packages }}
|
||||
name: 'install prereqs'
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'pytest')
|
||||
run: |
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends \
|
||||
apache2 apache2-dev libnghttp2-dev vsftpd
|
||||
name: 'install prereqs for pytest'
|
||||
|
||||
- if: startsWith(matrix.build.container, 'alpine')
|
||||
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 py3-impacket py3-asn1 py3-six py3-pycryptodomex perl-time-hires openssh stunnel sudo git
|
||||
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 \
|
||||
py3-impacket py3-asn1 py3-six py3-pycryptodomex \
|
||||
perl-time-hires openssh stunnel sudo git
|
||||
name: 'install dependencies'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'gcc-11')
|
||||
run: |
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa
|
||||
sudo apt-get update
|
||||
sudo apt-get install gcc-11
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
|
||||
sudo update-alternatives --set gcc /usr/bin/gcc-11
|
||||
gcc --version
|
||||
name: 'install gcc-11'
|
||||
- name: 'Fix kernel mmap rnd bits'
|
||||
# Asan in llvm 14 provided in ubuntu 22.04 is incompatible with
|
||||
# high-entropy ASLR in much newer kernels that GitHub runners are
|
||||
# using leading to random crashes: https://reviews.llvm.org/D148280
|
||||
# See https://github.com/actions/runner-images/issues/9491
|
||||
continue-on-error: true
|
||||
run: sudo sysctl vm.mmap_rnd_bits=28
|
||||
|
||||
- name: cache bearssl
|
||||
- name: 'cache bearssl'
|
||||
if: contains(matrix.build.install_steps, 'bearssl')
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-bearssl
|
||||
env:
|
||||
cache-name: cache-bearssl
|
||||
with:
|
||||
path: /home/runner/bearssl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-bearssl-${{ env.bearssl-version }}
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.bearssl-version }}
|
||||
|
||||
- name: 'build bearssl'
|
||||
if: contains(matrix.build.install_steps, 'bearssl') && steps.cache-bearssl.outputs.cache-hit != 'true'
|
||||
@ -228,131 +343,188 @@ jobs:
|
||||
cp inc/*.h $HOME/bearssl/include
|
||||
cp build/libbearssl.* $HOME/bearssl/lib
|
||||
|
||||
- name: cache libressl
|
||||
- name: 'cache libressl'
|
||||
if: contains(matrix.build.install_steps, 'libressl')
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-libressl
|
||||
env:
|
||||
cache-name: cache-libressl
|
||||
with:
|
||||
path: /home/runner/libressl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-libressl-${{ env.libressl-version }}
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.libressl-version }}
|
||||
|
||||
- name: 'build libressl'
|
||||
if: contains(matrix.build.install_steps, 'libressl') && steps.cache-libressl.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.libressl-version }} https://github.com/libressl-portable/portable.git libressl-git
|
||||
git clone --quiet --depth=1 -b v${{ env.libressl-version }} https://github.com/libressl-portable/portable.git libressl-git
|
||||
cd libressl-git
|
||||
./autogen.sh
|
||||
./configure --prefix=$HOME/libressl
|
||||
./configure --disable-dependency-tracking --prefix=$HOME/libressl
|
||||
make install
|
||||
|
||||
- name: cache mbedtls
|
||||
- name: 'cache wolfssl (all)'
|
||||
if: contains(matrix.build.install_steps, 'wolfssl-all')
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-wolfssl-all
|
||||
env:
|
||||
cache-name: cache-wolfssl-all
|
||||
with:
|
||||
path: /home/runner/wolfssl-all
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.wolfssl-version }}
|
||||
|
||||
- name: 'build wolfssl (all)'
|
||||
if: contains(matrix.build.install_steps, 'wolfssl-all') && steps.cache-wolfssl-all.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v${{ env.wolfssl-version }}-stable.tar.gz
|
||||
tar -xzf v${{ env.wolfssl-version }}-stable.tar.gz
|
||||
cd wolfssl-${{ env.wolfssl-version }}-stable
|
||||
./autogen.sh
|
||||
./configure --disable-dependency-tracking --enable-tls13 --enable-harden --prefix=$HOME/wolfssl-all --enable-all
|
||||
make install
|
||||
|
||||
- name: 'cache wolfssl (opensslextra)'
|
||||
if: contains(matrix.build.install_steps, 'wolfssl-opensslextra')
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-wolfssl-opensslextra
|
||||
env:
|
||||
cache-name: cache-wolfssl-opensslextra
|
||||
with:
|
||||
path: /home/runner/wolfssl-opensslextra
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.wolfssl-version }}
|
||||
|
||||
- name: 'build wolfssl (opensslextra)'
|
||||
if: contains(matrix.build.install_steps, 'wolfssl-opensslextra') && steps.cache-wolfssl-opensslextra.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v${{ env.wolfssl-version }}-stable.tar.gz
|
||||
tar -xzf v${{ env.wolfssl-version }}-stable.tar.gz
|
||||
cd wolfssl-${{ env.wolfssl-version }}-stable
|
||||
./autogen.sh
|
||||
./configure --disable-dependency-tracking --enable-tls13 --enable-harden --prefix=$HOME/wolfssl-opensslextra --enable-opensslextra
|
||||
make install
|
||||
|
||||
- name: 'cache mbedtls'
|
||||
if: contains(matrix.build.install_steps, 'mbedtls')
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-mbedtls
|
||||
env:
|
||||
cache-name: cache-mbedtls
|
||||
with:
|
||||
path: /home/runner/mbedtls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-mbedtls-${{ env.mbedtls-version }}
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mbedtls-version }}
|
||||
|
||||
- name: 'build mbedtls'
|
||||
if: contains(matrix.build.install_steps, 'mbedtls') && steps.cache-mbedtls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.mbedtls-version }} https://github.com/ARMmbed/mbedtls
|
||||
git clone --quiet --depth=1 -b v${{ env.mbedtls-version }} https://github.com/Mbed-TLS/mbedtls
|
||||
cd mbedtls
|
||||
make DESTDIR=$HOME/mbedtls install
|
||||
git submodule update --init --depth=1
|
||||
cmake -B . -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=$HOME/mbedtls \
|
||||
-DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF
|
||||
cmake --build .
|
||||
cmake --install .
|
||||
|
||||
- name: cache openssl3
|
||||
if: contains(matrix.build.install_steps, 'openssl3')
|
||||
uses: actions/cache@v4
|
||||
id: cache-openssl3
|
||||
- name: 'cache openssl (thread sanitizer)'
|
||||
if: contains(matrix.build.install_steps, 'openssl-tsan')
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-openssl-tsan
|
||||
env:
|
||||
cache-name: cache-openssl3
|
||||
cache-name: cache-openssl-tsan
|
||||
with:
|
||||
path: /home/runner/openssl3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.openssl3-version }}
|
||||
path: /home/runner/openssl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.openssl-version }}
|
||||
|
||||
- name: 'install openssl3'
|
||||
if: contains(matrix.build.install_steps, 'openssl3') && steps.cache-openssl3.outputs.cache-hit != 'true'
|
||||
- name: 'build openssl (thread sanitizer)'
|
||||
if: contains(matrix.build.install_steps, 'openssl-tsan') && steps.cache-openssl-tsan.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.openssl3-version }} https://github.com/openssl/openssl
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.openssl-version }} https://github.com/openssl/openssl
|
||||
cd openssl
|
||||
./config --prefix=$HOME/openssl3 --libdir=$HOME/openssl3/lib
|
||||
CC="clang" CFLAGS="-fsanitize=thread" LDFLAGS="-fsanitize=thread" ./config --prefix=$HOME/openssl --libdir=lib
|
||||
make -j1 install_sw
|
||||
|
||||
- name: cache quictls
|
||||
- name: 'cache quictls'
|
||||
if: contains(matrix.build.install_steps, 'quictls')
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-quictls
|
||||
env:
|
||||
cache-name: cache-quictls
|
||||
with:
|
||||
path: /home/runner/quictls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-quictls-${{ env.quictls-version }}
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.quictls-version }}-quic1
|
||||
|
||||
- name: 'build quictls'
|
||||
if: contains(matrix.build.install_steps, 'quictls') && steps.cache-quictls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }} https://github.com/quictls/openssl
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }}-quic1 https://github.com/quictls/openssl
|
||||
cd openssl
|
||||
./config --prefix=$HOME/quictls --libdir=$HOME/quictls/lib
|
||||
./config --prefix=$HOME/quictls --libdir=lib
|
||||
make -j1 install_sw
|
||||
|
||||
- name: cache msh3
|
||||
- name: 'cache msh3'
|
||||
if: contains(matrix.build.install_steps, 'msh3')
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-msh3
|
||||
env:
|
||||
cache-name: cache-msh3
|
||||
with:
|
||||
path: /home/runner/msh3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-msh3-${{ env.msh3-version }}
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.msh3-version }}
|
||||
|
||||
- name: 'build msh3'
|
||||
if: contains(matrix.build.install_steps, 'msh3') && steps.cache-msh3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet -b ${{ env.msh3-version }} --depth=1 --recursive https://github.com/nibanks/msh3
|
||||
cd msh3 && mkdir build && cd build
|
||||
cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$HOME/msh3 ..
|
||||
git clone --quiet --depth=1 -b v${{ env.msh3-version }} --recursive https://github.com/nibanks/msh3
|
||||
cd msh3
|
||||
cmake -B . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$HOME/msh3
|
||||
cmake --build .
|
||||
cmake --install .
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'rust')
|
||||
run: |
|
||||
cd $HOME
|
||||
curl -sSf --compressed https://sh.rustup.rs/ | sh -s -- -y
|
||||
source $HOME/.cargo/env
|
||||
rustup toolchain install nightly
|
||||
name: 'install rust'
|
||||
- name: 'cache awslc'
|
||||
if: contains(matrix.build.install_steps, 'awslc')
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-awslc
|
||||
env:
|
||||
cache-name: cache-awslc
|
||||
with:
|
||||
path: /home/runner/awslc
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }}
|
||||
|
||||
- name: cache rustls
|
||||
- name: 'build awslc'
|
||||
if: contains(matrix.build.install_steps, 'awslc') && steps.cache-awslc.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \
|
||||
https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz
|
||||
tar xzf v${{ env.awslc-version }}.tar.gz
|
||||
mkdir aws-lc-${{ env.awslc-version }}-build
|
||||
cd aws-lc-${{ env.awslc-version }}-build
|
||||
cmake -G Ninja -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }}
|
||||
cmake --build .
|
||||
cmake --install .
|
||||
|
||||
- name: 'cache rustls'
|
||||
if: contains(matrix.build.install_steps, 'rustls')
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-rustls
|
||||
env:
|
||||
cache-name: cache-rustls
|
||||
with:
|
||||
path: /home/runner/rustls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-rustls-${{ env.rustls-version }}
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.rustls-version }}
|
||||
|
||||
- name: 'install rust'
|
||||
if: contains(matrix.build.install_steps, 'rust') && steps.cache-rustls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
curl -sSf --compressed https://sh.rustup.rs/ | sh -s -- -y
|
||||
source $HOME/.cargo/env
|
||||
rustup toolchain install nightly
|
||||
|
||||
- name: 'build rustls'
|
||||
if: contains(matrix.build.install_steps, 'rustls') && steps.cache-rustls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.rustls-version }} --recursive https://github.com/rustls/rustls-ffi.git
|
||||
git clone --quiet --depth=1 -b v${{ env.rustls-version }} --recursive https://github.com/rustls/rustls-ffi.git
|
||||
cd rustls-ffi
|
||||
make DESTDIR=$HOME/rustls install
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'hyper')
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 https://github.com/hyperium/hyper.git
|
||||
cd $HOME/hyper
|
||||
RUSTFLAGS="--cfg hyper_unstable_ffi" cargo +nightly rustc --features client,http1,http2,ffi -Z unstable-options --crate-type cdylib
|
||||
echo "LD_LIBRARY_PATH=$HOME/hyper/target/debug:/usr/local/lib" >> $GITHUB_ENV
|
||||
name: 'install hyper'
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'intel')
|
||||
run: |
|
||||
cd /tmp
|
||||
@ -363,72 +535,122 @@ jobs:
|
||||
printenv >> $GITHUB_ENV
|
||||
name: 'install Intel compilers'
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'pytest')
|
||||
run: |
|
||||
sudo apt-get install apache2 apache2-dev libnghttp2-dev
|
||||
sudo python3 -m pip install -r tests/http/requirements.txt
|
||||
name: 'install pytest and apach2-dev'
|
||||
|
||||
- name: cache mod_h2
|
||||
if: contains(matrix.build.install_steps, 'pytest')
|
||||
uses: actions/cache@v4
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
|
||||
- name: 'build mod_h2'
|
||||
if: contains(matrix.build.install_steps, 'pytest') && steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
|
||||
- name: 'install mod_h2'
|
||||
if: contains(matrix.build.install_steps, 'pytest')
|
||||
run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
|
||||
- run: autoreconf -fi
|
||||
if: ${{ matrix.build.configure }}
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
- name: 'configure'
|
||||
run: |
|
||||
[[ '${{ matrix.build.install_steps }}' = *'awslc'* ]] && sudo apt remove --yes libssl-dev
|
||||
if [ -n '${{ matrix.build.PKG_CONFIG_PATH }}' ]; then
|
||||
export PKG_CONFIG_PATH="${{ matrix.build.PKG_CONFIG_PATH }}"
|
||||
fi
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake -B . -G Ninja \
|
||||
-DCMAKE_C_COMPILER_TARGET=$(uname -m)-pc-linux-gnu -DBUILD_STATIC_LIBS=ON \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON \
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON \
|
||||
${{ matrix.build.generate }}
|
||||
else
|
||||
${{ matrix.build.configure-prefix }} \
|
||||
./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
|
||||
${{ matrix.build.configure }}
|
||||
fi
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
- name: 'configure log'
|
||||
if: ${{ !cancelled() }}
|
||||
run: cat config.log CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true
|
||||
|
||||
- run: |
|
||||
- name: 'curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'test configs'
|
||||
run: |
|
||||
cat tests/config || true
|
||||
cat tests/http/config.ini || true
|
||||
|
||||
- name: 'build'
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
${{ matrix.build.make-prefix }} cmake --build . --verbose
|
||||
else
|
||||
${{ matrix.build.make-prefix }} make V=1
|
||||
fi
|
||||
|
||||
- name: 'single-use function check'
|
||||
if: ${{ contains(matrix.build.configure, '--disable-unity') || contains(matrix.build.generate, '-DCMAKE_UNITY_BUILD=OFF') }}
|
||||
run: |
|
||||
git config --global --add safe.directory "*"
|
||||
./scripts/singleuse.pl ${{ matrix.build.singleuse }} lib/.libs/libcurl.a
|
||||
name: single-use function check
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
libcurla=lib/libcurl.a
|
||||
else
|
||||
libcurla=lib/.libs/libcurl.a
|
||||
fi
|
||||
./scripts/singleuse.pl --unit ${libcurla}
|
||||
|
||||
- run: ./src/curl -V
|
||||
name: 'check curl -V output'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
- run: cmake --install . --prefix $HOME/curl --strip
|
||||
if: ${{ matrix.build.generate }}
|
||||
name: 'cmake install'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
- name: 'build tests'
|
||||
if: ${{ matrix.build.install_steps != 'skipall' }}
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake --build . --verbose --target testdeps
|
||||
else
|
||||
make V=1 -C tests
|
||||
fi
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
- name: 'install test prereqs'
|
||||
if: ${{ matrix.build.install_steps != 'skipall' && matrix.build.container == null }}
|
||||
run: |
|
||||
sudo python3 -m pip install --break-system-packages -r tests/requirements.txt
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'pytest')
|
||||
# run for `tests` directory, so pytest does not pick up any other
|
||||
# packages we might have built here
|
||||
run:
|
||||
pytest -v tests
|
||||
name: 'run pytest'
|
||||
- name: 'run tests'
|
||||
if: ${{ matrix.build.install_steps != 'skipall' && matrix.build.install_steps != 'skiprun' }}
|
||||
timeout-minutes: ${{ contains(matrix.build.install_packages, 'valgrind') && 30 || 15 }}
|
||||
run: |
|
||||
export TFLAGS='${{ matrix.build.tflags }}'
|
||||
if [ -z '${{ matrix.build.torture }}' ]; then
|
||||
if [[ '${{ matrix.build.install_packages }}' = *'valgrind'* ]]; then
|
||||
TFLAGS+=' -j6'
|
||||
fi
|
||||
if [[ '${{ matrix.build.install_packages }}' = *'heimdal-dev'* ]]; then
|
||||
TFLAGS+=' ~2077 ~2078' # valgrind errors
|
||||
fi
|
||||
fi
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake --build . --verbose --target ${{ matrix.build.torture && 'test-torture' || 'test-ci' }}
|
||||
else
|
||||
make V=1 ${{ matrix.build.torture && 'test-torture' || 'test-ci' }}
|
||||
fi
|
||||
|
||||
- name: 'install pytest prereqs'
|
||||
if: contains(matrix.build.install_steps, 'pytest')
|
||||
run: |
|
||||
sudo python3 -m pip install --break-system-packages -r tests/http/requirements.txt
|
||||
|
||||
- name: 'run pytest'
|
||||
if: contains(matrix.build.install_steps, 'pytest')
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
cmake --build . --verbose --target curl-pytest-ci
|
||||
else
|
||||
make V=1 pytest-ci
|
||||
fi
|
||||
|
||||
- name: 'build examples'
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.generate }}' ]; then
|
||||
${{ matrix.build.make-prefix }} cmake --build . --verbose --target curl-examples
|
||||
else
|
||||
${{ matrix.build.make-prefix }} make V=1 examples
|
||||
fi
|
||||
|
93
deps/curl/.github/workflows/linux32.yml
vendored
93
deps/curl/.github/workflows/linux32.yml
vendored
@ -1,93 +0,0 @@
|
||||
# Copyright (C) Dan Fandrich
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Linux 32-bit
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 3
|
||||
|
||||
jobs:
|
||||
linux-i686:
|
||||
name: ${{ matrix.build.name }}
|
||||
runs-on: 'ubuntu-22.04'
|
||||
timeout-minutes: 90
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: Linux i686
|
||||
install_packages: gcc-11-i686-linux-gnu libssl-dev:i386 zlib1g-dev:i386 libpsl-dev:i386 libbrotli-dev:i386 libzstd-dev:i386
|
||||
configure: --enable-debug --enable-websockets --with-openssl --host=i686-linux-gnu CC=i686-linux-gnu-gcc-11 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig CPPFLAGS=-I/usr/include/i386-linux-gnu LDFLAGS=-L/usr/lib/i386-linux-gnu
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install_packages }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: ./src/curl -V
|
||||
name: 'check curl -V output'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
735
deps/curl/.github/workflows/macos.yml
vendored
735
deps/curl/.github/workflows/macos.yml
vendored
@ -4,16 +4,14 @@
|
||||
|
||||
name: macOS
|
||||
|
||||
on:
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -24,9 +22,7 @@ on:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
@ -39,205 +35,556 @@ concurrency:
|
||||
|
||||
permissions: {}
|
||||
|
||||
# Deprecated Apple APIs and the macos-version-min value required to avoid
|
||||
# deprecation warnings with llvm/clang:
|
||||
#
|
||||
# - 10.7 Lion (2011) - GSS
|
||||
# - 10.8 Mountain Lion (2012) - CFURLCreateDataAndPropertiesFromResource (used by curl Secure Transport code)
|
||||
# - 10.9 Maverick (2013) - LDAP
|
||||
# - 10.14 Mojave (2018) - Secure Transport
|
||||
#
|
||||
# For Secure Transport, curl implements features that require a target
|
||||
# newer than the 10.8 required by `CFURLCreateDataAndPropertiesFromResource`.
|
||||
# In this case `-Wno-deprecated-declarations` still comes handy to pacify
|
||||
# deprecation warnings, though the real solution would be to avoid calling
|
||||
# that function.
|
||||
|
||||
env:
|
||||
DEVELOPER_DIR: /Applications/Xcode_14.0.1.app/Contents/Developer
|
||||
MAKEFLAGS: -j 5
|
||||
LDFLAGS: -w # suppress 'object file was built for newer macOS version than being linked' warnings
|
||||
MAKEFLAGS: -j 4
|
||||
|
||||
jobs:
|
||||
autotools:
|
||||
name: ${{ matrix.build.name }}
|
||||
macos:
|
||||
name: "${{ matrix.build.generate && 'CM' || 'AM' }} ${{ matrix.compiler }} ${{ matrix.build.name }}"
|
||||
runs-on: 'macos-latest'
|
||||
timeout-minutes: 90
|
||||
timeout-minutes: 45
|
||||
env:
|
||||
DEVELOPER_DIR: "/Applications/Xcode${{ matrix.build.xcode && format('_{0}', matrix.build.xcode) || '' }}.app/Contents/Developer"
|
||||
CC: ${{ matrix.compiler }}
|
||||
CFLAGS: ''
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
compiler: [clang, llvm@15, gcc-12]
|
||||
build:
|
||||
- name: normal
|
||||
install: nghttp2
|
||||
configure: --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: debug
|
||||
install: nghttp2
|
||||
configure: --enable-debug --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh2
|
||||
install: nghttp2 libssh2
|
||||
configure: --enable-debug --with-libssh2 --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh-c-ares
|
||||
install: openssl nghttp2 libssh
|
||||
configure: --enable-debug --with-libssh --with-openssl=/usr/local/opt/openssl --enable-ares --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh
|
||||
install: openssl nghttp2 libssh
|
||||
configure: --enable-debug --with-libssh --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: c-ares
|
||||
install: nghttp2
|
||||
configure: --enable-debug --enable-ares --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: HTTP only
|
||||
install: nghttp2
|
||||
configure: |
|
||||
--enable-debug \
|
||||
--enable-maintainer-mode \
|
||||
--disable-alt-svc \
|
||||
--disable-dict \
|
||||
--disable-file \
|
||||
--disable-ftp \
|
||||
--disable-gopher \
|
||||
--disable-imap \
|
||||
--disable-ldap \
|
||||
--disable-pop3 \
|
||||
--disable-rtmp \
|
||||
--disable-rtsp \
|
||||
--disable-scp \
|
||||
--disable-sftp \
|
||||
--disable-shared \
|
||||
--disable-smb \
|
||||
--disable-smtp \
|
||||
--disable-telnet \
|
||||
--disable-tftp \
|
||||
--disable-unix-sockets \
|
||||
--without-brotli \
|
||||
--without-gssapi \
|
||||
--without-libidn2 \
|
||||
# automake
|
||||
- name: '!ssl !debug brotli zstd'
|
||||
compiler: clang
|
||||
install: brotli zstd
|
||||
configure: --without-ssl --with-brotli --with-zstd
|
||||
macos-version-min: '10.9'
|
||||
- name: '!ssl !debug'
|
||||
compiler: gcc-12
|
||||
configure: --without-ssl
|
||||
macos-version-min: '10.9'
|
||||
- name: '!ssl'
|
||||
compiler: clang
|
||||
configure: --enable-debug --without-ssl
|
||||
macos-version-min: '10.9'
|
||||
- name: '!ssl libssh2 AppleIDN'
|
||||
compiler: clang
|
||||
configure: --enable-debug --with-libssh2=$(brew --prefix libssh2) --without-ssl --with-apple-idn
|
||||
macos-version-min: '10.9'
|
||||
- name: 'OpenSSL libssh c-ares'
|
||||
compiler: clang
|
||||
install: libssh
|
||||
configure: --enable-debug --with-libssh --with-openssl=$(brew --prefix openssl) --enable-ares
|
||||
macos-version-min: '10.9'
|
||||
- name: 'OpenSSL libssh'
|
||||
compiler: llvm@15
|
||||
install: libssh
|
||||
configure: --enable-debug --with-libssh --with-openssl=$(brew --prefix openssl)
|
||||
macos-version-min: '10.9'
|
||||
- name: '!ssl c-ares'
|
||||
compiler: clang
|
||||
configure: --enable-debug --enable-ares --without-ssl
|
||||
macos-version-min: '10.9'
|
||||
- name: '!ssl HTTP-only'
|
||||
compiler: clang
|
||||
configure: >-
|
||||
--enable-debug
|
||||
--disable-alt-svc --disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap
|
||||
--disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp
|
||||
--disable-shared --disable-smb --disable-smtp --disable-telnet --disable-tftp --disable-unix-sockets
|
||||
--without-brotli --without-gssapi --without-libidn2 --without-libpsl --without-librtmp --without-libssh2
|
||||
--without-nghttp2 --without-ntlm-auth --without-ssl --without-zlib --without-zstd
|
||||
|
||||
macos-version-min: '10.15' # Catalina (2019)
|
||||
- name: 'SecureTransport libssh2'
|
||||
compiler: clang
|
||||
configure: --enable-debug --with-secure-transport --with-libssh2=$(brew --prefix libssh2)
|
||||
macos-version-min: '10.8'
|
||||
- name: 'SecureTransport libssh2 10.12'
|
||||
compiler: clang
|
||||
configure: --enable-debug --with-secure-transport --with-libssh2=$(brew --prefix libssh2)
|
||||
macos-version-min: '10.12' # for monotonic timers
|
||||
cflags: '-Wno-deprecated-declarations'
|
||||
- name: 'SecureTransport libssh2'
|
||||
compiler: gcc-12
|
||||
configure: --enable-debug --with-secure-transport --with-libssh2=$(brew --prefix libssh2)
|
||||
macos-version-min: '10.8'
|
||||
- name: 'LibreSSL +examples'
|
||||
compiler: clang
|
||||
install: libressl
|
||||
configure: --enable-debug --with-openssl=$(brew --prefix libressl)
|
||||
macos-version-min: '10.9'
|
||||
- name: 'OpenSSL'
|
||||
compiler: clang
|
||||
configure: --enable-debug --with-openssl=$(brew --prefix openssl)
|
||||
macos-version-min: '10.9'
|
||||
- name: 'OpenSSL event-based'
|
||||
compiler: clang
|
||||
configure: --enable-debug --with-openssl=$(brew --prefix openssl)
|
||||
macos-version-min: '10.9'
|
||||
tflags: -e
|
||||
- name: 'OpenSSL libssh2 !ldap 10.15'
|
||||
compiler: clang
|
||||
configure: --enable-debug --disable-ldap --with-openssl=$(brew --prefix openssl)
|
||||
macos-version-min: '10.15'
|
||||
# cmake
|
||||
- name: 'OpenSSL ws gsasl AppleIDN'
|
||||
install: gsasl
|
||||
generate: -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) -DCURL_USE_GSASL=ON -DUSE_APPLE_IDN=ON
|
||||
macos-version-min: '10.9'
|
||||
- name: 'OpenSSL +static libssh +examples'
|
||||
install: libssh
|
||||
generate: -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) -DBUILD_STATIC_LIBS=ON -DCURL_USE_LIBSSH2=OFF -DCURL_USE_LIBSSH=ON
|
||||
macos-version-min: '10.9'
|
||||
- name: 'SecureTransport ws debug'
|
||||
generate: -DCURL_USE_SECTRANSP=ON -DENABLE_DEBUG=ON
|
||||
macos-version-min: '10.8'
|
||||
- name: 'LibreSSL !ldap heimdal c-ares +examples'
|
||||
install: libressl heimdal
|
||||
generate: -DOPENSSL_ROOT_DIR=$(brew --prefix libressl) -DENABLE_ARES=ON -DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=$(brew --prefix heimdal) -DCURL_DISABLE_LDAP=ON
|
||||
macos-version-min: '10.15'
|
||||
- name: 'wolfSSL !ldap brotli zstd'
|
||||
install: brotli wolfssl zstd
|
||||
generate: -DCURL_USE_WOLFSSL=ON -DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_DISABLE_LDAP=ON
|
||||
macos-version-min: '10.15'
|
||||
- name: 'mbedTLS !ldap brotli zstd'
|
||||
install: brotli mbedtls zstd
|
||||
generate: -DCURL_USE_MBEDTLS=ON -DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_DISABLE_LDAP=ON
|
||||
macos-version-min: '10.15'
|
||||
- name: 'GnuTLS !ldap krb5'
|
||||
install: gnutls nettle krb5
|
||||
generate: -DCURL_USE_GNUTLS=ON -DCURL_USE_OPENSSL=OFF -DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=$(brew --prefix krb5) -DCURL_DISABLE_LDAP=ON
|
||||
macos-version-min: '10.15'
|
||||
- name: 'OpenSSL torture !FTP'
|
||||
generate: -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DENABLE_THREADED_RESOLVER=OFF -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) -DCURL_BROTLI=ON -DCURL_ZSTD=ON
|
||||
tflags: -t --shallow=25 !FTP
|
||||
macos-version-min: '10.9'
|
||||
torture: true
|
||||
- name: 'OpenSSL torture FTP'
|
||||
generate: -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DENABLE_THREADED_RESOLVER=OFF -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) -DCURL_BROTLI=ON -DCURL_ZSTD=ON
|
||||
tflags: -t --shallow=20 FTP
|
||||
macos-version-min: '10.9'
|
||||
torture: true
|
||||
exclude:
|
||||
- { compiler: llvm@15, build: { macos-version-min: '10.15' } }
|
||||
- { compiler: llvm@15, build: { torture: true } }
|
||||
- { compiler: gcc-12, build: { torture: true } }
|
||||
# opt out jobs from combinations that have the compiler set manually
|
||||
- { compiler: llvm@15, build: { compiler: 'clang' } }
|
||||
- { compiler: llvm@15, build: { compiler: 'gcc-12' } }
|
||||
- { compiler: gcc-12, build: { compiler: 'clang' } }
|
||||
- { compiler: gcc-12, build: { compiler: 'llvm@15' } }
|
||||
- { compiler: clang, build: { compiler: 'gcc-12' } }
|
||||
- { compiler: clang, build: { compiler: 'llvm@15' } }
|
||||
|
||||
steps:
|
||||
- name: 'brew install'
|
||||
# Run this command with retries because of spurious failures seen
|
||||
# while running the tests, for example
|
||||
# https://github.com/curl/curl/runs/4095721123?check_suite_focus=true
|
||||
run: |
|
||||
echo ${{ matrix.build.generate && 'ninja' || 'automake libtool' }} \
|
||||
pkg-config libpsl libssh2 nghttp2 stunnel ${{ matrix.build.install }} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done
|
||||
|
||||
- name: 'brew unlink openssl'
|
||||
run: |
|
||||
if test -d $(brew --prefix)/include/openssl; then
|
||||
brew unlink openssl
|
||||
fi
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: 'toolchain versions'
|
||||
run: |
|
||||
[[ '${{ matrix.compiler }}' = 'llvm'* ]] && CC="$(brew --prefix ${{ matrix.compiler }})/bin/clang"
|
||||
[[ '${{ matrix.compiler }}' = 'gcc'* ]] && "${CC}" --print-sysroot
|
||||
which "${CC}"; "${CC}" --version || true
|
||||
xcodebuild -version || true
|
||||
xcrun --sdk macosx --show-sdk-path 2>/dev/null || true
|
||||
xcrun --sdk macosx --show-sdk-version || true
|
||||
echo '::group::macros predefined'; "${CC}" -dM -E - < /dev/null | sort || true; echo '::endgroup::'
|
||||
echo '::group::brew packages installed'; ls -l "$(brew --prefix)/opt"; echo '::endgroup::'
|
||||
|
||||
- name: 'autoreconf'
|
||||
if: ${{ matrix.build.configure }}
|
||||
run: autoreconf -fi
|
||||
|
||||
- name: 'configure'
|
||||
run: |
|
||||
if [[ '${{ matrix.compiler }}' = 'llvm'* ]]; then
|
||||
CC="$(brew --prefix ${{ matrix.compiler }})/bin/clang"
|
||||
CC+=" --sysroot=$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)"
|
||||
CC+=" --target=$(uname -m)-apple-darwin"
|
||||
fi
|
||||
|
||||
if [[ '${{ matrix.compiler }}' = 'gcc'* ]]; then
|
||||
libgccdir="$(dirname "$("${CC}" -print-libgcc-file-name)")"
|
||||
echo '::group::gcc include-fixed details'; find "${libgccdir}/include-fixed" | sort; echo '::endgroup::'
|
||||
for f in dispatch os AvailabilityInternal.h stdio.h; do
|
||||
if [ -r "${libgccdir}/include-fixed/${f}" ]; then
|
||||
echo "Zap gcc hack: '${libgccdir}/include-fixed/${f}'"
|
||||
mv "${libgccdir}/include-fixed/${f}" "${libgccdir}/include-fixed/${f}-BAK"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -n '${{ matrix.build.configure }}' ]; then
|
||||
export CFLAGS
|
||||
if [[ '${{ matrix.compiler }}' = 'llvm'* ]]; then
|
||||
options+=" --target=$(uname -m)-apple-darwin"
|
||||
fi
|
||||
CFLAGS+=' ${{ matrix.build.cflags }}'
|
||||
if [ '${{ matrix.compiler }}' != 'clang' ]; then
|
||||
options+=" --with-sysroot=$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)"
|
||||
CFLAGS+=" --sysroot=$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)"
|
||||
fi
|
||||
CFLAGS+=' -mmacosx-version-min=${{ matrix.build.macos-version-min }}'
|
||||
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
|
||||
--disable-dependency-tracking \
|
||||
--with-libpsl=$(brew --prefix libpsl) \
|
||||
${{ matrix.build.configure }} ${options}
|
||||
else
|
||||
cmake -B bld -G Ninja -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.build.macos-version-min }} \
|
||||
"-DCMAKE_OSX_SYSROOT=$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)" \
|
||||
"-DCMAKE_C_COMPILER_TARGET=$(uname -m | sed 's/arm64/aarch64/')-apple-darwin$(uname -r)" \
|
||||
${{ matrix.build.generate }}
|
||||
fi
|
||||
|
||||
- name: 'configure log'
|
||||
if: ${{ !cancelled() }}
|
||||
run: cat bld/config.log bld/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'build-cert'
|
||||
if: contains(matrix.build.generate, '-DCURL_USE_SECTRANSP=ON') || contains(matrix.build.configure, '--with-secure-transport')
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.configure }}' ]; then
|
||||
make -C bld/tests/certs clean-certs
|
||||
make -C bld/tests/certs build-certs -j1
|
||||
else
|
||||
cmake --build bld --target clean-certs
|
||||
cmake --build bld --target build-certs --parallel 1
|
||||
fi
|
||||
|
||||
- name: 'build'
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.configure }}' ]; then
|
||||
make -C bld V=1
|
||||
else
|
||||
cmake --build bld --verbose
|
||||
fi
|
||||
|
||||
- name: 'curl version'
|
||||
run: bld/src/curl --disable --version
|
||||
|
||||
- name: 'build tests'
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.configure }}' ]; then
|
||||
make -C bld V=1 -C tests
|
||||
else
|
||||
cmake --build bld --target testdeps
|
||||
fi
|
||||
|
||||
- name: 'install test prereqs'
|
||||
run: |
|
||||
python3 -m venv $HOME/venv
|
||||
source $HOME/venv/bin/activate
|
||||
python3 -m pip install -r tests/requirements.txt
|
||||
|
||||
- name: 'run tests'
|
||||
timeout-minutes: ${{ matrix.build.torture && 20 || 10 }}
|
||||
run: |
|
||||
export TFLAGS='-j20 ${{ matrix.build.tflags }}'
|
||||
if [ -z '${{ matrix.build.torture }}' ]; then
|
||||
TFLAGS+=' ~2037 ~2041' # flaky
|
||||
if [[ '${{ matrix.compiler }}' = 'gcc'* ]]; then
|
||||
TFLAGS+=' ~RTSP' # 567 568 569 570 571 572 577 689 3100
|
||||
TFLAGS+=' ~1156 ~1539' # HTTP Content-Range, Content-Length
|
||||
if [[ -n '${{ matrix.build.configure }}' || \
|
||||
'${{ matrix.build.generate }}' = *'-DCURL_USE_SECTRANSP=ON'* ]]; then
|
||||
TFLAGS+=' ~2100' # 2100:'HTTP GET using DoH' https://github.com/curl/curl/actions/runs/9942146678/job/27462937524#step:15:5059
|
||||
fi
|
||||
if [[ '${{ matrix.build.configure }}' = *'--with-secure-transport'* || \
|
||||
'${{ matrix.build.generate }}' = *'-DCURL_USE_SECTRANSP=ON'* ]]; then
|
||||
TFLAGS+=' ~HTTP/2' # 2400 2401 2402 2403 2404 2406, Secure Transport + nghttp2
|
||||
else
|
||||
TFLAGS+=' ~2402 ~2404' # non-Secure Transport + nghttp2
|
||||
fi
|
||||
fi
|
||||
if [[ '${{ matrix.build.configure }}' = *'--with-secure-transport'* || \
|
||||
'${{ matrix.build.generate }}' = *'-DCURL_USE_SECTRANSP=ON'* ]]; then
|
||||
TFLAGS+=' ~313' # Secure Transport does not support crl file
|
||||
TFLAGS+=' ~1631 ~1632' # Secure Transport is not able to shutdown ftp over https gracefully yet
|
||||
fi
|
||||
fi
|
||||
source $HOME/venv/bin/activate
|
||||
rm -f $HOME/.curlrc
|
||||
if [ -n '${{ matrix.build.configure }}' ]; then
|
||||
make -C bld V=1 ${{ matrix.build.torture && 'test-torture' || 'test-ci' }}
|
||||
else
|
||||
cmake --build bld --target ${{ matrix.build.torture && 'test-torture' || 'test-ci' }}
|
||||
fi
|
||||
|
||||
- name: 'build examples'
|
||||
if: ${{ contains(matrix.build.name, '+examples') }}
|
||||
run: |
|
||||
if [ -n '${{ matrix.build.configure }}' ]; then
|
||||
make -C bld examples V=1
|
||||
else
|
||||
cmake --build bld --target curl-examples --verbose
|
||||
fi
|
||||
|
||||
combinations: # Test buildability with host OS, Xcode / SDK, compiler, target-OS, Secure Transport/not, built tool, combinations
|
||||
if: true # Set to `true` to enable this test matrix. It runs quickly.
|
||||
name: "${{ matrix.build == 'cmake' && 'CM' || 'AM' }} ${{ matrix.compiler }} ${{ matrix.image }} ${{ matrix.xcode }} ${{ matrix.config }}"
|
||||
runs-on: ${{ matrix.image }}
|
||||
timeout-minutes: 10
|
||||
env:
|
||||
DEVELOPER_DIR: "/Applications/Xcode${{ matrix.xcode && format('_{0}', matrix.xcode) || '' }}.app/Contents/Developer"
|
||||
CC: ${{ matrix.compiler }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config: [SecureTransport] # also: OpenSSL
|
||||
compiler: [gcc-12, gcc-13, gcc-14, llvm@15, llvm@18, clang]
|
||||
# Xcode support matrix as of 2024-07, with default macOS SDK versions and OS names, years:
|
||||
# * = default Xcode on the runner.
|
||||
# macos-13: 14.1, 14.2, 14.3.1, 15.0.1, 15.1,*15.2
|
||||
# macos-14: 15.0.1, 15.1, 15.2, 15.3,*15.4
|
||||
# macos-15: *16.0, 16.1
|
||||
# macOSSDK: 13.0, 13.1, 13.3, 14.0, 14.2, 14.2, 14.4, 14.5, 15.0, 15.1
|
||||
# Ventura (2022) Sonoma (2023) Sequoia (2024)
|
||||
# https://github.com/actions/runner-images/tree/main/images/macos
|
||||
# https://en.wikipedia.org/wiki/MacOS_version_history
|
||||
image: [macos-13, macos-14, macos-15]
|
||||
# Can skip these to reduce jobs:
|
||||
# 15.1 has the same default macOS SDK as 15.2 and identical test result.
|
||||
# 14.1, 15.4 not revealing new fallouts.
|
||||
#xcode: ['14.1', '14.2', '14.3.1', '15.0.1', '15.1', '15.2', '15.3', '15.4', '16.0', '16.1'] # all Xcode
|
||||
#xcode: ['14.1', '14.2', '14.3.1', '15.0.1' , '15.2', '15.3', '15.4', '16.0', '16.1'] # all SDK
|
||||
#xcode: [ '14.2', '14.3.1', '15.0.1' , '15.2', '15.3' , '16.0' ] # coverage
|
||||
xcode: [''] # default Xcodes
|
||||
macos-version-min: ['10.8']
|
||||
build: [autotools, cmake]
|
||||
exclude:
|
||||
# Combinations uncovered by runner images:
|
||||
- { image: macos-13, xcode: '15.3' }
|
||||
- { image: macos-13, xcode: '15.4' }
|
||||
- { image: macos-13, xcode: '16.0' }
|
||||
- { image: macos-13, xcode: '16.1' }
|
||||
- { image: macos-14, xcode: '14.1' }
|
||||
- { image: macos-14, xcode: '14.2' }
|
||||
- { image: macos-14, xcode: '14.3.1' }
|
||||
- { image: macos-14, xcode: '16.0' }
|
||||
- { image: macos-14, xcode: '16.1' }
|
||||
- { image: macos-15, xcode: '14.1' }
|
||||
- { image: macos-15, xcode: '14.2' }
|
||||
- { image: macos-15, xcode: '14.3.1' }
|
||||
- { image: macos-15, xcode: '15.0.1' }
|
||||
- { image: macos-15, xcode: '15.1' }
|
||||
- { image: macos-15, xcode: '15.2' }
|
||||
- { image: macos-15, xcode: '15.3' }
|
||||
- { image: macos-15, xcode: '15.4' }
|
||||
- { image: macos-13, compiler: 'llvm@18' }
|
||||
- { image: macos-14, compiler: 'llvm@18' }
|
||||
- { image: macos-15, compiler: 'llvm@15' }
|
||||
# Reduce build combinations, by dropping less interesting ones
|
||||
- { compiler: gcc-12, config: SecureTransport }
|
||||
- { compiler: gcc-13, build: cmake }
|
||||
- { compiler: gcc-13, image: macos-13 }
|
||||
- { compiler: gcc-14, config: SecureTransport }
|
||||
steps:
|
||||
- name: 'install autotools'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
run: |
|
||||
echo automake libtool | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: 'toolchain versions'
|
||||
run: |
|
||||
[[ '${{ matrix.compiler }}' = 'llvm'* ]] && CC="$(brew --prefix ${{ matrix.compiler }})/bin/clang"
|
||||
[[ '${{ matrix.compiler }}' = 'gcc'* ]] && "${CC}" --print-sysroot
|
||||
which "${CC}"; "${CC}" --version || true
|
||||
xcodebuild -version || true
|
||||
xcrun --sdk macosx --show-sdk-path 2>/dev/null || true
|
||||
xcrun --sdk macosx --show-sdk-version || true
|
||||
echo '::group::macros predefined'; "${CC}" -dM -E - < /dev/null | sort || true; echo '::endgroup::'
|
||||
echo '::group::brew packages preinstalled'; ls -l "$(brew --prefix)/opt"; echo '::endgroup::'
|
||||
|
||||
- name: 'autoreconf'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
run: autoreconf -fi
|
||||
|
||||
- name: 'configure / ${{ matrix.build }}'
|
||||
run: |
|
||||
if [[ '${{ matrix.compiler }}' = 'llvm'* ]]; then
|
||||
CC="$(brew --prefix ${{ matrix.compiler }})/bin/clang"
|
||||
CC+=" --sysroot=$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)"
|
||||
CC+=" --target=$(uname -m)-apple-darwin"
|
||||
fi
|
||||
|
||||
# gcc ships with an `include-fixed` header set, which overrides SDK
|
||||
# headers with the intent of making them compatible with gcc. The
|
||||
# source for these headers is:
|
||||
# https://github.com/gcc-mirror/gcc/tree/master/fixincludes
|
||||
# with extra Apple-specific patches applied from here for Homebrew:
|
||||
# https://github.com/iains/gcc-12-branch
|
||||
#
|
||||
# They pass through a generator phase at build-time which seems to
|
||||
# pick the SDK installed on the build machine (maintained by the
|
||||
# Homebrew project in our case) and patches it according to a set
|
||||
# of rules in `inclhack.def`.
|
||||
#
|
||||
# Homebrew builds and ships different binaries for different macOS
|
||||
# versions and CPUs, built on machines using the same OS version as
|
||||
# the target one. Each of these machines have a particular version
|
||||
# of Apple CommandLineTools with a default SDK version installed with
|
||||
# them.
|
||||
#
|
||||
# Then this binary gets installed onto the end-user machine,
|
||||
# matching the OS version at the time of installation.
|
||||
#
|
||||
# The problem with this approach is that the SDK version picked up
|
||||
# at gcc build-time has a high chance of being or becoming out of
|
||||
# sync with actual SDK installed on the end-user machine. This
|
||||
# can happen after upgrading the OS, Xcode, selecting an SDK version
|
||||
# manually, or other reasons.
|
||||
#
|
||||
# When the SDK versions do not match, the gcc hacks, instead of
|
||||
# improving compatibility the SDK, are actively _breaking_
|
||||
# compatibility, in an unexpected, hard to diagnose way.
|
||||
#
|
||||
# The SDK version used for gcc-hacks is not advertised. We can
|
||||
# extract the major SDK version from the generated gcc-hack header
|
||||
# files, assuming someone knows what to look for and where.
|
||||
#
|
||||
# Basically it also means that the same `gcc-N` Homebrew package
|
||||
# behaves differently depending on the OS it was built on. Causing
|
||||
# an explosion of build combination. It may also mean that a minor
|
||||
# gcc version bump is built against a different SDK version, and due
|
||||
# to the extra patch for the hack applied by Homebrew, there may
|
||||
# be extra changes as well.
|
||||
#
|
||||
# For GHA runners, it means that the default Xcode + OS combo have
|
||||
# and SDK mismatch in 8 out of 12 combinations (66%). All fail to
|
||||
# build, plus one more with matching SDK. This is 9 in total (75%)
|
||||
# that fail to build out of the box. These are the 3 lucky default
|
||||
# combinations that worked to build curl:
|
||||
# macos-14 + Xcode 15.0.1 + gcc-12, gcc-14
|
||||
#
|
||||
# Of all possible valid GHA runner, gcc, manually selected Xcode
|
||||
# combinations, 40% are broken.
|
||||
#
|
||||
# Compared to mainline llvm: llvm ships the same binaries regardless
|
||||
# of build-OS or environment, it contains no SDK-version-specific
|
||||
# hacks, and has no 3rd party patches. This still leaves some
|
||||
# occasional issues, but works much closer to expectations.
|
||||
#
|
||||
# Some of these hacks are helpful, in particular for fixing this
|
||||
# issue via math.h:
|
||||
# /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/math.h:53:5: error: #error "Unsupported value of
|
||||
# 53 | # error "Unsupported value of __FLT_EVAL_METHOD__."
|
||||
#
|
||||
# Errors seen in available CI combinations:
|
||||
# error: two or more data types in declaration specifiers # fatal error: AvailabilityInternalLegacy.h: No such file or directory
|
||||
# gcc-13 + macos-14 + Xcode 14.3.1
|
||||
# error: two or more data types in declaration specifiers
|
||||
# gcc-13 + macos-12 + Xcode 14.1, 14.2
|
||||
# gcc-13 + Xcode 15.0.1, 15.1, 5.2
|
||||
# error: expected ';' before 'extern'
|
||||
# gcc-12, gcc-14 + macos-12 + Xcode 14.1, 14.2
|
||||
# error: unknown type name 'dispatch_queue_t'
|
||||
# gcc-12 + macos-13 + Xcode 15.0.1, 15.1, 15.2
|
||||
# error: type defaults to 'int' in declaration of 'DISPATCH_DECL_FACTORY_CLASS_SWIFT' [-Wimplicit-int]
|
||||
# gcc-14 macos-13 Xcode 15.0.1, 15.1, 15.2
|
||||
# error: unknown type name 'FILE'
|
||||
# Xcode 16.0
|
||||
#
|
||||
# Unbreak Homebrew gcc builds by moving problematic SDK header overlay
|
||||
# directories/files out of the way:
|
||||
if [[ '${{ matrix.compiler }}' = 'gcc'* ]]; then
|
||||
# E.g.:
|
||||
# $(brew --prefix)/Cellar/gcc@11/11.4.0/lib/gcc/11/gcc/aarch64-apple-darwin23/11/include-fixed
|
||||
# $(brew --prefix)/Cellar/gcc@11/11.4.0/lib/gcc/11/gcc/x86_64-apple-darwin21/11/include-fixed
|
||||
# $(brew --prefix)/Cellar/gcc/14.1.0_1/lib/gcc/14/gcc/x86_64-apple-darwin21/14/include-fixed
|
||||
libgccdir="$(dirname "$("${CC}" -print-libgcc-file-name)")"
|
||||
echo '::group::gcc include-fixed details'; find "${libgccdir}/include-fixed" | sort; echo '::endgroup::'
|
||||
patch_out='dispatch os AvailabilityInternal.h'
|
||||
patch_out+=' stdio.h' # for Xcode 16 error: unknown type name 'FILE'
|
||||
for f in ${patch_out}; do
|
||||
if [ -r "${libgccdir}/include-fixed/${f}" ]; then
|
||||
echo "Zap gcc hack: '${libgccdir}/include-fixed/${f}'"
|
||||
mv "${libgccdir}/include-fixed/${f}" "${libgccdir}/include-fixed/${f}-BAK"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ '${{ matrix.build }}' = 'autotools' ]; then
|
||||
export CFLAGS
|
||||
if [[ '${{ matrix.compiler }}' = 'llvm'* ]]; then
|
||||
options+=" --target=$(uname -m)-apple-darwin"
|
||||
fi
|
||||
if [ '${{ matrix.compiler }}' != 'clang' ]; then
|
||||
options+=" --with-sysroot=$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)"
|
||||
CFLAGS+=" --sysroot=$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)"
|
||||
fi
|
||||
[ '${{ matrix.config }}' = 'OpenSSL' ] && options+=" --with-openssl=$(brew --prefix openssl)"
|
||||
[ '${{ matrix.config }}' = 'SecureTransport' ] && options+=' --with-secure-transport'
|
||||
CFLAGS+=' -mmacosx-version-min=${{ matrix.macos-version-min }}'
|
||||
# would pick up nghttp2, libidn2, but libssh2 is disabled by default
|
||||
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
|
||||
--disable-dependency-tracking \
|
||||
--disable-docs --disable-manual \
|
||||
--without-nghttp2 --without-libidn2 \
|
||||
--without-libpsl \
|
||||
--without-librtmp \
|
||||
--without-libssh2 \
|
||||
--without-nghttp2 \
|
||||
--without-ntlm-auth \
|
||||
--without-ssl \
|
||||
--without-zlib \
|
||||
--without-zstd
|
||||
${options}
|
||||
else
|
||||
[ '${{ matrix.config }}' = 'OpenSSL' ] && options+=' -DCURL_USE_OPENSSL=ON'
|
||||
[ '${{ matrix.config }}' = 'SecureTransport' ] && options+=' -DCURL_USE_SECTRANSP=ON'
|
||||
# would pick up nghttp2, libidn2, and libssh2
|
||||
cmake -B bld -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.macos-version-min }} \
|
||||
"-DCMAKE_OSX_SYSROOT=$(xcrun --sdk macosx --show-sdk-path 2>/dev/null)" \
|
||||
"-DCMAKE_C_COMPILER_TARGET=$(uname -m | sed 's/arm64/aarch64/')-apple-darwin$(uname -r)" \
|
||||
"-DCMAKE_IGNORE_PREFIX_PATH=$(brew --prefix)" \
|
||||
-DBUILD_LIBCURL_DOCS=OFF -DBUILD_MISC_DOCS=OFF -DENABLE_CURL_MANUAL=OFF \
|
||||
-DUSE_NGHTTP2=OFF -DUSE_LIBIDN2=OFF \
|
||||
-DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF \
|
||||
${options}
|
||||
fi
|
||||
|
||||
macosx-version-min: 10.15
|
||||
- name: SecureTransport http2
|
||||
install: nghttp2
|
||||
configure: --enable-debug --with-secure-transport --enable-websockets
|
||||
macosx-version-min: 10.8
|
||||
- name: gcc SecureTransport
|
||||
configure: CC=gcc-12 --enable-debug --with-secure-transport --enable-websockets --without-libpsl
|
||||
macosx-version-min: 10.8
|
||||
- name: OpenSSL http2
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: LibreSSL http2
|
||||
install: nghttp2 libressl
|
||||
configure: --enable-debug --with-openssl=/usr/local/opt/libressl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: torture
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
tflags: -n -t --shallow=25 !FTP
|
||||
macosx-version-min: 10.9
|
||||
- name: torture-ftp
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
tflags: -n -t --shallow=20 FTP
|
||||
macosx-version-min: 10.9
|
||||
- name: macOS 10.15
|
||||
install: nghttp2 libssh2 openssl
|
||||
configure: --enable-debug --disable-ldap --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.15
|
||||
steps:
|
||||
- run: echo libtool autoconf automake pkg-config libpsl ${{ matrix.build.install }} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
name: 'brew bundle'
|
||||
- name: 'configure log'
|
||||
if: ${{ !cancelled() }}
|
||||
run: cat bld/config.log bld/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true
|
||||
|
||||
# Run this command with retries because of spurious failures seen
|
||||
# while running the tests, for example
|
||||
# https://github.com/curl/curl/runs/4095721123?check_suite_focus=true
|
||||
- run: "while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done"
|
||||
name: 'brew install'
|
||||
- name: 'curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- run: |
|
||||
case "${{ matrix.build.install }}" in
|
||||
*openssl*)
|
||||
;;
|
||||
*)
|
||||
if test -d /usr/local/include/openssl; then
|
||||
brew unlink openssl
|
||||
fi;;
|
||||
esac
|
||||
name: 'brew unlink openssl'
|
||||
- name: 'build / ${{ matrix.build }}'
|
||||
run: make -C bld V=1 VERBOSE=1
|
||||
|
||||
- run: python3 -m pip install impacket
|
||||
name: 'pip3 install'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
env:
|
||||
CFLAGS: "-mmacosx-version-min=${{ matrix.build.macosx-version-min }}"
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }} ~1452"
|
||||
|
||||
cmake:
|
||||
name: cmake ${{ matrix.compiler.CC }} ${{ matrix.build.name }}
|
||||
runs-on: 'macos-latest'
|
||||
env: ${{ matrix.compiler }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
compiler:
|
||||
- CC: clang
|
||||
CXX: clang++
|
||||
CFLAGS: "-mmacosx-version-min=10.15 -Wno-deprecated-declarations"
|
||||
- CC: gcc-12
|
||||
CXX: g++-12
|
||||
CFLAGS: "-mmacosx-version-min=10.15 -Wno-error=undef -Wno-error=conversion"
|
||||
build:
|
||||
- name: OpenSSL
|
||||
install: nghttp2 openssl
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9
|
||||
- name: LibreSSL
|
||||
install: nghttp2 libressl
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/libressl -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON -DCMAKE_UNITY_BUILD=ON
|
||||
- name: libssh2
|
||||
install: nghttp2 openssl libssh2
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCURL_USE_LIBSSH2=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON
|
||||
- name: GnuTLS
|
||||
install: gnutls
|
||||
generate: -DCURL_USE_GNUTLS=ON -DCURL_USE_OPENSSL=OFF -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON -DCMAKE_SHARED_LINKER_FLAGS=-L/usr/local/lib -DCMAKE_EXE_LINKER_FLAGS=-L/usr/local/lib
|
||||
steps:
|
||||
- run: echo libtool autoconf automake pkg-config ${{ matrix.build.install }} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
name: 'brew bundle'
|
||||
|
||||
- run: "while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done"
|
||||
name: 'brew install'
|
||||
|
||||
- run: |
|
||||
case "${{ matrix.build.install }}" in
|
||||
*openssl*)
|
||||
;;
|
||||
*)
|
||||
if test -d /usr/local/include/openssl; then
|
||||
brew unlink openssl
|
||||
fi;;
|
||||
esac
|
||||
name: 'brew unlink openssl'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: cmake -S. -Bbuild -DCURL_WERROR=ON -DPICKY_COMPILER=ON ${{ matrix.build.generate }}
|
||||
name: 'cmake generate'
|
||||
|
||||
- run: cmake --build build
|
||||
name: 'cmake build'
|
||||
- name: 'curl version'
|
||||
run: bld/src/curl --disable --version
|
||||
|
35
deps/curl/.github/workflows/man-examples.yml
vendored
35
deps/curl/.github/workflows/man-examples.yml
vendored
@ -1,35 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: manpage examples
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
- 'docs/libcurl/opts/*.3'
|
||||
- '.github/scripts/verify-examples.pl'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
- 'docs/libcurl/opts/*.3'
|
||||
- '.github/scripts/verify-examples.pl'
|
||||
|
||||
jobs:
|
||||
verify:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: render nroff versions
|
||||
run: autoreconf -fi && ./configure --without-ssl --without-libpsl && make -C docs
|
||||
|
||||
- name: verify examples
|
||||
run: ./.github/scripts/verify-examples.pl docs/libcurl/curl*.3 docs/libcurl/opts/*.3
|
270
deps/curl/.github/workflows/ngtcp2-linux.yml
vendored
270
deps/curl/.github/workflows/ngtcp2-linux.yml
vendored
@ -1,270 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: ngtcp2-linux
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
group: ngtcp2-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 3
|
||||
quictls-version: 3.1.4+quic
|
||||
gnutls-version: 3.8.3
|
||||
wolfssl-version: master
|
||||
nghttp3-version: v1.1.0
|
||||
ngtcp2-version: v1.2.0
|
||||
nghttp2-version: v1.59.0
|
||||
mod_h2-version: v2.0.26
|
||||
|
||||
jobs:
|
||||
autotools:
|
||||
name: ${{ matrix.build.name }}
|
||||
runs-on: 'ubuntu-latest'
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: quictls
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug --disable-ntlm
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-openssl=$HOME/nghttpx
|
||||
- name: gnutls
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-gnutls=$HOME/nghttpx
|
||||
- name: wolfssl
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-wolfssl=$HOME/nghttpx
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 \
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev \
|
||||
nettle-dev libp11-kit-dev libtspi-dev libunistring-dev guile-2.2-dev libtasn1-bin \
|
||||
libtasn1-6-dev libidn2-0-dev gawk gperf libtss2-dev dns-root-data bison gtk-doc-tools \
|
||||
texinfo texlive texlive-extra-utils autopoint libev-dev \
|
||||
apache2 apache2-dev libnghttp2-dev
|
||||
name: 'install prereqs and impacket, pytest, crypto, apache2'
|
||||
|
||||
- name: cache quictls
|
||||
uses: actions/cache@v4
|
||||
id: cache-quictls-no-deprecated
|
||||
env:
|
||||
cache-name: cache-quictls-no-deprecated
|
||||
with:
|
||||
path: /home/runner/quictls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.quictls-version }}
|
||||
|
||||
- if: steps.cache-quictls-no-deprecated.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }} https://github.com/quictls/openssl quictls
|
||||
cd quictls
|
||||
./config no-deprecated --prefix=$HOME/nghttpx --libdir=$HOME/nghttpx/lib
|
||||
make
|
||||
name: 'build quictls'
|
||||
|
||||
- run: |
|
||||
cd $HOME/quictls
|
||||
make -j1 install_sw
|
||||
name: 'install quictls'
|
||||
|
||||
|
||||
- name: cache gnutls
|
||||
uses: actions/cache@v4
|
||||
id: cache-gnutls
|
||||
env:
|
||||
cache-name: cache-gnutls
|
||||
with:
|
||||
path: /home/runner/gnutls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.gnutls-version }}
|
||||
|
||||
- if: steps.cache-gnutls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.gnutls-version }} https://github.com/gnutls/gnutls.git
|
||||
cd gnutls
|
||||
./bootstrap
|
||||
./configure --prefix=$HOME/nghttpx \
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib -L$HOME/nghttpx/lib" \
|
||||
--with-included-libtasn1 --with-included-unistring \
|
||||
--disable-guile --disable-doc --disable-tests --disable-tools
|
||||
make
|
||||
name: 'build gnutls'
|
||||
|
||||
- run: |
|
||||
cd $HOME/gnutls
|
||||
make install
|
||||
name: 'install gnutls'
|
||||
|
||||
|
||||
- name: cache wolfssl
|
||||
uses: actions/cache@v4
|
||||
id: cache-wolfssl
|
||||
env:
|
||||
cache-name: cache-wolfssl
|
||||
with:
|
||||
path: /home/runner/wolfssl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.wolfssl-version }}
|
||||
|
||||
- if: steps.cache-wolfssl.outputs.cache-hit != 'true' || ${{ env.wolfssl-version }} == 'master'
|
||||
run: |
|
||||
cd $HOME
|
||||
rm -rf wolfssl
|
||||
git clone --quiet --depth=1 -b ${{ env.wolfssl-version }} https://github.com/wolfSSL/wolfssl.git
|
||||
cd wolfssl
|
||||
./autogen.sh
|
||||
./configure --enable-all --enable-quic --prefix=$HOME/nghttpx
|
||||
make
|
||||
name: 'build wolfssl'
|
||||
|
||||
- run: |
|
||||
cd $HOME/wolfssl
|
||||
make install
|
||||
name: 'install wolfssl'
|
||||
|
||||
|
||||
- name: cache nghttp3
|
||||
uses: actions/cache@v4
|
||||
id: cache-nghttp3
|
||||
env:
|
||||
cache-name: cache-nghttp3
|
||||
with:
|
||||
path: /home/runner/nghttp3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.nghttp3-version }}
|
||||
|
||||
- if: steps.cache-nghttp3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3
|
||||
cd nghttp3
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only
|
||||
make
|
||||
name: 'build nghttp3'
|
||||
|
||||
- run: |
|
||||
cd $HOME/nghttp3
|
||||
make install
|
||||
name: 'install nghttp3'
|
||||
|
||||
# depends on all other cached libs built so far
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2
|
||||
cd ngtcp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only --with-openssl --with-gnutls --with-wolfssl
|
||||
make install
|
||||
name: 'install ngtcp2'
|
||||
|
||||
# depends on all other cached libs built so far
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2
|
||||
cd nghttp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-http3
|
||||
make install
|
||||
name: 'install nghttp2'
|
||||
|
||||
- name: cache mod_h2
|
||||
uses: actions/cache@v4
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
|
||||
- if: steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
name: 'build mod_h2'
|
||||
|
||||
- run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
name: 'install mod_h2'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: |
|
||||
sudo python3 -m pip install -r tests/requirements.txt -r tests/http/requirements.txt
|
||||
name: 'install python test prereqs'
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
|
||||
- run: pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
217
deps/curl/.github/workflows/non-native.yml
vendored
Normal file
217
deps/curl/.github/workflows/non-native.yml
vendored
Normal file
@ -0,0 +1,217 @@
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: non-native
|
||||
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
netbsd:
|
||||
name: 'NetBSD (cmake, openssl, clang)'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
strategy:
|
||||
matrix:
|
||||
arch: ['x86_64']
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- name: 'cmake'
|
||||
uses: cross-platform-actions/action@cdc9ee69ef84a5f2e59c9058335d9c57bcb4ac86 # v0.25.0
|
||||
with:
|
||||
operating_system: 'netbsd'
|
||||
version: '10.0'
|
||||
architecture: ${{ matrix.arch }}
|
||||
run: |
|
||||
# https://pkgsrc.se/
|
||||
sudo pkgin -y install cmake ninja-build pkg-config perl brotli heimdal openldap-client libssh2 libidn2 libpsl nghttp2 py311-impacket
|
||||
cmake -B bld -G Ninja \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DCURL_BROTLI=ON -DCURL_USE_GSSAPI=ON \
|
||||
|| { cat bld/CMakeFiles/CMake*.yaml; false; }
|
||||
echo '::group::curl_config.h (raw)'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
echo '::group::curl_config.h'; grep -F '#define' bld/lib/curl_config.h | sort || true; echo '::endgroup::'
|
||||
cmake --build bld --config Debug
|
||||
bld/src/curl --disable --version
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
|
||||
cmake --build bld --config Debug --target testdeps
|
||||
export TFLAGS='-j4'
|
||||
cmake --build bld --config Debug --target test-ci
|
||||
fi
|
||||
echo '::group::build examples'
|
||||
cmake --build bld --config Debug --target curl-examples
|
||||
echo '::endgroup::'
|
||||
|
||||
openbsd:
|
||||
name: 'OpenBSD (cmake, libressl, clang)'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
strategy:
|
||||
matrix:
|
||||
arch: ['x86_64']
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- name: 'cmake'
|
||||
uses: cross-platform-actions/action@cdc9ee69ef84a5f2e59c9058335d9c57bcb4ac86 # v0.25.0
|
||||
with:
|
||||
operating_system: 'openbsd'
|
||||
version: '7.5'
|
||||
architecture: ${{ matrix.arch }}
|
||||
run: |
|
||||
# https://openbsd.app/
|
||||
sudo pkg_add cmake ninja perl brotli openldap-client libssh2 libidn2 libpsl nghttp2 python3 py3-impacket
|
||||
cmake -B bld -G Ninja \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DCURL_BROTLI=ON \
|
||||
|| { cat bld/CMakeFiles/CMake*.yaml; false; }
|
||||
echo '::group::curl_config.h (raw)'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
echo '::group::curl_config.h'; grep -F '#define' bld/lib/curl_config.h | sort || true; echo '::endgroup::'
|
||||
cmake --build bld --config Debug
|
||||
bld/src/curl --disable --version
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
|
||||
cmake --build bld --config Debug --target testdeps
|
||||
export TFLAGS='-j8 ~3017 ~TFTP ~FTP' # FIXME: TFTP requests executed twice? Related: `curl: (69) TFTP: Access Violation`?
|
||||
cmake --build bld --config Debug --target test-ci
|
||||
fi
|
||||
echo '::group::build examples'
|
||||
cmake --build bld --config Debug --target curl-examples
|
||||
echo '::endgroup::'
|
||||
|
||||
freebsd:
|
||||
name: 'FreeBSD (${{ matrix.build }}, openssl, ${{ matrix.compiler }}, ${{ matrix.arch }})'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- { build: 'autotools', arch: 'x86_64', compiler: 'clang' }
|
||||
- { build: 'autotools', arch: 'arm64', compiler: 'clang' }
|
||||
- { build: 'cmake' , arch: 'arm64', compiler: 'clang' }
|
||||
fail-fast: false
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- name: 'autotools'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
uses: cross-platform-actions/action@cdc9ee69ef84a5f2e59c9058335d9c57bcb4ac86 # v0.25.0
|
||||
with:
|
||||
operating_system: 'freebsd'
|
||||
version: '14.1'
|
||||
architecture: ${{ matrix.arch }}
|
||||
run: |
|
||||
# https://ports.freebsd.org/
|
||||
sudo pkg install -y autoconf automake libtool \
|
||||
pkgconf brotli openldap26-client libidn2 libnghttp2 nghttp2 stunnel py311-impacket
|
||||
autoreconf -fi
|
||||
export CC='${{ matrix.compiler }}'
|
||||
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-debug --enable-warnings --enable-werror \
|
||||
--prefix="${HOME}"/install \
|
||||
--with-openssl \
|
||||
--with-brotli --enable-ldap --enable-ldaps --with-libidn2 --with-libssh2 --with-nghttp2 --with-gssapi \
|
||||
--disable-dependency-tracking || { tail -n 1000 config.log; false; }
|
||||
echo '::group::curl_config.h (raw)'; cat lib/curl_config.h || true; echo '::endgroup::'
|
||||
echo '::group::curl_config.h'; grep -F '#define' lib/curl_config.h | sort || true; echo '::endgroup::'
|
||||
make -j3 install
|
||||
src/curl --disable --version
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
|
||||
make -j3 -C tests
|
||||
make test-ci V=1 TFLAGS='-j4'
|
||||
fi
|
||||
echo '::group::build examples'
|
||||
make -j3 examples
|
||||
echo '::endgroup::'
|
||||
|
||||
- name: 'cmake'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
uses: cross-platform-actions/action@cdc9ee69ef84a5f2e59c9058335d9c57bcb4ac86 # v0.25.0
|
||||
with:
|
||||
operating_system: 'freebsd'
|
||||
version: '14.1'
|
||||
architecture: ${{ matrix.arch }}
|
||||
run: |
|
||||
# https://ports.freebsd.org/
|
||||
sudo pkg install -y cmake ninja perl5 \
|
||||
pkgconf brotli openldap26-client libidn2 libnghttp2 nghttp2 stunnel py311-impacket
|
||||
cmake -B bld -G Ninja \
|
||||
'-DCMAKE_C_COMPILER=${{ matrix.compiler }}' \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DCURL_BROTLI=ON -DCURL_USE_GSSAPI=ON \
|
||||
|| { cat bld/CMakeFiles/CMake*.yaml; false; }
|
||||
echo '::group::curl_config.h (raw)'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
echo '::group::curl_config.h'; grep -F '#define' bld/lib/curl_config.h | sort || true; echo '::endgroup::'
|
||||
cmake --build bld --config Debug
|
||||
bld/src/curl --disable --version
|
||||
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
|
||||
cmake --build bld --config Debug --target testdeps
|
||||
cmake --build bld --config Debug --target test-ci
|
||||
fi
|
||||
echo '::group::build examples'
|
||||
cmake --build bld --config Debug --target curl-examples
|
||||
echo '::endgroup::'
|
||||
|
||||
omnios:
|
||||
name: 'OmniOS (autotools, openssl, gcc, amd64)'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- name: 'autotools'
|
||||
uses: vmactions/omnios-vm@52a1db31be4fd41325bb0ed32d9ff79f78c69d8d # v1
|
||||
with:
|
||||
usesh: true
|
||||
# https://pkg.omnios.org/r151050/core/en/index.shtml
|
||||
prepare: pkg install build-essential libtool
|
||||
run: |
|
||||
set -e
|
||||
ln -s /usr/bin/gcpp /usr/bin/cpp # Some tests expect `cpp`, which is named `gcpp` in this env.
|
||||
autoreconf -fi
|
||||
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-debug --enable-warnings --enable-werror \
|
||||
--prefix="${HOME}"/install \
|
||||
--with-openssl \
|
||||
--disable-dependency-tracking || { tail -n 1000 config.log; false; }
|
||||
echo '::group::curl_config.h (raw)'; cat lib/curl_config.h || true; echo '::endgroup::'
|
||||
echo '::group::curl_config.h'; grep -F '#define' lib/curl_config.h | sort || true; echo '::endgroup::'
|
||||
gmake -j3 install
|
||||
src/curl --disable --version
|
||||
gmake -j3 -C tests
|
||||
gmake test-ci V=1
|
||||
echo '::group::build examples'
|
||||
gmake -j3 examples
|
||||
echo '::endgroup::'
|
233
deps/curl/.github/workflows/osslq-linux.yml
vendored
233
deps/curl/.github/workflows/osslq-linux.yml
vendored
@ -1,233 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: osslq-linux
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
group: osslq-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 3
|
||||
openssl3-version: openssl-3.2.0
|
||||
quictls-version: 3.1.4+quic
|
||||
nghttp3-version: v1.1.0
|
||||
ngtcp2-version: v1.2.0
|
||||
nghttp2-version: v1.59.0
|
||||
mod_h2-version: v2.0.26
|
||||
|
||||
jobs:
|
||||
autotools:
|
||||
name: ${{ matrix.build.name }}
|
||||
runs-on: 'ubuntu-latest'
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: openssl-quic
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/openssl3/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib"
|
||||
--enable-warnings --enable-werror --enable-debug --disable-ntlm
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-openssl=$HOME/openssl3 --with-openssl-quic
|
||||
--with-nghttp3=$HOME/nghttpx
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 \
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev \
|
||||
nettle-dev libp11-kit-dev libtspi-dev libunistring-dev guile-2.2-dev libtasn1-bin \
|
||||
libtasn1-6-dev libidn2-0-dev gawk gperf libtss2-dev dns-root-data bison gtk-doc-tools \
|
||||
texinfo texlive texlive-extra-utils autopoint libev-dev \
|
||||
apache2 apache2-dev libnghttp2-dev
|
||||
name: 'install prereqs and impacket, pytest, crypto, apache2'
|
||||
|
||||
- name: cache openssl3
|
||||
if: contains(matrix.build.install_steps, 'openssl3')
|
||||
uses: actions/cache@v4
|
||||
id: cache-openssl3
|
||||
env:
|
||||
cache-name: cache-openssl3
|
||||
with:
|
||||
path: /home/runner/openssl3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.openssl3-version }}
|
||||
|
||||
- name: 'install openssl3'
|
||||
if: steps.cache-openssl3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.openssl3-version }} https://github.com/openssl/openssl
|
||||
cd openssl
|
||||
./config --prefix=$HOME/openssl3 --libdir=$HOME/openssl3/lib
|
||||
make -j1 install_sw
|
||||
|
||||
- name: cache quictls
|
||||
if: contains(matrix.build.install_steps, 'quictls')
|
||||
uses: actions/cache@v4
|
||||
id: cache-quictls
|
||||
env:
|
||||
cache-name: cache-quictls
|
||||
with:
|
||||
path: /home/runner/quictls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-quictls-${{ env.quictls-version }}
|
||||
|
||||
- name: cache quictls
|
||||
uses: actions/cache@v4
|
||||
id: cache-quictls-no-deprecated
|
||||
env:
|
||||
cache-name: cache-quictls-no-deprecated
|
||||
with:
|
||||
path: /home/runner/quictls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.quictls-version }}
|
||||
|
||||
- if: steps.cache-quictls-no-deprecated.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }} https://github.com/quictls/openssl quictls
|
||||
cd quictls
|
||||
./config no-deprecated --prefix=$HOME/nghttpx --libdir=$HOME/nghttpx/lib
|
||||
make
|
||||
name: 'build quictls'
|
||||
|
||||
- run: |
|
||||
cd $HOME/quictls
|
||||
make -j1 install_sw
|
||||
name: 'install quictls'
|
||||
|
||||
|
||||
- name: cache nghttp3
|
||||
uses: actions/cache@v4
|
||||
id: cache-nghttp3
|
||||
env:
|
||||
cache-name: cache-nghttp3
|
||||
with:
|
||||
path: /home/runner/nghttp3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.nghttp3-version }}
|
||||
|
||||
- if: steps.cache-nghttp3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3
|
||||
cd nghttp3
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only
|
||||
make
|
||||
name: 'build nghttp3'
|
||||
|
||||
- run: |
|
||||
cd $HOME/nghttp3
|
||||
make install
|
||||
name: 'install nghttp3'
|
||||
|
||||
# depends on all other cached libs built so far
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2
|
||||
cd ngtcp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only --with-openssl
|
||||
make install
|
||||
name: 'install ngtcp2'
|
||||
|
||||
# depends on all other cached libs built so far
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2
|
||||
cd nghttp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-http3
|
||||
make install
|
||||
name: 'install nghttp2'
|
||||
|
||||
- name: cache mod_h2
|
||||
uses: actions/cache@v4
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
|
||||
- if: steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
name: 'build mod_h2'
|
||||
|
||||
- run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
name: 'install mod_h2'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: |
|
||||
sudo python3 -m pip install -r tests/requirements.txt -r tests/http/requirements.txt
|
||||
name: 'install python test prereqs'
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
# 2500 and 25002 fail atm due to fin handling
|
||||
TFLAGS: "!http/3"
|
||||
|
||||
- run: pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
69
deps/curl/.github/workflows/proselint.yml
vendored
69
deps/curl/.github/workflows/proselint.yml
vendored
@ -1,69 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: proselint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- '.github/workflows/proselint.yml'
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- '.github/workflows/proselint.yml'
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: install prereqs
|
||||
run: sudo apt-get install python3-proselint
|
||||
|
||||
# config file help: https://github.com/amperser/proselint/
|
||||
- name: create proselint config
|
||||
run: |
|
||||
cat <<JSON > $HOME/.proselintrc
|
||||
{
|
||||
"checks": {
|
||||
"typography.diacritical_marks": false,
|
||||
"typography.symbols": false,
|
||||
"annotations.misc": false,
|
||||
"security.password": false
|
||||
}
|
||||
}
|
||||
JSON
|
||||
|
||||
- name: check prose
|
||||
run: a=`git ls-files '*.md' | grep -v docs/CHECKSRC.md` && proselint $a README
|
||||
|
||||
# This is for CHECKSRC and files with aggressive exclamation mark needs
|
||||
- name: create second proselint config
|
||||
run: |
|
||||
cat <<JSON > $HOME/.proselintrc
|
||||
{
|
||||
"checks": {
|
||||
"typography.diacritical_marks": false,
|
||||
"typography.symbols": false,
|
||||
"typography.exclamation": false,
|
||||
"annotations.misc": false
|
||||
}
|
||||
}
|
||||
JSON
|
||||
|
||||
- name: check special prose
|
||||
run: a=docs/CHECKSRC.md && proselint $a
|
210
deps/curl/.github/workflows/quiche-linux.yml
vendored
210
deps/curl/.github/workflows/quiche-linux.yml
vendored
@ -1,210 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: quiche
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
group: quiche-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 3
|
||||
openssl-version: 3.1.4+quic
|
||||
nghttp3-version: v1.1.0
|
||||
ngtcp2-version: v1.2.0
|
||||
nghttp2-version: v1.59.0
|
||||
quiche-version: 0.20.0
|
||||
mod_h2-version: v2.0.26
|
||||
|
||||
jobs:
|
||||
autotools:
|
||||
name: ${{ matrix.build.name }}
|
||||
runs-on: 'ubuntu-latest'
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: quiche
|
||||
install: >-
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev
|
||||
install_steps: pytest
|
||||
configure: >-
|
||||
LDFLAGS="-Wl,-rpath,/home/runner/quiche/target/release"
|
||||
--with-openssl=/home/runner/quiche/quiche/deps/boringssl/src
|
||||
--enable-debug
|
||||
--with-quiche=/home/runner/quiche/target/release
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-ca-fallback
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
|
||||
sudo apt-get install apache2 apache2-dev libnghttp2-dev
|
||||
name: 'install prereqs and impacket, pytest, crypto'
|
||||
|
||||
- name: cache nghttpx
|
||||
uses: actions/cache@v4
|
||||
id: cache-nghttpx
|
||||
env:
|
||||
cache-name: cache-nghttpx
|
||||
with:
|
||||
path: /home/runner/nghttpx
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-openssl-${{ env.openssl-version }}-nghttp3-${{ env.nghttp3-version }}-ngtcp2-${{ env.ngtcp2-version }}-nghttp2-${{ env.nghttp2-version }}
|
||||
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.openssl-version }} https://github.com/quictls/openssl
|
||||
cd openssl
|
||||
./config --prefix=$HOME/nghttpx --libdir=$HOME/nghttpx/lib
|
||||
make -j1 install_sw
|
||||
name: 'install quictls'
|
||||
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3
|
||||
cd nghttp3
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only
|
||||
make install
|
||||
name: 'install nghttp3'
|
||||
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2
|
||||
cd ngtcp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only --with-openssl
|
||||
make install
|
||||
name: 'install ngtcp2'
|
||||
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2
|
||||
cd nghttp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-http3
|
||||
make install
|
||||
name: 'install nghttp2'
|
||||
|
||||
- name: cache quiche
|
||||
uses: actions/cache@v4
|
||||
id: cache-quiche
|
||||
env:
|
||||
cache-name: cache-quiche
|
||||
with:
|
||||
path: /home/runner/quiche
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-quiche-${{ env.quiche-version }}
|
||||
|
||||
- if: steps.cache-quiche.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.quiche-version }} --recursive https://github.com/cloudflare/quiche.git
|
||||
cd quiche
|
||||
#### Work-around https://github.com/curl/curl/issues/7927 #######
|
||||
#### See https://github.com/alexcrichton/cmake-rs/issues/131 ####
|
||||
sed -i -e 's/cmake = "0.1"/cmake = "=0.1.45"/' quiche/Cargo.toml
|
||||
|
||||
cargo build -v --package quiche --release --features ffi,pkg-config-meta,qlog --verbose
|
||||
mkdir -v quiche/deps/boringssl/src/lib
|
||||
ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) quiche/deps/boringssl/src/lib/
|
||||
|
||||
# include dir
|
||||
# /home/runner/quiche/quiche/deps/boringssl/src/include
|
||||
# lib dir
|
||||
# /home/runner/quiche/quiche/deps/boringssl/src/lib
|
||||
name: 'build quiche and boringssl'
|
||||
|
||||
- name: cache mod_h2
|
||||
uses: actions/cache@v4
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
|
||||
- if: steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
name: 'build mod_h2'
|
||||
|
||||
- run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
name: 'install mod_h2'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: |
|
||||
sudo python3 -m pip install -r tests/requirements.txt -r tests/http/requirements.txt
|
||||
name: 'install python test prereqs'
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
|
||||
- run: pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
29
deps/curl/.github/workflows/reuse.yml
vendored
29
deps/curl/.github/workflows/reuse.yml
vendored
@ -1,29 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. <https://fsfe.org>
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: REUSE compliance
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@v3
|
50
deps/curl/.github/workflows/spellcheck.yml
vendored
50
deps/curl/.github/workflows/spellcheck.yml
vendored
@ -1,50 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: spell
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- '**.md'
|
||||
- '**/spellcheck.yml'
|
||||
- '**/spellcheck.yaml'
|
||||
- '.github/scripts/*'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- '**.md'
|
||||
- '**/spellcheck.yml'
|
||||
- '**/spellcheck.yaml'
|
||||
- '.github/scripts/*'
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: trim all man page *.md files
|
||||
run: find docs -name "*.md" ! -name "_*" | xargs -n1 ./.github/scripts/cleancmd.pl
|
||||
|
||||
- name: trim libcurl man page *.md files
|
||||
run: find docs/libcurl -name "curl_*.md" -o -name "libcurl*.md" | xargs -n1 ./.github/scripts/cleanspell.pl
|
||||
|
||||
- name: trim libcurl option man page *.md files
|
||||
run: find docs/libcurl/opts -name "CURL*.md" | xargs -n1 ./.github/scripts/cleanspell.pl
|
||||
|
||||
- name: trim cmdline docs markdown _*.md files
|
||||
run: find docs/cmdline-opts -name "_*.md" | xargs -n1 ./.github/scripts/cleancmd.pl --no-header
|
||||
|
||||
- name: setup the custom wordlist
|
||||
run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
|
||||
|
||||
- name: Check Spelling
|
||||
uses: rojopolis/spellcheck-github-actions@v0
|
||||
with:
|
||||
config_path: .github/scripts/spellcheck.yaml
|
28
deps/curl/.github/workflows/synopsis.yml
vendored
28
deps/curl/.github/workflows/synopsis.yml
vendored
@ -1,28 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: SYNOPSIS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
|
||||
jobs:
|
||||
verify:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: verify-synopsis
|
||||
run: ./.github/scripts/verify-synopsis.pl docs/libcurl/curl*.3
|
92
deps/curl/.github/workflows/torture.yml
vendored
92
deps/curl/.github/workflows/torture.yml
vendored
@ -1,92 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Linux torture
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
group: torture-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 3
|
||||
|
||||
jobs:
|
||||
autotools:
|
||||
name: ${{ matrix.build.name }}
|
||||
runs-on: 'ubuntu-latest'
|
||||
timeout-minutes: 90
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: torture
|
||||
install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
|
||||
configure: --with-openssl --enable-debug --enable-ares --enable-websockets
|
||||
tflags: -n -t --shallow=25 !FTP
|
||||
- name: torture-ftp
|
||||
install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
|
||||
configure: --with-openssl --enable-debug --enable-ares
|
||||
tflags: -n -t --shallow=20 FTP
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-torture
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
820
deps/curl/.github/workflows/windows.yml
vendored
Normal file
820
deps/curl/.github/workflows/windows.yml
vendored
Normal file
@ -0,0 +1,820 @@
|
||||
# Copyright (C) Viktor Szakats
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Windows
|
||||
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.circleci/**'
|
||||
- 'appveyor.*'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
cygwin:
|
||||
name: "cygwin, ${{ matrix.build == 'cmake' && 'CM' || 'AM' }} ${{ matrix.platform }} ${{ matrix.name }}"
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 45
|
||||
defaults:
|
||||
run:
|
||||
shell: C:\cygwin\bin\bash.exe '{0}'
|
||||
env:
|
||||
SHELLOPTS: 'igncr'
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- { build: 'automake', platform: 'x86_64', tflags: 'skiprun', config: '', name: 'openssl R' }
|
||||
- { build: 'cmake' , platform: 'x86_64', tflags: '' , config: '-DENABLE_DEBUG=ON -DCURL_USE_OPENSSL=ON -DENABLE_THREADED_RESOLVER=OFF', name: 'openssl' }
|
||||
fail-fast: false
|
||||
steps:
|
||||
- run: git config --global core.autocrlf input
|
||||
shell: pwsh
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401 # v4
|
||||
with:
|
||||
platform: ${{ matrix.platform }}
|
||||
site: https://mirrors.kernel.org/sourceware/cygwin/
|
||||
# https://cygwin.com/cgi-bin2/package-grep.cgi
|
||||
packages: >-
|
||||
autoconf libtool gcc-core gcc-g++ binutils
|
||||
${{ matrix.build }} make ninja
|
||||
openssh
|
||||
libssl-devel
|
||||
libssh2-devel
|
||||
libpsl-devel
|
||||
zlib-devel
|
||||
libbrotli-devel
|
||||
libnghttp2-devel
|
||||
|
||||
- name: 'autotools autoreconf'
|
||||
if: ${{ matrix.build == 'automake' }}
|
||||
timeout-minutes: 2
|
||||
run: autoreconf -fi
|
||||
|
||||
- name: 'autotools configure'
|
||||
if: ${{ matrix.build == 'automake' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
PATH="/usr/bin:$(cygpath "${SYSTEMROOT}")/System32"
|
||||
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
|
||||
--prefix="${HOME}"/install \
|
||||
--with-openssl \
|
||||
--with-libssh2 \
|
||||
--disable-dependency-tracking \
|
||||
${{ matrix.config }}
|
||||
|
||||
- name: 'autotools configure log'
|
||||
if: ${{ matrix.build == 'automake' && !cancelled() }}
|
||||
run: cat bld/config.log 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
if: ${{ matrix.build == 'automake' }}
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'autotools build'
|
||||
if: ${{ matrix.build == 'automake' }}
|
||||
timeout-minutes: 10
|
||||
run: make -C bld -j5 V=1 install
|
||||
|
||||
- name: 'curl version'
|
||||
if: ${{ matrix.build == 'automake' }}
|
||||
timeout-minutes: 1
|
||||
run: |
|
||||
find . -name '*.exe' -o -name '*.dll'
|
||||
bld/src/curl.exe --disable --version
|
||||
|
||||
- name: 'autotools build tests'
|
||||
if: ${{ matrix.build == 'automake' && matrix.tflags != 'skipall' }}
|
||||
timeout-minutes: 15
|
||||
run: make -C bld -j5 V=1 -C tests
|
||||
|
||||
- name: 'autotools run tests'
|
||||
if: ${{ matrix.build == 'automake' && matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
export TFLAGS='-j20 ${{ matrix.tflags }} ~615'
|
||||
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then
|
||||
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
|
||||
fi
|
||||
make -C bld -j5 V=1 test-ci
|
||||
|
||||
- name: 'cmake configure'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
PATH="/usr/bin:$(cygpath "${SYSTEMROOT}")/System32"
|
||||
cmake -B bld -G Ninja ${options} \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DCURL_BROTLI=ON \
|
||||
${{ matrix.config }}
|
||||
|
||||
- name: 'cmake configure log'
|
||||
if: ${{ matrix.build == 'cmake' && !cancelled() }}
|
||||
run: cat bld/CMakeFiles/CMake*.yaml 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'cmake build'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
timeout-minutes: 10
|
||||
run: cmake --build bld --config '${{ matrix.type }}'
|
||||
|
||||
- name: 'curl version'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
timeout-minutes: 1
|
||||
run: |
|
||||
find . -name '*.exe' -o -name '*.dll'
|
||||
PATH="$PWD/bld/lib:$PATH"
|
||||
bld/src/curl.exe --disable --version
|
||||
|
||||
- name: 'cmake build tests'
|
||||
if: ${{ matrix.build == 'cmake' && matrix.tflags != 'skipall' }}
|
||||
timeout-minutes: 15
|
||||
run: cmake --build bld --config '${{ matrix.type }}' --target testdeps
|
||||
|
||||
- name: 'cmake run tests'
|
||||
if: ${{ matrix.build == 'cmake' && matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 15
|
||||
run: |
|
||||
export TFLAGS='-j8 ${{ matrix.tflags }} ~615'
|
||||
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then
|
||||
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
|
||||
fi
|
||||
PATH="$PWD/bld/lib:$PATH"
|
||||
cmake --build bld --config '${{ matrix.type }}' --target test-ci
|
||||
|
||||
- name: 'cmake build examples'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
timeout-minutes: 5
|
||||
run: cmake --build bld --config '${{ matrix.type }}' --target curl-examples
|
||||
|
||||
msys2: # both msys and mingw-w64
|
||||
name: "${{ matrix.sys == 'msys' && 'msys2' || 'mingw' }}, ${{ matrix.build == 'cmake' && 'CM' || 'AM' }} ${{ matrix.env }} ${{ matrix.name }} ${{ matrix.test }}"
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 30
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '!19 !1233', config: '--enable-debug --disable-threaded-resolver --disable-proxy', name: '!proxy' }
|
||||
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: 'skiprun' , config: '--enable-debug --disable-threaded-resolver', name: 'default' }
|
||||
- { build: 'cmake' , sys: 'msys' , env: 'x86_64' , tflags: '!19 !504 !704 !705 !1233', config: '-DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF', name: 'default' }
|
||||
- { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '!19 !504 !704 !705 !1233', config: '', name: 'default R' }
|
||||
- { build: 'autotools', sys: 'mingw64', env: 'x86_64' , tflags: 'skiprun' , config: '--enable-debug --disable-threaded-resolver --disable-curldebug --enable-static=no --without-zlib', name: 'default' }
|
||||
- { build: 'autotools', sys: 'mingw64', env: 'x86_64' , tflags: '~472 ~1299 ~1613' , config: '--enable-debug --enable-windows-unicode --enable-ares', name: 'c-ares U' }
|
||||
# FIXME: WebSockets test results ignored due to frequent failures on native Windows:
|
||||
- { build: 'cmake' , sys: 'mingw64', env: 'x86_64' , tflags: '~2301 ~2302' , config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON', type: 'Debug', name: 'schannel c-ares U' }
|
||||
- { build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: 'skiprun' , config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_CURLDEBUG=ON', type: 'Release', name: 'schannel R TrackMemory' }
|
||||
- { build: 'cmake' , sys: 'clang64', env: 'clang-x86_64', tflags: 'skiprun' , config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_OPENSSL=ON -DENABLE_UNICODE=OFF', type: 'Release', name: 'openssl' }
|
||||
- { build: 'cmake' , sys: 'mingw64', env: 'x86_64' , tflags: 'skiprun' , config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON', type: 'Release', test: 'uwp', name: 'schannel R' }
|
||||
- { build: 'cmake' , sys: 'mingw64', env: 'x86_64' , tflags: 'skiprun' , config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DCMAKE_VERBOSE_MAKEFILE=ON', type: 'Debug', cflags: '-DCURL_SCHANNEL_DEV_DEBUG', name: 'schannel dev debug' }
|
||||
- { build: 'cmake' , sys: 'mingw32', env: 'i686' , tflags: 'skiprun' , config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON', type: 'Release', name: 'schannel R' }
|
||||
fail-fast: false
|
||||
steps:
|
||||
- run: git config --global core.autocrlf input
|
||||
shell: pwsh
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- uses: msys2/setup-msys2@ddf331adaebd714795f1042345e6ca57bd66cea8 # v2
|
||||
if: ${{ matrix.sys == 'msys' }}
|
||||
with:
|
||||
msystem: ${{ matrix.sys }}
|
||||
# https://packages.msys2.org/search
|
||||
install: >-
|
||||
gcc
|
||||
${{ matrix.build }} ${{ matrix.build == 'autotools' && 'make' || 'ninja' }}
|
||||
openssh
|
||||
openssl-devel
|
||||
zlib-devel
|
||||
brotli-devel
|
||||
libnghttp2-devel
|
||||
libpsl-devel
|
||||
libssh2-devel
|
||||
|
||||
- uses: msys2/setup-msys2@ddf331adaebd714795f1042345e6ca57bd66cea8 # v2
|
||||
if: ${{ matrix.sys != 'msys' }}
|
||||
with:
|
||||
msystem: ${{ matrix.sys }}
|
||||
install: >-
|
||||
mingw-w64-${{ matrix.env }}-cc
|
||||
mingw-w64-${{ matrix.env }}-${{ matrix.build }} ${{ matrix.build == 'autotools' && 'make' || '' }}
|
||||
openssh
|
||||
mingw-w64-${{ matrix.env }}-openssl
|
||||
mingw-w64-${{ matrix.env }}-libssh2
|
||||
mingw-w64-${{ matrix.env }}-libpsl
|
||||
mingw-w64-${{ matrix.env }}-c-ares
|
||||
|
||||
- name: 'autotools autoreconf'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
timeout-minutes: 2
|
||||
run: autoreconf -fi
|
||||
|
||||
- name: 'autotools configure'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
|
||||
--prefix="${HOME}"/install \
|
||||
--with-openssl \
|
||||
--with-libssh2 \
|
||||
--disable-dependency-tracking \
|
||||
${{ matrix.config }}
|
||||
|
||||
- name: 'autotools configure log'
|
||||
if: ${{ matrix.build == 'autotools' && !cancelled() }}
|
||||
run: cat bld/config.log 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'autotools build'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
timeout-minutes: 10
|
||||
run: make -C bld -j5 V=1 install
|
||||
|
||||
- name: 'curl version'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
timeout-minutes: 1
|
||||
run: |
|
||||
# avoid libtool's curl.exe wrapper
|
||||
mv bld/src/.libs/curl.exe bld/src/curl.exe
|
||||
mv bld/lib/.libs/*.dll bld/src || true
|
||||
find . -name '*.exe' -o -name '*.dll'
|
||||
bld/src/curl.exe --disable --version
|
||||
|
||||
- name: 'autotools build tests'
|
||||
if: ${{ matrix.build == 'autotools' && matrix.tflags != 'skipall' }}
|
||||
timeout-minutes: 10
|
||||
run: make -C bld -j5 V=1 -C tests
|
||||
|
||||
- name: 'install test prereqs'
|
||||
if: ${{ matrix.build == 'autotools' && matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
/c/ProgramData/chocolatey/choco.exe install --yes --no-progress --limit-output --timeout 180 --force stunnel || true
|
||||
curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 https://live.sysinternals.com/handle64.exe --output /bin/handle64.exe
|
||||
|
||||
- name: 'autotools run tests'
|
||||
if: ${{ matrix.build == 'autotools' && matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
export TFLAGS='-j8 ${{ matrix.tflags }} ~SCP'
|
||||
if [ '${{ matrix.sys }}' != 'msys' ]; then
|
||||
TFLAGS+=' ~2301 ~2302' # WebSockets'
|
||||
TFLAGS+=' ~612 ~613 ~616 ~618' # SFTP
|
||||
else
|
||||
TFLAGS+=' ~SFTP'
|
||||
fi
|
||||
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then
|
||||
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
|
||||
fi
|
||||
PATH="$PATH:/c/Program Files (x86)/stunnel/bin"
|
||||
make -C bld -j5 V=1 test-ci
|
||||
|
||||
- name: 'autotools build examples'
|
||||
if: ${{ matrix.build == 'autotools' && (matrix.tflags == 'skipall' || matrix.tflags == 'skiprun') }}
|
||||
timeout-minutes: 5
|
||||
run: make -C bld -j5 V=1 examples
|
||||
|
||||
- name: 'cmake configure'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
if [[ '${{ matrix.env }}' = 'clang'* ]]; then
|
||||
options='-DCMAKE_C_COMPILER=clang'
|
||||
else
|
||||
options='-DCMAKE_C_COMPILER=gcc'
|
||||
fi
|
||||
if [ '${{ matrix.test }}' = 'uwp' ]; then
|
||||
options+=' -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0'
|
||||
pacman --noconfirm --ask 20 --noprogressbar --sync --needed 'mingw-w64-${{ matrix.env }}-winstorecompat-git'
|
||||
specs="$(realpath gcc-specs-uwp)"
|
||||
gcc -dumpspecs | sed -e 's/-lmingwex/-lwindowsapp -lmingwex -lwindowsapp -lwindowsappcompat/' -e 's/-lmsvcrt/-lmsvcr120_app/' > "${specs}"
|
||||
cflags="-specs=$(cygpath -w "${specs}") -DWINSTORECOMPAT -DWINAPI_FAMILY=WINAPI_FAMILY_APP"
|
||||
# CMake (as of v3.26.4) gets confused and applies the MSVC rc.exe command-line
|
||||
# template to windres. Reset it to the windres template manually:
|
||||
rcopts='<CMAKE_RC_COMPILER> -O coff <DEFINES> <INCLUDES> <FLAGS> <SOURCE> <OBJECT>'
|
||||
else
|
||||
rcopts=''
|
||||
fi
|
||||
[ '${{ matrix.type }}' = 'Debug' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG='
|
||||
[ '${{ matrix.type }}' = 'Release' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE='
|
||||
cmake -B bld -G Ninja ${options} \
|
||||
"-DCMAKE_C_FLAGS=${{ matrix.cflags }} ${cflags}" \
|
||||
"-DCMAKE_RC_COMPILE_OBJECT=${rcopts}" \
|
||||
'-DCMAKE_BUILD_TYPE=${{ matrix.type }}' \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DCURL_BROTLI=ON \
|
||||
${{ matrix.config }}
|
||||
|
||||
- name: 'cmake configure log'
|
||||
if: ${{ matrix.build == 'cmake' && !cancelled() }}
|
||||
run: cat bld/CMakeFiles/CMake*.yaml 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'cmake build'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
timeout-minutes: 10
|
||||
run: cmake --build bld --config '${{ matrix.type }}'
|
||||
|
||||
- name: 'curl version'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
timeout-minutes: 1
|
||||
run: |
|
||||
find . -name '*.exe' -o -name '*.dll'
|
||||
if [ '${{ matrix.test }}' != 'uwp' ]; then # UWP missing 'msvcr120_app.dll', fails with exit code 0xc0000135
|
||||
PATH="$PWD/bld/lib:$PATH"
|
||||
bld/src/curl.exe --disable --version
|
||||
fi
|
||||
|
||||
- name: 'cmake build tests'
|
||||
if: ${{ matrix.build == 'cmake' && matrix.tflags != 'skipall' }}
|
||||
timeout-minutes: 10
|
||||
run: cmake --build bld --config '${{ matrix.type }}' --target testdeps
|
||||
|
||||
- name: 'install test prereqs'
|
||||
if: ${{ matrix.build == 'cmake' && matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
/c/ProgramData/chocolatey/choco.exe install --yes --no-progress --limit-output --timeout 180 --force stunnel || true
|
||||
curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 https://live.sysinternals.com/handle64.exe --output /bin/handle64.exe
|
||||
|
||||
- name: 'cmake run tests'
|
||||
if: ${{ matrix.build == 'cmake' && matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
export TFLAGS='-j8 ${{ matrix.tflags }} ~SCP'
|
||||
if [ '${{ matrix.sys }}' != 'msys' ]; then
|
||||
TFLAGS+=' ~WebSockets'
|
||||
TFLAGS+=' ~612 ~613 ~616 ~618' # SFTP
|
||||
else
|
||||
TFLAGS+=' ~SFTP'
|
||||
fi
|
||||
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then
|
||||
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
|
||||
fi
|
||||
PATH="$PWD/bld/lib:$PATH:/c/Program Files (x86)/stunnel/bin"
|
||||
cmake --build bld --config '${{ matrix.type }}' --target test-ci
|
||||
|
||||
- name: 'cmake build examples'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
timeout-minutes: 5
|
||||
run: cmake --build bld --config '${{ matrix.type }}' --target curl-examples
|
||||
|
||||
old-mingw-w64:
|
||||
name: 'old-mingw, CM ${{ matrix.env }} ${{ matrix.name }}'
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 30
|
||||
defaults:
|
||||
run:
|
||||
shell: C:\msys64\usr\bin\bash.exe {0}
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- name: 'schannel'
|
||||
env: '9.5.0-x86_64'
|
||||
dir: 'mingw64'
|
||||
url: 'https://github.com/brechtsanders/winlibs_mingw/releases/download/9.5.0-10.0.0-msvcrt-r1/winlibs-x86_64-posix-seh-gcc-9.5.0-mingw-w64msvcrt-10.0.0-r1.7z'
|
||||
config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=OFF'
|
||||
type: 'Release'
|
||||
tflags: '~2301 ~2302 ~3027'
|
||||
- name: 'schannel U'
|
||||
env: '7.3.0-x86_64'
|
||||
dir: 'mingw64'
|
||||
url: 'https://downloads.sourceforge.net/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/7.3.0/threads-win32/seh/x86_64-7.3.0-release-win32-seh-rt_v5-rev0.7z'
|
||||
config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON'
|
||||
type: 'Release'
|
||||
tflags: '~2301 ~2302 ~3027 ~3023 ~3024 ~1451'
|
||||
- name: 'schannel !unity'
|
||||
env: '6.4.0-i686'
|
||||
dir: 'mingw32'
|
||||
url: 'https://downloads.sourceforge.net/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/6.4.0/threads-win32/dwarf/i686-6.4.0-release-win32-dwarf-rt_v5-rev0.7z'
|
||||
config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=OFF -DCMAKE_UNITY_BUILD=OFF'
|
||||
type: 'Debug'
|
||||
tflags: 'skiprun'
|
||||
fail-fast: false
|
||||
steps:
|
||||
- name: 'cache compiler (gcc ${{ matrix.env }})'
|
||||
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4
|
||||
id: cache-compiler
|
||||
with:
|
||||
path: ~\my-cache
|
||||
key: ${{ runner.os }}-mingw-w64-${{ matrix.env }}
|
||||
|
||||
- name: 'install compiler (gcc ${{ matrix.env }})'
|
||||
if: ${{ steps.cache-compiler.outputs.cache-hit != 'true' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
cd "${USERPROFILE}" || exit 1
|
||||
mkdir my-cache
|
||||
cd my-cache || exit 1
|
||||
curl --fail --silent --show-error --retry 3 --retry-connrefused --output pack.bin --location --proto-redir =https '${{ matrix.url }}'
|
||||
pwd
|
||||
7z x -y pack.bin >/dev/null
|
||||
rm -r -f pack.bin
|
||||
ls -l
|
||||
|
||||
- run: git config --global core.autocrlf input
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: 'cmake configure'
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
|
||||
[ '${{ matrix.type }}' = 'Debug' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG='
|
||||
[ '${{ matrix.type }}' = 'Release' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE='
|
||||
cmake -B bld -G 'MSYS Makefiles' ${options} \
|
||||
-DCMAKE_C_COMPILER=gcc \
|
||||
'-DCMAKE_BUILD_TYPE=${{ matrix.type }}' \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DCURL_USE_LIBPSL=OFF \
|
||||
${{ matrix.config }}
|
||||
|
||||
- name: 'cmake configure log'
|
||||
if: ${{ !cancelled() }}
|
||||
run: cat bld/CMakeFiles/CMake*.yaml 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'cmake build'
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
|
||||
cmake --build bld --config '${{ matrix.type }}' --parallel 5
|
||||
|
||||
- name: 'curl version'
|
||||
timeout-minutes: 1
|
||||
run: |
|
||||
PATH=/usr/bin find . -name '*.exe' -o -name '*.dll'
|
||||
PATH="$PWD/bld/lib:$PATH"
|
||||
bld/src/curl.exe --disable --version
|
||||
|
||||
- name: 'cmake build tests'
|
||||
if: ${{ matrix.tflags != 'skipall' }}
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
|
||||
cmake --build bld --config '${{ matrix.type }}' --parallel 5 --target testdeps
|
||||
|
||||
- name: 'install test prereqs'
|
||||
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
/c/ProgramData/chocolatey/choco.exe install --yes --no-progress --limit-output --timeout 180 --force stunnel || true
|
||||
curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 https://live.sysinternals.com/handle64.exe --output /bin/handle64.exe
|
||||
python3 -m pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary impacket
|
||||
|
||||
- name: 'cmake run tests'
|
||||
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
|
||||
export TFLAGS='-j4 ~WebSockets ${{ matrix.tflags }}'
|
||||
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then
|
||||
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
|
||||
fi
|
||||
PATH="$PWD/bld/lib:$PATH:/c/Program Files (x86)/stunnel/bin"
|
||||
cmake --build bld --config '${{ matrix.type }}' --target test-ci
|
||||
|
||||
- name: 'cmake build examples'
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
|
||||
cmake --build bld --config '${{ matrix.type }}' --parallel 5 --target curl-examples
|
||||
|
||||
linux-cross-mingw-w64:
|
||||
name: "linux-mingw, ${{ matrix.build == 'cmake' && 'CM' || 'AM' }} ${{ matrix.compiler }}"
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build: [autotools, cmake]
|
||||
compiler: [gcc]
|
||||
env:
|
||||
TRIPLET: 'x86_64-w64-mingw32'
|
||||
steps:
|
||||
- name: 'install packages'
|
||||
run: sudo apt-get --quiet 2 --option Dpkg::Use-Pty=0 install mingw-w64 ${{ matrix.build == 'cmake' && 'ninja-build' || '' }}
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: 'autotools autoreconf'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
run: autoreconf -fi
|
||||
|
||||
- name: 'autotools configure'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
run: |
|
||||
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
|
||||
--host=${TRIPLET} \
|
||||
--with-schannel --with-winidn \
|
||||
--without-libpsl \
|
||||
--disable-dependency-tracking
|
||||
|
||||
- name: 'autotools configure log'
|
||||
if: ${{ matrix.build == 'autotools' && !cancelled() }}
|
||||
run: cat bld/config.log 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'autotools build'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
run: make -C bld -j5
|
||||
|
||||
- name: 'autotools build examples'
|
||||
if: ${{ matrix.build == 'autotools' }}
|
||||
run: make -C bld -j5 examples
|
||||
|
||||
- name: 'cmake configure'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
run: |
|
||||
cmake -B bld -G Ninja \
|
||||
-DCMAKE_SYSTEM_NAME=Windows \
|
||||
-DCMAKE_C_COMPILER_TARGET=${TRIPLET} \
|
||||
-DCMAKE_C_COMPILER=${TRIPLET}-gcc \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DCURL_USE_SCHANNEL=ON -DUSE_WIN32_IDN=ON \
|
||||
-DCURL_USE_LIBPSL=OFF
|
||||
|
||||
- name: 'cmake configure log'
|
||||
if: ${{ matrix.build == 'cmake' && !cancelled() }}
|
||||
run: cat bld/CMakeFiles/CMake*.yaml 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'cmake build'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
run: cmake --build bld
|
||||
|
||||
- name: 'cmake build tests'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
run: cmake --build bld --target testdeps
|
||||
|
||||
- name: 'cmake build examples'
|
||||
if: ${{ matrix.build == 'cmake' }}
|
||||
run: cmake --build bld --target curl-examples
|
||||
|
||||
msvc:
|
||||
name: 'msvc, CM ${{ matrix.arch }}-${{ matrix.plat }} ${{ matrix.name }}'
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 55
|
||||
defaults:
|
||||
run:
|
||||
shell: C:\msys64\usr\bin\bash.exe {0}
|
||||
env:
|
||||
VCPKG_BINARY_SOURCES: 'clear;x-gha,readwrite'
|
||||
VCPKG_DISABLE_METRICS: '1'
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- name: 'schannel MultiSSL U'
|
||||
install: 'brotli zlib zstd libpsl nghttp2 libssh2[core,zlib] pkgconf gsasl openssl mbedtls'
|
||||
arch: 'x64'
|
||||
plat: 'windows'
|
||||
type: 'Debug'
|
||||
tflags: '~1516 ~2301 ~2302 ~2303 ~2307'
|
||||
config: >-
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBSSH2=ON
|
||||
-DCURL_USE_SCHANNEL=ON -DCURL_USE_OPENSSL=ON -DCURL_USE_MBEDTLS=ON -DCURL_DEFAULT_SSL_BACKEND=schannel
|
||||
-DCURL_USE_GSASL=ON -DUSE_WIN32_IDN=ON -DENABLE_UNICODE=ON
|
||||
|
||||
- name: 'openssl'
|
||||
install: 'brotli zlib zstd libpsl nghttp2 nghttp3 openssl libssh2 pkgconf gsasl c-ares libuv'
|
||||
arch: 'x64'
|
||||
plat: 'windows'
|
||||
type: 'Debug'
|
||||
tflags: '~1516 ~2301 ~2302 ~2303 ~2307'
|
||||
config: >-
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBSSH2=ON
|
||||
-DCURL_USE_SCHANNEL=OFF -DCURL_USE_OPENSSL=ON -DUSE_OPENSSL_QUIC=ON
|
||||
-DCURL_USE_GSASL=ON -DENABLE_ARES=ON -DCURL_USE_LIBUV=ON
|
||||
|
||||
- name: 'openssl'
|
||||
install: 'brotli zlib zstd nghttp2 nghttp3 openssl libssh2'
|
||||
arch: 'x64'
|
||||
plat: 'uwp'
|
||||
type: 'Debug'
|
||||
tflags: 'skiprun'
|
||||
config: >-
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBSSH2=ON
|
||||
-DCURL_USE_SCHANNEL=OFF -DCURL_USE_OPENSSL=ON -DUSE_OPENSSL_QUIC=ON
|
||||
-DCURL_USE_LIBPSL=OFF
|
||||
|
||||
- name: 'libressl'
|
||||
install: 'brotli zlib zstd libpsl nghttp2 libressl libssh2[core,zlib] pkgconf ngtcp2[libressl] nghttp3'
|
||||
arch: 'x64'
|
||||
plat: 'windows'
|
||||
type: 'Debug'
|
||||
tflags: '~1516 ~2301 ~2302 ~2303 ~2307'
|
||||
config: >-
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBSSH2=ON
|
||||
-DCURL_USE_SCHANNEL=OFF -DCURL_USE_OPENSSL=ON -DUSE_NGTCP2=ON
|
||||
-DCURL_CA_SEARCH_SAFE=ON
|
||||
|
||||
- name: 'boringssl-ECH'
|
||||
install: 'brotli zlib zstd libpsl nghttp2 boringssl libssh2[core,zlib]'
|
||||
arch: 'x64'
|
||||
plat: 'windows'
|
||||
type: 'Debug'
|
||||
tflags: '~1516 ~2301 ~2302 ~2303 ~2307'
|
||||
config: >-
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBSSH2=ON
|
||||
-DCURL_USE_SCHANNEL=OFF -DCURL_USE_OPENSSL=ON
|
||||
-DUSE_HTTPSRR=ON -DUSE_ECH=ON
|
||||
|
||||
- name: 'wolfssl'
|
||||
install: 'brotli zlib zstd libpsl nghttp2 wolfssl libssh2 pkgconf gsasl ngtcp2[wolfssl] nghttp3'
|
||||
arch: 'x64'
|
||||
plat: 'windows'
|
||||
type: 'Debug'
|
||||
tflags: '~1516'
|
||||
config: >-
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBSSH2=ON
|
||||
-DCURL_USE_SCHANNEL=OFF -DCURL_USE_WOLFSSL=ON -DUSE_NGTCP2=ON
|
||||
-DCURL_USE_GSASL=ON
|
||||
|
||||
- name: 'mbedtls'
|
||||
install: 'brotli zlib zstd libpsl nghttp2 mbedtls libssh pkgconf gsasl'
|
||||
arch: 'x64'
|
||||
plat: 'windows'
|
||||
type: 'Debug'
|
||||
tflags: '~1516'
|
||||
# WARNING: libssh uses hard-coded world-writable paths (/etc/..., ~/.ssh/) to
|
||||
# read its configuration from, making it vulnerable to attacks on
|
||||
# Windows. Do not use this component till there is a fix for these.
|
||||
# https://github.com/curl/curl-for-win/blob/3951808deb04df9489ee17430f236ed54436f81a/libssh.sh#L6-L8
|
||||
config: >-
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBSSH2=OFF -DCURL_USE_LIBSSH=ON
|
||||
-DCURL_USE_SCHANNEL=OFF -DCURL_USE_MBEDTLS=ON
|
||||
-DCURL_USE_GSASL=ON
|
||||
|
||||
- name: 'msh3'
|
||||
install: 'brotli zlib zstd libpsl nghttp2 msh3 libssh2 pkgconf gsasl'
|
||||
arch: 'x64'
|
||||
plat: 'windows'
|
||||
type: 'Debug'
|
||||
tflags: 'skipall'
|
||||
config: >-
|
||||
-DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBSSH2=ON
|
||||
-DCURL_USE_SCHANNEL=OFF -DUSE_MSH3=ON
|
||||
-DCURL_USE_GSASL=ON
|
||||
|
||||
fail-fast: false
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
|
||||
- name: 'vcpkg cache setup'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
|
||||
- name: 'vcpkg versions'
|
||||
timeout-minutes: 1
|
||||
run: |
|
||||
git -C "$VCPKG_INSTALLATION_ROOT" show --no-patch --format='%H %ai'
|
||||
vcpkg version
|
||||
|
||||
- name: 'vcpkg build'
|
||||
timeout-minutes: 35
|
||||
run: vcpkg x-set-installed ${{ matrix.install }} '--triplet=${{ matrix.arch }}-${{ matrix.plat }}'
|
||||
|
||||
- name: 'cmake configure'
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
PATH="/c/msys64/usr/bin:$PATH"
|
||||
cmake -B bld ${options} \
|
||||
"-DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" \
|
||||
"-DVCPKG_INSTALLED_DIR=$VCPKG_INSTALLATION_ROOT/installed" \
|
||||
'-DVCPKG_TARGET_TRIPLET=${{ matrix.arch }}-${{ matrix.plat }}' \
|
||||
-DCMAKE_VS_GLOBALS=TrackFileAccess=false \
|
||||
'-DCMAKE_BUILD_TYPE=${{ matrix.type }}' \
|
||||
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
|
||||
-DCURL_WERROR=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DENABLE_DEBUG=ON \
|
||||
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
|
||||
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE= \
|
||||
${{ matrix.config }}
|
||||
|
||||
- name: 'cmake configure log'
|
||||
if: ${{ !cancelled() }}
|
||||
run: cat bld/CMakeFiles/CMake*.yaml 2>/dev/null || true
|
||||
|
||||
- name: 'curl_config.h'
|
||||
run: |
|
||||
echo '::group::raw'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
|
||||
grep -F '#define' bld/lib/curl_config.h | sort || true
|
||||
|
||||
- name: 'cmake build'
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
PATH="/c/msys64/usr/bin:$PATH"
|
||||
cmake --build bld --config '${{ matrix.type }}' --parallel 5
|
||||
|
||||
- name: 'curl version'
|
||||
timeout-minutes: 1
|
||||
run: |
|
||||
find . -name '*.exe' -o -name '*.dll'
|
||||
if [ '${{ matrix.plat }}' != 'uwp' ]; then
|
||||
PATH="$PWD/bld/lib:$PATH"
|
||||
bld/src/curl.exe --disable --version
|
||||
fi
|
||||
|
||||
- name: 'cmake build tests'
|
||||
if: ${{ matrix.tflags != 'skipall' }}
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
PATH="/c/msys64/usr/bin:$PATH"
|
||||
cmake --build bld --config '${{ matrix.type }}' --parallel 5 --target testdeps
|
||||
|
||||
- name: 'install test prereqs'
|
||||
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
# GnuTLS is not fully functional on Windows, so skip the tests
|
||||
# https://github.com/ShiftMediaProject/gnutls/issues/23
|
||||
if [[ '${{ matrix.name }}' != *'gnutls'* ]]; then
|
||||
/c/ProgramData/chocolatey/choco.exe install --yes --no-progress --limit-output --timeout 180 --force stunnel openssh || true
|
||||
fi
|
||||
curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 https://live.sysinternals.com/handle64.exe --output /bin/handle64.exe
|
||||
python3 -m pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary impacket
|
||||
|
||||
- name: 'cmake run tests'
|
||||
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
export TFLAGS='-j8 ~WebSockets ~SCP ~612 ${{ matrix.tflags }}'
|
||||
if [[ '${{ matrix.install }}' = *'libssh2[core,zlib]'* ]]; then
|
||||
TFLAGS+=' ~SFTP'
|
||||
elif [[ '${{ matrix.install }}' = *'libssh '* ]]; then
|
||||
TFLAGS+=' ~614' # 'SFTP pre-quote chmod' SFTP, pre-quote, directory
|
||||
fi
|
||||
PATH="$PWD/bld/lib:$PATH:/c/Program Files (x86)/stunnel/bin:/c/Program Files/OpenSSH-Win64"
|
||||
PATH="/c/msys64/usr/bin:$PATH"
|
||||
cmake --build bld --config '${{ matrix.type }}' --target test-ci
|
||||
|
||||
- name: 'cmake build examples'
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
PATH="/c/msys64/usr/bin:$PATH"
|
||||
cmake --build bld --config '${{ matrix.type }}' --parallel 5 --target curl-examples
|
105
deps/curl/.github/workflows/wolfssl.yml
vendored
105
deps/curl/.github/workflows/wolfssl.yml
vendored
@ -1,105 +0,0 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
name: Linux wolfSSL
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.*'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
group: wolfssl-${{ github.event.pull_request.number || github.sha }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
MAKEFLAGS: -j 3
|
||||
|
||||
jobs:
|
||||
autotools:
|
||||
name: ${{ matrix.build.name }}
|
||||
runs-on: 'ubuntu-latest'
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: wolfssl (configured with --enable-all)
|
||||
install:
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
|
||||
wolfssl-configure: --enable-all
|
||||
- name: wolfssl (configured with --enable-opensslextra)
|
||||
install:
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
|
||||
wolfssl-configure: --enable-opensslextra
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 libpsl-dev ${{ matrix.build.install }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- run: |
|
||||
WOLFSSL_VER=5.6.3
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v$WOLFSSL_VER-stable.tar.gz
|
||||
tar -xzf v$WOLFSSL_VER-stable.tar.gz
|
||||
cd wolfssl-$WOLFSSL_VER-stable
|
||||
./autogen.sh
|
||||
./configure --enable-tls13 ${{ matrix.build.wolfssl-configure }} --enable-harden --prefix=$HOME/wssl
|
||||
make install
|
||||
name: 'install wolfssl'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
3
deps/curl/.gitignore
vendored
3
deps/curl/.gitignore
vendored
@ -27,7 +27,6 @@
|
||||
/builds/
|
||||
/stats/
|
||||
__pycache__
|
||||
CHANGES.dist
|
||||
Debug
|
||||
INSTALL
|
||||
Makefile
|
||||
@ -37,6 +36,7 @@ TAGS
|
||||
aclocal.m4
|
||||
aclocal.m4.bak
|
||||
autom4te.cache
|
||||
buildinfo.txt
|
||||
compile
|
||||
config.cache
|
||||
config.guess
|
||||
@ -65,3 +65,4 @@ curl_fuzzer_seed_corpus.zip
|
||||
libstandaloneengine.a
|
||||
tests/string
|
||||
tests/config
|
||||
tests/ech-log/
|
||||
|
8
deps/curl/.mailmap
vendored
8
deps/curl/.mailmap
vendored
@ -1,6 +1,6 @@
|
||||
Guenter Knauf <lists@gknw.net> <gk@gknw.de>
|
||||
Gisle Vanem <gisle.vanem@gmail.com> <gvanem@yahoo.no>
|
||||
Gisle Vanem <gisle.vanem@gmail.com> <gvanem@broadpark.no>
|
||||
Gisle Vanem <gvanem@yahoo.no> <gisle.vanem@gmail.com>
|
||||
Gisle Vanem <gvanem@yahoo.no> <gvanem@broadpark.no>
|
||||
Alessandro Ghedini <alessandro@ghedini.me> <alessandro@cloudflare.com>
|
||||
Alessandro Ghedini <alessandro@ghedini.me> <al3xbio@gmail.com>
|
||||
Björn Stenberg <bjorn@haxx.se>
|
||||
@ -108,3 +108,7 @@ Brad Harder <brad.harder@gmail.com>
|
||||
Derzsi Dániel <daniel@tohka.us>
|
||||
Michael Osipov <michael.osipov@siemens.com> <1983-01-06@gmx.net>
|
||||
Michael Osipov <michael.osipov@siemens.com> <michael-o@users.sf.net>
|
||||
Christian Weisgerber <naddy@mips.inka.de> <curl-library@lists.haxx.se>
|
||||
Moritz Buhl <git@moritzbuhl.de>
|
||||
Aki Sakurai <75532970+AkiSakurai@users.noreply.github.com>
|
||||
Sinkevich Artem <artsin666@gmail.com>
|
||||
|
102
deps/curl/.reuse/dep5
vendored
102
deps/curl/.reuse/dep5
vendored
@ -1,102 +0,0 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: curl
|
||||
Upstream-Contact: Daniel Stenberg <daniel@haxx.se>
|
||||
Source: https://curl.se
|
||||
|
||||
# Tests
|
||||
Files: tests/data/test* tests/certs/* tests/stunnel.pem tests/valgrind.supp
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
# Markdown documentation in docs/
|
||||
Files: docs/*.md
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
# Docs in docs/
|
||||
Files: docs/FAQ docs/INSTALL docs/INSTALL.cmake docs/KNOWN_BUGS docs/MAIL-ETIQUETTE docs/THANKS docs/TODO docs/cmdline-opts/page-footer docs/libcurl/curl_multi_socket_all.3 docs/libcurl/curl_strnequal.3 docs/libcurl/symbols-in-versions docs/options-in-versions
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
# Windows
|
||||
Files: projects/Windows/*
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: libcurl.def
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
# Single files we do not want to edit directly
|
||||
Files: CHANGES
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: GIT-INFO.md
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: RELEASE-NOTES
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
# checksrc control files
|
||||
Files: lib/.checksrc src/.checksrc docs/examples/.checksrc tests/libtest/.checksrc
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: lib/libcurl.plist.in
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: lib/libcurl.vers.in
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: packages/OS400/README.OS400
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: packages/vms/build_vms.com
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: packages/vms/curl_release_note_start.txt
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: packages/vms/curlmsg.sdl
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: packages/vms/macro32_exactcase.patch
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: packages/vms/readme
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: plan9/README
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: projects/wolfssl_override.props
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: README
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: .github/ISSUE_TEMPLATE/bug_report.md
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: .mailmap
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
||||
|
||||
Files: .github/dependabot.yml
|
||||
Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
License: curl
|
7
deps/curl/CHANGES
vendored
7
deps/curl/CHANGES
vendored
@ -1,7 +0,0 @@
|
||||
See https://curl.se/changes.html for the edited and human readable online
|
||||
version of what has changed over the years in different curl releases.
|
||||
|
||||
Generate a CHANGES file like the one present in every release like this:
|
||||
|
||||
$ git log --pretty=fuller --no-color --date=short --decorate=full | \
|
||||
./scripts/log2changes.pl
|
12
deps/curl/CHANGES.md
vendored
Normal file
12
deps/curl/CHANGES.md
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
<!--
|
||||
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
|
||||
SPDX-License-Identifier: curl
|
||||
-->
|
||||
|
||||
In a release tarball, check the RELEASES-NOTES file for what was done in the
|
||||
most recent release. In a git check-out, that file mentions changes that have
|
||||
been done since the previous release.
|
||||
|
||||
See the online [changelog](https://curl.se/changes.html) for the edited and
|
||||
human readable version of what has changed in different curl releases.
|
74
deps/curl/CMake/CurlSymbolHiding.cmake
vendored
74
deps/curl/CMake/CurlSymbolHiding.cmake
vendored
@ -21,64 +21,46 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
include(CheckCSourceCompiles)
|
||||
|
||||
option(CURL_HIDDEN_SYMBOLS "Set to ON to hide libcurl internal symbols (=hide all symbols that aren't officially external)." ON)
|
||||
option(CURL_HIDDEN_SYMBOLS "Hide libcurl internal symbols (=hide all symbols that are not officially external)" ON)
|
||||
mark_as_advanced(CURL_HIDDEN_SYMBOLS)
|
||||
|
||||
if(WIN32 AND ENABLE_CURLDEBUG)
|
||||
# We need to export internal debug functions (e.g. curl_dbg_*), so disable
|
||||
# symbol hiding for debug builds.
|
||||
if(WIN32 AND (ENABLE_DEBUG OR ENABLE_CURLDEBUG))
|
||||
# We need to export internal debug functions,
|
||||
# e.g. curl_easy_perform_ev() or curl_dbg_*(),
|
||||
# so disable symbol hiding for debug builds and for memory tracking.
|
||||
set(CURL_HIDDEN_SYMBOLS OFF)
|
||||
endif()
|
||||
|
||||
if(CURL_HIDDEN_SYMBOLS)
|
||||
set(SUPPORTS_SYMBOL_HIDING FALSE)
|
||||
set(CURL_HIDES_PRIVATE_SYMBOLS FALSE)
|
||||
unset(CURL_EXTERN_SYMBOL)
|
||||
unset(CURL_CFLAG_SYMBOLS_HIDE)
|
||||
|
||||
if(CURL_HIDDEN_SYMBOLS)
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT MSVC)
|
||||
set(SUPPORTS_SYMBOL_HIDING TRUE)
|
||||
set(_SYMBOL_EXTERN "__attribute__ ((__visibility__ (\"default\")))")
|
||||
set(_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden")
|
||||
set(CURL_HIDES_PRIVATE_SYMBOLS TRUE)
|
||||
set(CURL_EXTERN_SYMBOL "__attribute__((__visibility__(\"default\")))")
|
||||
set(CURL_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden")
|
||||
elseif(CMAKE_COMPILER_IS_GNUCC)
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
|
||||
# note: this is considered buggy prior to 4.0 but the autotools don't care, so let's ignore that fact
|
||||
set(SUPPORTS_SYMBOL_HIDING TRUE)
|
||||
set(_SYMBOL_EXTERN "__attribute__ ((__visibility__ (\"default\")))")
|
||||
set(_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden")
|
||||
# Note: This is considered buggy prior to 4.0 but the autotools do not care, so let us ignore that fact
|
||||
set(CURL_HIDES_PRIVATE_SYMBOLS TRUE)
|
||||
set(CURL_EXTERN_SYMBOL "__attribute__((__visibility__(\"default\")))")
|
||||
set(CURL_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden")
|
||||
endif()
|
||||
elseif(CMAKE_C_COMPILER_ID MATCHES "SunPro" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 8.0)
|
||||
set(SUPPORTS_SYMBOL_HIDING TRUE)
|
||||
set(_SYMBOL_EXTERN "__global")
|
||||
set(_CFLAG_SYMBOLS_HIDE "-xldscope=hidden")
|
||||
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 9.0)
|
||||
# note: this should probably just check for version 9.1.045 but I'm not 100% sure
|
||||
# so let's do it the same way autotools do.
|
||||
set(SUPPORTS_SYMBOL_HIDING TRUE)
|
||||
set(_SYMBOL_EXTERN "__attribute__ ((__visibility__ (\"default\")))")
|
||||
set(_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden")
|
||||
check_c_source_compiles("#include <stdio.h>
|
||||
int main (void) { printf(\"icc fvisibility bug test\"); return 0; }" _no_bug)
|
||||
if(NOT _no_bug)
|
||||
set(SUPPORTS_SYMBOL_HIDING FALSE)
|
||||
set(_SYMBOL_EXTERN "")
|
||||
set(_CFLAG_SYMBOLS_HIDE "")
|
||||
endif()
|
||||
set(CURL_HIDES_PRIVATE_SYMBOLS TRUE)
|
||||
set(CURL_EXTERN_SYMBOL "__global")
|
||||
set(CURL_CFLAG_SYMBOLS_HIDE "-xldscope=hidden")
|
||||
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 9.0) # Requires 9.1.045
|
||||
set(CURL_HIDES_PRIVATE_SYMBOLS TRUE)
|
||||
set(CURL_EXTERN_SYMBOL "__attribute__((__visibility__(\"default\")))")
|
||||
set(CURL_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden")
|
||||
elseif(MSVC)
|
||||
set(SUPPORTS_SYMBOL_HIDING TRUE)
|
||||
endif()
|
||||
|
||||
set(HIDES_CURL_PRIVATE_SYMBOLS ${SUPPORTS_SYMBOL_HIDING})
|
||||
elseif(MSVC)
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.7)
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) #present since 3.4.3 but broken
|
||||
set(HIDES_CURL_PRIVATE_SYMBOLS FALSE)
|
||||
else()
|
||||
message(WARNING "Hiding private symbols regardless CURL_HIDDEN_SYMBOLS being disabled.")
|
||||
set(HIDES_CURL_PRIVATE_SYMBOLS TRUE)
|
||||
set(CURL_HIDES_PRIVATE_SYMBOLS TRUE)
|
||||
endif()
|
||||
else()
|
||||
set(HIDES_CURL_PRIVATE_SYMBOLS FALSE)
|
||||
if(MSVC)
|
||||
# Note: This option is prone to export non-curl extra symbols.
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CURL_CFLAG_SYMBOLS_HIDE ${_CFLAG_SYMBOLS_HIDE})
|
||||
set(CURL_EXTERN_SYMBOL ${_SYMBOL_EXTERN})
|
||||
|
29
deps/curl/CMake/CurlTests.c
vendored
29
deps/curl/CMake/CurlTests.c
vendored
@ -50,6 +50,7 @@ int main(void)
|
||||
int flags = 0;
|
||||
if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK))
|
||||
return 1;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@ -152,22 +153,19 @@ int main(void) { return 0; }
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
#include <sys/types.h>
|
||||
/* Check that off_t can represent 2**63 - 1 correctly.
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
We cannot simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1];
|
||||
int main(void) { ; return 0; }
|
||||
int main(void) { return 0; }
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_IOCTLSOCKET
|
||||
/* includes start */
|
||||
#ifdef _WIN32
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <winsock2.h>
|
||||
#endif
|
||||
int main(void)
|
||||
@ -184,9 +182,6 @@ int main(void)
|
||||
#ifdef HAVE_IOCTLSOCKET_CAMEL
|
||||
/* includes start */
|
||||
#ifdef _WIN32
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <winsock2.h>
|
||||
#endif
|
||||
int main(void)
|
||||
@ -202,9 +197,6 @@ int main(void)
|
||||
#ifdef HAVE_IOCTLSOCKET_CAMEL_FIONBIO
|
||||
/* includes start */
|
||||
#ifdef _WIN32
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <winsock2.h>
|
||||
#endif
|
||||
int main(void)
|
||||
@ -221,14 +213,11 @@ int main(void)
|
||||
#ifdef HAVE_IOCTLSOCKET_FIONBIO
|
||||
/* includes start */
|
||||
#ifdef _WIN32
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <winsock2.h>
|
||||
#endif
|
||||
int main(void)
|
||||
{
|
||||
int flags = 0;
|
||||
unsigned long flags = 0;
|
||||
if(0 != ioctlsocket(0, FIONBIO, &flags))
|
||||
return 1;
|
||||
;
|
||||
@ -296,9 +285,6 @@ int main(void)
|
||||
#ifdef HAVE_SETSOCKOPT_SO_NONBLOCK
|
||||
/* includes start */
|
||||
#ifdef _WIN32
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <winsock2.h>
|
||||
#endif
|
||||
/* includes start */
|
||||
@ -337,7 +323,7 @@ int main(void)
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
/* float, because a pointer can't be implicitly cast to float */
|
||||
/* Float, because a pointer cannot be implicitly cast to float */
|
||||
void check(float f) {}
|
||||
|
||||
int main(void)
|
||||
@ -380,7 +366,7 @@ int main(void)
|
||||
#ifdef HAVE_BUILTIN_AVAILABLE
|
||||
int main(void)
|
||||
{
|
||||
if(__builtin_available(macOS 10.12, *)) {}
|
||||
if(__builtin_available(macOS 10.12, iOS 5.0, *)) {}
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@ -409,9 +395,6 @@ int main(void)
|
||||
#ifdef HAVE_WIN32_WINNT
|
||||
/* includes start */
|
||||
#ifdef _WIN32
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# ifndef NOGDI
|
||||
# define NOGDI
|
||||
# endif
|
||||
|
36
deps/curl/CMake/FindBearSSL.cmake
vendored
36
deps/curl/CMake/FindBearSSL.cmake
vendored
@ -21,12 +21,38 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
find_path(BEARSSL_INCLUDE_DIRS bearssl.h)
|
||||
# Find the BearSSL library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `BEARSSL_INCLUDE_DIR`: The BearSSL include directory.
|
||||
# - `BEARSSL_LIBRARY`: Path to `bearssl` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `BEARSSL_FOUND`: System has BearSSL.
|
||||
# - `BEARSSL_INCLUDE_DIRS`: The BearSSL include directories.
|
||||
# - `BEARSSL_LIBRARIES`: The BearSSL library names.
|
||||
|
||||
find_library(BEARSSL_LIBRARY bearssl)
|
||||
if(DEFINED BEARSSL_INCLUDE_DIRS AND NOT DEFINED BEARSSL_INCLUDE_DIR)
|
||||
message(WARNING "BEARSSL_INCLUDE_DIRS is deprecated, use BEARSSL_INCLUDE_DIR instead.")
|
||||
set(BEARSSL_INCLUDE_DIR "${BEARSSL_INCLUDE_DIRS}")
|
||||
unset(BEARSSL_INCLUDE_DIRS)
|
||||
endif()
|
||||
|
||||
find_path(BEARSSL_INCLUDE_DIR NAMES "bearssl.h")
|
||||
find_library(BEARSSL_LIBRARY NAMES "bearssl")
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(BEARSSL DEFAULT_MSG
|
||||
BEARSSL_INCLUDE_DIRS BEARSSL_LIBRARY)
|
||||
find_package_handle_standard_args(BearSSL
|
||||
REQUIRED_VARS
|
||||
BEARSSL_INCLUDE_DIR
|
||||
BEARSSL_LIBRARY
|
||||
)
|
||||
|
||||
mark_as_advanced(BEARSSL_INCLUDE_DIRS BEARSSL_LIBRARY)
|
||||
if(BEARSSL_FOUND)
|
||||
set(BEARSSL_INCLUDE_DIRS ${BEARSSL_INCLUDE_DIR})
|
||||
set(BEARSSL_LIBRARIES ${BEARSSL_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(BEARSSL_INCLUDE_DIR BEARSSL_LIBRARY)
|
||||
|
69
deps/curl/CMake/FindBrotli.cmake
vendored
69
deps/curl/CMake/FindBrotli.cmake
vendored
@ -21,23 +21,60 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# Find the brotli library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `BROTLI_INCLUDE_DIR`: The brotli include directory.
|
||||
# - `BROTLICOMMON_LIBRARY`: Path to `brotlicommon` library.
|
||||
# - `BROTLIDEC_LIBRARY`: Path to `brotlidec` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `BROTLI_FOUND`: System has brotli.
|
||||
# - `BROTLI_INCLUDE_DIRS`: The brotli include directories.
|
||||
# - `BROTLI_LIBRARIES`: The brotli library names.
|
||||
# - `BROTLI_VERSION`: Version of brotli.
|
||||
|
||||
find_path(BROTLI_INCLUDE_DIR "brotli/decode.h")
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PC_BROTLI "libbrotlidec")
|
||||
endif()
|
||||
|
||||
find_library(BROTLICOMMON_LIBRARY NAMES brotlicommon)
|
||||
find_library(BROTLIDEC_LIBRARY NAMES brotlidec)
|
||||
|
||||
find_package_handle_standard_args(Brotli
|
||||
FOUND_VAR
|
||||
BROTLI_FOUND
|
||||
REQUIRED_VARS
|
||||
BROTLIDEC_LIBRARY
|
||||
BROTLICOMMON_LIBRARY
|
||||
BROTLI_INCLUDE_DIR
|
||||
FAIL_MESSAGE
|
||||
"Could NOT find Brotli"
|
||||
find_path(BROTLI_INCLUDE_DIR "brotli/decode.h"
|
||||
HINTS
|
||||
${PC_BROTLI_INCLUDEDIR}
|
||||
${PC_BROTLI_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
set(BROTLI_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})
|
||||
set(BROTLI_LIBRARIES ${BROTLICOMMON_LIBRARY} ${BROTLIDEC_LIBRARY})
|
||||
find_library(BROTLICOMMON_LIBRARY NAMES "brotlicommon"
|
||||
HINTS
|
||||
${PC_BROTLI_LIBDIR}
|
||||
${PC_BROTLI_LIBRARY_DIRS}
|
||||
)
|
||||
find_library(BROTLIDEC_LIBRARY NAMES "brotlidec"
|
||||
HINTS
|
||||
${PC_BROTLI_LIBDIR}
|
||||
${PC_BROTLI_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
if(PC_BROTLI_VERSION)
|
||||
set(BROTLI_VERSION ${PC_BROTLI_VERSION})
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Brotli
|
||||
REQUIRED_VARS
|
||||
BROTLI_INCLUDE_DIR
|
||||
BROTLIDEC_LIBRARY
|
||||
BROTLICOMMON_LIBRARY
|
||||
VERSION_VAR
|
||||
BROTLI_VERSION
|
||||
)
|
||||
|
||||
if(BROTLI_FOUND)
|
||||
set(BROTLI_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})
|
||||
set(BROTLI_LIBRARIES ${BROTLIDEC_LIBRARY} ${BROTLICOMMON_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(BROTLI_INCLUDE_DIR BROTLIDEC_LIBRARY BROTLICOMMON_LIBRARY)
|
||||
|
90
deps/curl/CMake/FindCares.cmake
vendored
Normal file
90
deps/curl/CMake/FindCares.cmake
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the c-ares library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `CARES_INCLUDE_DIR`: The c-ares include directory.
|
||||
# - `CARES_LIBRARY`: Path to `cares` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `CARES_FOUND`: System has c-ares.
|
||||
# - `CARES_INCLUDE_DIRS`: The c-ares include directories.
|
||||
# - `CARES_LIBRARIES`: The c-ares library names.
|
||||
# - `CARES_VERSION`: Version of c-ares.
|
||||
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PC_CARES "libcares")
|
||||
endif()
|
||||
|
||||
find_path(CARES_INCLUDE_DIR NAMES "ares.h"
|
||||
HINTS
|
||||
${PC_CARES_INCLUDEDIR}
|
||||
${PC_CARES_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(CARES_LIBRARY NAMES ${CARES_NAMES} "cares"
|
||||
HINTS
|
||||
${PC_CARES_LIBDIR}
|
||||
${PC_CARES_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
if(PC_CARES_VERSION)
|
||||
set(CARES_VERSION ${PC_CARES_VERSION})
|
||||
elseif(CARES_INCLUDE_DIR AND EXISTS "${CARES_INCLUDE_DIR}/ares_version.h")
|
||||
set(_version_regex1 "#[\t ]*define[\t ]+ARES_VERSION_MAJOR[\t ]+([0-9]+).*")
|
||||
set(_version_regex2 "#[\t ]*define[\t ]+ARES_VERSION_MINOR[\t ]+([0-9]+).*")
|
||||
set(_version_regex3 "#[\t ]*define[\t ]+ARES_VERSION_PATCH[\t ]+([0-9]+).*")
|
||||
file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str1 REGEX "${_version_regex1}")
|
||||
file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str2 REGEX "${_version_regex2}")
|
||||
file(STRINGS "${CARES_INCLUDE_DIR}/ares_version.h" _version_str3 REGEX "${_version_regex3}")
|
||||
string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
|
||||
string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
|
||||
string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
|
||||
set(CARES_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
|
||||
unset(_version_regex1)
|
||||
unset(_version_regex2)
|
||||
unset(_version_regex3)
|
||||
unset(_version_str1)
|
||||
unset(_version_str2)
|
||||
unset(_version_str3)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Cares
|
||||
REQUIRED_VARS
|
||||
CARES_INCLUDE_DIR
|
||||
CARES_LIBRARY
|
||||
VERSION_VAR
|
||||
CARES_VERSION
|
||||
)
|
||||
|
||||
if(CARES_FOUND)
|
||||
set(CARES_INCLUDE_DIRS ${CARES_INCLUDE_DIR})
|
||||
set(CARES_LIBRARIES ${CARES_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(CARES_INCLUDE_DIR CARES_LIBRARY)
|
363
deps/curl/CMake/FindGSS.cmake
vendored
363
deps/curl/CMake/FindGSS.cmake
vendored
@ -21,292 +21,335 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# - Try to find the GSS Kerberos library
|
||||
# Once done this will define
|
||||
# Find the GSS Kerberos library
|
||||
#
|
||||
# GSS_ROOT_DIR - Set this variable to the root installation of GSS
|
||||
# Input variables:
|
||||
#
|
||||
# Read-Only variables:
|
||||
# GSS_FOUND - system has the Heimdal library
|
||||
# GSS_FLAVOUR - "MIT" or "Heimdal" if anything found.
|
||||
# GSS_INCLUDE_DIR - the Heimdal include directory
|
||||
# GSS_LIBRARIES - The libraries needed to use GSS
|
||||
# GSS_LINK_DIRECTORIES - Directories to add to linker search path
|
||||
# GSS_LINKER_FLAGS - Additional linker flags
|
||||
# GSS_COMPILER_FLAGS - Additional compiler flags
|
||||
# GSS_VERSION - This is set to version advertised by pkg-config or read from manifest.
|
||||
# In case the library is found but no version info available it'll be set to "unknown"
|
||||
# - `GSS_ROOT_DIR`: Set this variable to the root installation of GSS. (also supported as environment)
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `GSS_FOUND`: System has the Heimdal library.
|
||||
# - `GSS_FLAVOUR`: "GNU", "MIT" or "Heimdal" if anything found.
|
||||
# - `GSS_INCLUDE_DIRS`: The GSS include directories.
|
||||
# - `GSS_LIBRARIES`: The GSS library names.
|
||||
# - `GSS_LIBRARY_DIRS`: The GSS library directories.
|
||||
# - `GSS_LDFLAGS`: Required linker flags.
|
||||
# - `GSS_CFLAGS`: Required compiler flags.
|
||||
# - `GSS_VERSION`: This is set to version advertised by pkg-config or read from manifest.
|
||||
# In case the library is found but no version info available it is set to "unknown"
|
||||
|
||||
set(_MIT_MODNAME mit-krb5-gssapi)
|
||||
set(_HEIMDAL_MODNAME heimdal-gssapi)
|
||||
set(_gnu_modname "gss")
|
||||
set(_mit_modname "mit-krb5-gssapi")
|
||||
set(_heimdal_modname "heimdal-gssapi")
|
||||
|
||||
include(CheckIncludeFile)
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckTypeSize)
|
||||
|
||||
set(_GSS_ROOT_HINTS
|
||||
"${GSS_ROOT_DIR}"
|
||||
"$ENV{GSS_ROOT_DIR}"
|
||||
set(_gss_root_hints
|
||||
"${GSS_ROOT_DIR}"
|
||||
"$ENV{GSS_ROOT_DIR}"
|
||||
)
|
||||
|
||||
# try to find library using system pkg-config if user didn't specify root dir
|
||||
# Try to find library using system pkg-config if user did not specify root dir
|
||||
if(NOT GSS_ROOT_DIR AND NOT "$ENV{GSS_ROOT_DIR}")
|
||||
if(UNIX)
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(_GSS_PKG ${_MIT_MODNAME} ${_HEIMDAL_MODNAME})
|
||||
list(APPEND _GSS_ROOT_HINTS "${_GSS_PKG_PREFIX}")
|
||||
elseif(WIN32)
|
||||
list(APPEND _GSS_ROOT_HINTS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos;InstallDir]")
|
||||
pkg_search_module(_GSS ${_gnu_modname} ${_mit_modname} ${_heimdal_modname})
|
||||
list(APPEND _gss_root_hints "${_GSS_PREFIX}")
|
||||
endif()
|
||||
if(WIN32)
|
||||
list(APPEND _gss_root_hints "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos;InstallDir]")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approach.
|
||||
find_file(_GSS_CONFIGURE_SCRIPT
|
||||
NAMES
|
||||
"krb5-config"
|
||||
HINTS
|
||||
${_GSS_ROOT_HINTS}
|
||||
PATH_SUFFIXES
|
||||
bin
|
||||
NO_CMAKE_PATH
|
||||
NO_CMAKE_ENVIRONMENT_PATH
|
||||
if(NOT _GSS_FOUND) # Not found by pkg-config. Let us take more traditional approach.
|
||||
find_file(_gss_configure_script
|
||||
NAMES
|
||||
"krb5-config"
|
||||
HINTS
|
||||
${_gss_root_hints}
|
||||
PATH_SUFFIXES
|
||||
"bin"
|
||||
NO_CMAKE_PATH
|
||||
NO_CMAKE_ENVIRONMENT_PATH
|
||||
)
|
||||
|
||||
# if not found in user-supplied directories, maybe system knows better
|
||||
find_file(_GSS_CONFIGURE_SCRIPT
|
||||
NAMES
|
||||
"krb5-config"
|
||||
PATH_SUFFIXES
|
||||
bin
|
||||
# If not found in user-supplied directories, maybe system knows better
|
||||
find_file(_gss_configure_script
|
||||
NAMES
|
||||
"krb5-config"
|
||||
PATH_SUFFIXES
|
||||
"bin"
|
||||
)
|
||||
|
||||
if(_GSS_CONFIGURE_SCRIPT)
|
||||
if(_gss_configure_script)
|
||||
execute_process(
|
||||
COMMAND ${_GSS_CONFIGURE_SCRIPT} "--cflags" "gssapi"
|
||||
OUTPUT_VARIABLE _GSS_CFLAGS
|
||||
RESULT_VARIABLE _GSS_CONFIGURE_FAILED
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
message(STATUS "CFLAGS: ${_GSS_CFLAGS}")
|
||||
if(NOT _GSS_CONFIGURE_FAILED) # 0 means success
|
||||
# should also work in an odd case when multiple directories are given
|
||||
COMMAND ${_gss_configure_script} "--cflags" "gssapi"
|
||||
OUTPUT_VARIABLE _GSS_CFLAGS
|
||||
RESULT_VARIABLE _gss_configure_failed
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
message(STATUS "FindGSS CFLAGS: ${_GSS_CFLAGS}")
|
||||
if(NOT _gss_configure_failed) # 0 means success
|
||||
# Should also work in an odd case when multiple directories are given
|
||||
string(STRIP "${_GSS_CFLAGS}" _GSS_CFLAGS)
|
||||
string(REGEX REPLACE " +-I" ";" _GSS_CFLAGS "${_GSS_CFLAGS}")
|
||||
string(REGEX REPLACE " +-([^I][^ \\t;]*)" ";-\\1" _GSS_CFLAGS "${_GSS_CFLAGS}")
|
||||
|
||||
foreach(_flag ${_GSS_CFLAGS})
|
||||
foreach(_flag IN LISTS _GSS_CFLAGS)
|
||||
if(_flag MATCHES "^-I.*")
|
||||
string(REGEX REPLACE "^-I" "" _val "${_flag}")
|
||||
list(APPEND _GSS_INCLUDE_DIR "${_val}")
|
||||
list(APPEND _GSS_INCLUDE_DIRS "${_val}")
|
||||
else()
|
||||
list(APPEND _GSS_COMPILER_FLAGS "${_flag}")
|
||||
list(APPEND _GSS_CFLAGS "${_flag}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND ${_GSS_CONFIGURE_SCRIPT} "--libs" "gssapi"
|
||||
OUTPUT_VARIABLE _GSS_LIB_FLAGS
|
||||
RESULT_VARIABLE _GSS_CONFIGURE_FAILED
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
COMMAND ${_gss_configure_script} "--libs" "gssapi"
|
||||
OUTPUT_VARIABLE _gss_lib_flags
|
||||
RESULT_VARIABLE _gss_configure_failed
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
message(STATUS "LDFLAGS: ${_GSS_LIB_FLAGS}")
|
||||
message(STATUS "FindGSS LDFLAGS: ${_gss_lib_flags}")
|
||||
|
||||
if(NOT _GSS_CONFIGURE_FAILED) # 0 means success
|
||||
# this script gives us libraries and link directories. Blah. We have to deal with it.
|
||||
string(STRIP "${_GSS_LIB_FLAGS}" _GSS_LIB_FLAGS)
|
||||
string(REGEX REPLACE " +-(L|l)" ";-\\1" _GSS_LIB_FLAGS "${_GSS_LIB_FLAGS}")
|
||||
string(REGEX REPLACE " +-([^Ll][^ \\t;]*)" ";-\\1" _GSS_LIB_FLAGS "${_GSS_LIB_FLAGS}")
|
||||
if(NOT _gss_configure_failed) # 0 means success
|
||||
# This script gives us libraries and link directories. Blah. We have to deal with it.
|
||||
string(STRIP "${_gss_lib_flags}" _gss_lib_flags)
|
||||
string(REGEX REPLACE " +-(L|l)" ";-\\1" _gss_lib_flags "${_gss_lib_flags}")
|
||||
string(REGEX REPLACE " +-([^Ll][^ \\t;]*)" ";-\\1" _gss_lib_flags "${_gss_lib_flags}")
|
||||
|
||||
foreach(_flag ${_GSS_LIB_FLAGS})
|
||||
foreach(_flag IN LISTS _gss_lib_flags)
|
||||
if(_flag MATCHES "^-l.*")
|
||||
string(REGEX REPLACE "^-l" "" _val "${_flag}")
|
||||
list(APPEND _GSS_LIBRARIES "${_val}")
|
||||
elseif(_flag MATCHES "^-L.*")
|
||||
string(REGEX REPLACE "^-L" "" _val "${_flag}")
|
||||
list(APPEND _GSS_LINK_DIRECTORIES "${_val}")
|
||||
list(APPEND _GSS_LIBRARY_DIRS "${_val}")
|
||||
else()
|
||||
list(APPEND _GSS_LINKER_FLAGS "${_flag}")
|
||||
list(APPEND _GSS_LDFLAGS "${_flag}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND ${_GSS_CONFIGURE_SCRIPT} "--version"
|
||||
OUTPUT_VARIABLE _GSS_VERSION
|
||||
RESULT_VARIABLE _GSS_CONFIGURE_FAILED
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
COMMAND ${_gss_configure_script} "--version"
|
||||
OUTPUT_VARIABLE _GSS_VERSION
|
||||
RESULT_VARIABLE _gss_configure_failed
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
# older versions may not have the "--version" parameter. In this case we just don't care.
|
||||
if(_GSS_CONFIGURE_FAILED)
|
||||
# Older versions may not have the "--version" parameter. In this case we just do not care.
|
||||
if(_gss_configure_failed)
|
||||
set(_GSS_VERSION 0)
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND ${_GSS_CONFIGURE_SCRIPT} "--vendor"
|
||||
OUTPUT_VARIABLE _GSS_VENDOR
|
||||
RESULT_VARIABLE _GSS_CONFIGURE_FAILED
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
COMMAND ${_gss_configure_script} "--vendor"
|
||||
OUTPUT_VARIABLE _gss_vendor
|
||||
RESULT_VARIABLE _gss_configure_failed
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
# older versions may not have the "--vendor" parameter. In this case we just don't care.
|
||||
if(_GSS_CONFIGURE_FAILED)
|
||||
set(GSS_FLAVOUR "Heimdal") # most probably, shouldn't really matter
|
||||
# Older versions may not have the "--vendor" parameter. In this case we just do not care.
|
||||
if(_gss_configure_failed)
|
||||
set(GSS_FLAVOUR "Heimdal") # most probably, should not really matter
|
||||
else()
|
||||
if(_GSS_VENDOR MATCHES ".*H|heimdal.*")
|
||||
if(_gss_vendor MATCHES ".*H|heimdal.*")
|
||||
set(GSS_FLAVOUR "Heimdal")
|
||||
else()
|
||||
set(GSS_FLAVOUR "MIT")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
else() # either there is no config script or we are on a platform that doesn't provide one (Windows?)
|
||||
else() # Either there is no config script or we are on a platform that does not provide one (Windows?)
|
||||
|
||||
find_path(_GSS_INCLUDE_DIR
|
||||
NAMES
|
||||
"gssapi/gssapi.h"
|
||||
HINTS
|
||||
${_GSS_ROOT_HINTS}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
inc
|
||||
find_path(_GSS_INCLUDE_DIRS NAMES "gssapi/gssapi.h"
|
||||
HINTS
|
||||
${_gss_root_hints}
|
||||
PATH_SUFFIXES
|
||||
"include"
|
||||
"inc"
|
||||
)
|
||||
|
||||
if(_GSS_INCLUDE_DIR) #jay, we've found something
|
||||
set(CMAKE_REQUIRED_INCLUDES "${_GSS_INCLUDE_DIR}")
|
||||
check_include_files( "gssapi/gssapi_generic.h;gssapi/gssapi_krb5.h" _GSS_HAVE_MIT_HEADERS)
|
||||
if(_GSS_INCLUDE_DIRS) # jay, we have found something
|
||||
cmake_push_check_state()
|
||||
set(CMAKE_REQUIRED_INCLUDES "${_GSS_INCLUDE_DIRS}")
|
||||
check_include_files("gssapi/gssapi_generic.h;gssapi/gssapi_krb5.h" _gss_have_mit_headers)
|
||||
|
||||
if(_GSS_HAVE_MIT_HEADERS)
|
||||
if(_gss_have_mit_headers)
|
||||
set(GSS_FLAVOUR "MIT")
|
||||
else()
|
||||
# prevent compiling the header - just check if we can include it
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -D__ROKEN_H__)
|
||||
check_include_file( "roken.h" _GSS_HAVE_ROKEN_H)
|
||||
# Prevent compiling the header - just check if we can include it
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D__ROKEN_H__")
|
||||
check_include_file("roken.h" _gss_have_roken_h)
|
||||
|
||||
check_include_file( "heimdal/roken.h" _GSS_HAVE_HEIMDAL_ROKEN_H)
|
||||
if(_GSS_HAVE_ROKEN_H OR _GSS_HAVE_HEIMDAL_ROKEN_H)
|
||||
check_include_file("heimdal/roken.h" _gss_have_heimdal_roken_h)
|
||||
if(_gss_have_roken_h OR _gss_have_heimdal_roken_h)
|
||||
set(GSS_FLAVOUR "Heimdal")
|
||||
endif()
|
||||
list(REMOVE_ITEM CMAKE_REQUIRED_DEFINITIONS -D__ROKEN_H__)
|
||||
endif()
|
||||
cmake_pop_check_state()
|
||||
else()
|
||||
# I'm not convinced if this is the right way but this is what autotools do at the moment
|
||||
find_path(_GSS_INCLUDE_DIR
|
||||
NAMES
|
||||
"gssapi.h"
|
||||
HINTS
|
||||
${_GSS_ROOT_HINTS}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
inc
|
||||
# I am not convinced if this is the right way but this is what autotools do at the moment
|
||||
find_path(_GSS_INCLUDE_DIRS NAMES "gssapi.h"
|
||||
HINTS
|
||||
${_gss_root_hints}
|
||||
PATH_SUFFIXES
|
||||
"include"
|
||||
"inc"
|
||||
)
|
||||
|
||||
if(_GSS_INCLUDE_DIR)
|
||||
if(_GSS_INCLUDE_DIRS)
|
||||
set(GSS_FLAVOUR "Heimdal")
|
||||
else()
|
||||
find_path(_GSS_INCLUDE_DIRS NAMES "gss.h"
|
||||
HINTS
|
||||
${_gss_root_hints}
|
||||
PATH_SUFFIXES
|
||||
"include"
|
||||
)
|
||||
|
||||
if(_GSS_INCLUDE_DIRS)
|
||||
set(GSS_FLAVOUR "GNU")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# if we have headers, check if we can link libraries
|
||||
# If we have headers, check if we can link libraries
|
||||
if(GSS_FLAVOUR)
|
||||
set(_GSS_LIBDIR_SUFFIXES "")
|
||||
set(_GSS_LIBDIR_HINTS ${_GSS_ROOT_HINTS})
|
||||
get_filename_component(_GSS_CALCULATED_POTENTIAL_ROOT "${_GSS_INCLUDE_DIR}" PATH)
|
||||
list(APPEND _GSS_LIBDIR_HINTS ${_GSS_CALCULATED_POTENTIAL_ROOT})
|
||||
set(_gss_libdir_suffixes "")
|
||||
set(_gss_libdir_hints ${_gss_root_hints})
|
||||
get_filename_component(_gss_calculated_potential_root "${_GSS_INCLUDE_DIRS}" DIRECTORY)
|
||||
list(APPEND _gss_libdir_hints ${_gss_calculated_potential_root})
|
||||
|
||||
if(WIN32)
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
list(APPEND _GSS_LIBDIR_SUFFIXES "lib/AMD64")
|
||||
if(GSS_FLAVOUR STREQUAL "MIT")
|
||||
set(_GSS_LIBNAME "gssapi64")
|
||||
list(APPEND _gss_libdir_suffixes "lib/AMD64")
|
||||
if(GSS_FLAVOUR STREQUAL "GNU")
|
||||
set(_gss_libname "gss")
|
||||
elseif(GSS_FLAVOUR STREQUAL "MIT")
|
||||
set(_gss_libname "gssapi64")
|
||||
else()
|
||||
set(_GSS_LIBNAME "libgssapi")
|
||||
set(_gss_libname "libgssapi")
|
||||
endif()
|
||||
else()
|
||||
list(APPEND _GSS_LIBDIR_SUFFIXES "lib/i386")
|
||||
if(GSS_FLAVOUR STREQUAL "MIT")
|
||||
set(_GSS_LIBNAME "gssapi32")
|
||||
list(APPEND _gss_libdir_suffixes "lib/i386")
|
||||
if(GSS_FLAVOUR STREQUAL "GNU")
|
||||
set(_gss_libname "gss")
|
||||
elseif(GSS_FLAVOUR STREQUAL "MIT")
|
||||
set(_gss_libname "gssapi32")
|
||||
else()
|
||||
set(_GSS_LIBNAME "libgssapi")
|
||||
set(_gss_libname "libgssapi")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
list(APPEND _GSS_LIBDIR_SUFFIXES "lib;lib64") # those suffixes are not checked for HINTS
|
||||
if(GSS_FLAVOUR STREQUAL "MIT")
|
||||
set(_GSS_LIBNAME "gssapi_krb5")
|
||||
list(APPEND _gss_libdir_suffixes "lib;lib64") # those suffixes are not checked for HINTS
|
||||
if(GSS_FLAVOUR STREQUAL "GNU")
|
||||
set(_gss_libname "gss")
|
||||
elseif(GSS_FLAVOUR STREQUAL "MIT")
|
||||
set(_gss_libname "gssapi_krb5")
|
||||
else()
|
||||
set(_GSS_LIBNAME "gssapi")
|
||||
set(_gss_libname "gssapi")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_library(_GSS_LIBRARIES
|
||||
NAMES
|
||||
${_GSS_LIBNAME}
|
||||
HINTS
|
||||
${_GSS_LIBDIR_HINTS}
|
||||
PATH_SUFFIXES
|
||||
${_GSS_LIBDIR_SUFFIXES}
|
||||
find_library(_GSS_LIBRARIES NAMES ${_gss_libname}
|
||||
HINTS
|
||||
${_gss_libdir_hints}
|
||||
PATH_SUFFIXES
|
||||
${_gss_libdir_suffixes}
|
||||
)
|
||||
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
if(_GSS_PKG_${_MIT_MODNAME}_VERSION)
|
||||
# _GSS_MODULE_NAME set since CMake 3.16
|
||||
if(_GSS_MODULE_NAME STREQUAL _gnu_modname OR _GSS_${_gnu_modname}_VERSION)
|
||||
set(GSS_FLAVOUR "GNU")
|
||||
if(NOT _GSS_VERSION) # for old CMake versions?
|
||||
set(_GSS_VERSION ${_GSS_${_gnu_modname}_VERSION})
|
||||
endif()
|
||||
elseif(_GSS_MODULE_NAME STREQUAL _mit_modname OR _GSS_${_mit_modname}_VERSION)
|
||||
set(GSS_FLAVOUR "MIT")
|
||||
set(_GSS_VERSION _GSS_PKG_${_MIT_MODNAME}_VERSION)
|
||||
if(NOT _GSS_VERSION) # for old CMake versions?
|
||||
set(_GSS_VERSION ${_GSS_${_mit_modname}_VERSION})
|
||||
endif()
|
||||
else()
|
||||
set(GSS_FLAVOUR "Heimdal")
|
||||
set(_GSS_VERSION _GSS_PKG_${_MIT_HEIMDAL}_VERSION)
|
||||
if(NOT _GSS_VERSION) # for old CMake versions?
|
||||
set(_GSS_VERSION ${_GSS_${_heimdal_modname}_VERSION})
|
||||
endif()
|
||||
endif()
|
||||
message(STATUS "Found GSS/${GSS_FLAVOUR} (via pkg-config): ${_GSS_INCLUDE_DIRS} (found version \"${_GSS_VERSION}\")")
|
||||
endif()
|
||||
|
||||
set(GSS_INCLUDE_DIR ${_GSS_INCLUDE_DIR})
|
||||
set(GSS_INCLUDE_DIRS ${_GSS_INCLUDE_DIRS})
|
||||
set(GSS_LIBRARIES ${_GSS_LIBRARIES})
|
||||
set(GSS_LINK_DIRECTORIES ${_GSS_LINK_DIRECTORIES})
|
||||
set(GSS_LINKER_FLAGS ${_GSS_LINKER_FLAGS})
|
||||
set(GSS_COMPILER_FLAGS ${_GSS_COMPILER_FLAGS})
|
||||
set(GSS_LIBRARY_DIRS ${_GSS_LIBRARY_DIRS})
|
||||
set(GSS_LDFLAGS ${_GSS_LDFLAGS})
|
||||
set(GSS_CFLAGS ${_GSS_CFLAGS})
|
||||
set(GSS_VERSION ${_GSS_VERSION})
|
||||
|
||||
if(GSS_FLAVOUR)
|
||||
if(NOT GSS_VERSION AND GSS_FLAVOUR STREQUAL "Heimdal")
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(HEIMDAL_MANIFEST_FILE "Heimdal.Application.amd64.manifest")
|
||||
set(_heimdal_manifest_file "Heimdal.Application.amd64.manifest")
|
||||
else()
|
||||
set(HEIMDAL_MANIFEST_FILE "Heimdal.Application.x86.manifest")
|
||||
set(_heimdal_manifest_file "Heimdal.Application.x86.manifest")
|
||||
endif()
|
||||
|
||||
if(EXISTS "${GSS_INCLUDE_DIR}/${HEIMDAL_MANIFEST_FILE}")
|
||||
file(STRINGS "${GSS_INCLUDE_DIR}/${HEIMDAL_MANIFEST_FILE}" heimdal_version_str
|
||||
REGEX "^.*version=\"[0-9]\\.[^\"]+\".*$")
|
||||
if(EXISTS "${GSS_INCLUDE_DIRS}/${_heimdal_manifest_file}")
|
||||
file(STRINGS "${GSS_INCLUDE_DIRS}/${_heimdal_manifest_file}" _heimdal_version_str
|
||||
REGEX "^.*version=\"[0-9]\\.[^\"]+\".*$")
|
||||
|
||||
string(REGEX MATCH "[0-9]\\.[^\"]+"
|
||||
GSS_VERSION "${heimdal_version_str}")
|
||||
string(REGEX MATCH "[0-9]\\.[^\"]+" GSS_VERSION "${_heimdal_version_str}")
|
||||
endif()
|
||||
|
||||
if(NOT GSS_VERSION)
|
||||
set(GSS_VERSION "Heimdal Unknown")
|
||||
endif()
|
||||
elseif(NOT GSS_VERSION AND GSS_FLAVOUR STREQUAL "MIT")
|
||||
get_filename_component(_MIT_VERSION "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos\\SDK\\CurrentVersion;VersionString]" NAME CACHE)
|
||||
if(WIN32 AND _MIT_VERSION)
|
||||
set(GSS_VERSION "${_MIT_VERSION}")
|
||||
get_filename_component(_mit_version "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MIT\\Kerberos\\SDK\\CurrentVersion;VersionString]" NAME
|
||||
CACHE)
|
||||
if(WIN32 AND _mit_version)
|
||||
set(GSS_VERSION "${_mit_version}")
|
||||
else()
|
||||
set(GSS_VERSION "MIT Unknown")
|
||||
endif()
|
||||
elseif(NOT GSS_VERSION AND GSS_FLAVOUR STREQUAL "GNU")
|
||||
if(GSS_INCLUDE_DIRS AND EXISTS "${GSS_INCLUDE_DIRS}/gss.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+GSS_VERSION[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${GSS_INCLUDE_DIRS}/gss.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(GSS_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
set(_GSS_REQUIRED_VARS GSS_LIBRARIES GSS_FLAVOUR)
|
||||
|
||||
find_package_handle_standard_args(GSS
|
||||
REQUIRED_VARS
|
||||
${_GSS_REQUIRED_VARS}
|
||||
VERSION_VAR
|
||||
GSS_VERSION
|
||||
FAIL_MESSAGE
|
||||
"Could NOT find GSS, try to set the path to GSS root folder in the system variable GSS_ROOT_DIR"
|
||||
REQUIRED_VARS
|
||||
GSS_FLAVOUR
|
||||
GSS_LIBRARIES
|
||||
VERSION_VAR
|
||||
GSS_VERSION
|
||||
FAIL_MESSAGE
|
||||
"Could NOT find GSS, try to set the path to GSS root folder in the system variable GSS_ROOT_DIR"
|
||||
)
|
||||
|
||||
mark_as_advanced(GSS_INCLUDE_DIR GSS_LIBRARIES)
|
||||
mark_as_advanced(
|
||||
_GSS_CFLAGS
|
||||
_GSS_FOUND
|
||||
_GSS_INCLUDE_DIRS
|
||||
_GSS_LDFLAGS
|
||||
_GSS_LIBRARIES
|
||||
_GSS_LIBRARY_DIRS
|
||||
_GSS_MODULE_NAME
|
||||
_GSS_PREFIX
|
||||
_GSS_VERSION
|
||||
)
|
||||
|
79
deps/curl/CMake/FindLibgsasl.cmake
vendored
Normal file
79
deps/curl/CMake/FindLibgsasl.cmake
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the libgsasl library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `LIBGSASL_INCLUDE_DIR`: The libgsasl include directory.
|
||||
# - `LIBGSASL_LIBRARY`: Path to `libgsasl` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `LIBGSASL_FOUND`: System has libgsasl.
|
||||
# - `LIBGSASL_INCLUDE_DIRS`: The libgsasl include directories.
|
||||
# - `LIBGSASL_LIBRARIES`: The libgsasl library names.
|
||||
# - `LIBGSASL_LIBRARY_DIRS`: The libgsasl library directories.
|
||||
# - `LIBGSASL_CFLAGS`: Required compiler flags.
|
||||
# - `LIBGSASL_VERSION`: Version of libgsasl.
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED LIBGSASL_INCLUDE_DIR AND
|
||||
NOT DEFINED LIBGSASL_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(LIBGSASL "libgsasl")
|
||||
endif()
|
||||
|
||||
if(LIBGSASL_FOUND)
|
||||
string(REPLACE ";" " " LIBGSASL_CFLAGS "${LIBGSASL_CFLAGS}")
|
||||
message(STATUS "Found Libgsasl (via pkg-config): ${LIBGSASL_INCLUDE_DIRS} (found version \"${LIBGSASL_VERSION}\")")
|
||||
else()
|
||||
find_path(LIBGSASL_INCLUDE_DIR NAMES "gsasl.h")
|
||||
find_library(LIBGSASL_LIBRARY NAMES "gsasl" "libgsasl")
|
||||
|
||||
unset(LIBGSASL_VERSION CACHE)
|
||||
if(LIBGSASL_INCLUDE_DIR AND EXISTS "${LIBGSASL_INCLUDE_DIR}/gsasl-version.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+GSASL_VERSION[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${LIBGSASL_INCLUDE_DIR}/gsasl-version.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(LIBGSASL_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libgsasl
|
||||
REQUIRED_VARS
|
||||
LIBGSASL_INCLUDE_DIR
|
||||
LIBGSASL_LIBRARY
|
||||
VERSION_VAR
|
||||
LIBGSASL_VERSION
|
||||
)
|
||||
|
||||
if(LIBGSASL_FOUND)
|
||||
set(LIBGSASL_INCLUDE_DIRS ${LIBGSASL_INCLUDE_DIR})
|
||||
set(LIBGSASL_LIBRARIES ${LIBGSASL_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(LIBGSASL_INCLUDE_DIR LIBGSASL_LIBRARY)
|
||||
endif()
|
79
deps/curl/CMake/FindLibidn2.cmake
vendored
Normal file
79
deps/curl/CMake/FindLibidn2.cmake
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the libidn2 library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `LIBIDN2_INCLUDE_DIR`: The libidn2 include directory.
|
||||
# - `LIBIDN2_LIBRARY`: Path to `libidn2` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `LIBIDN2_FOUND`: System has libidn2.
|
||||
# - `LIBIDN2_INCLUDE_DIRS`: The libidn2 include directories.
|
||||
# - `LIBIDN2_LIBRARIES`: The libidn2 library names.
|
||||
# - `LIBIDN2_LIBRARY_DIRS`: The libidn2 library directories.
|
||||
# - `LIBIDN2_CFLAGS`: Required compiler flags.
|
||||
# - `LIBIDN2_VERSION`: Version of libidn2.
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED LIBIDN2_INCLUDE_DIR AND
|
||||
NOT DEFINED LIBIDN2_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(LIBIDN2 "libidn2")
|
||||
endif()
|
||||
|
||||
if(LIBIDN2_FOUND)
|
||||
string(REPLACE ";" " " LIBIDN2_CFLAGS "${LIBIDN2_CFLAGS}")
|
||||
message(STATUS "Found Libidn2 (via pkg-config): ${LIBIDN2_INCLUDE_DIRS} (found version \"${LIBIDN2_VERSION}\")")
|
||||
else()
|
||||
find_path(LIBIDN2_INCLUDE_DIR NAMES "idn2.h")
|
||||
find_library(LIBIDN2_LIBRARY NAMES "idn2" "libidn2")
|
||||
|
||||
unset(LIBIDN2_VERSION CACHE)
|
||||
if(LIBIDN2_INCLUDE_DIR AND EXISTS "${LIBIDN2_INCLUDE_DIR}/idn2.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+IDN2_VERSION[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${LIBIDN2_INCLUDE_DIR}/idn2.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(LIBIDN2_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libidn2
|
||||
REQUIRED_VARS
|
||||
LIBIDN2_INCLUDE_DIR
|
||||
LIBIDN2_LIBRARY
|
||||
VERSION_VAR
|
||||
LIBIDN2_VERSION
|
||||
)
|
||||
|
||||
if(LIBIDN2_FOUND)
|
||||
set(LIBIDN2_INCLUDE_DIRS ${LIBIDN2_INCLUDE_DIR})
|
||||
set(LIBIDN2_LIBRARIES ${LIBIDN2_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(LIBIDN2_INCLUDE_DIR LIBIDN2_LIBRARY)
|
||||
endif()
|
80
deps/curl/CMake/FindLibpsl.cmake
vendored
Normal file
80
deps/curl/CMake/FindLibpsl.cmake
vendored
Normal file
@ -0,0 +1,80 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the libpsl library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `LIBPSL_INCLUDE_DIR`: The libpsl include directory.
|
||||
# - `LIBPSL_LIBRARY`: Path to `libpsl` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `LIBPSL_FOUND`: System has libpsl.
|
||||
# - `LIBPSL_INCLUDE_DIRS`: The libpsl include directories.
|
||||
# - `LIBPSL_LIBRARIES`: The libpsl library names.
|
||||
# - `LIBPSL_VERSION`: Version of libpsl.
|
||||
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PC_LIBPSL "libpsl")
|
||||
endif()
|
||||
|
||||
find_path(LIBPSL_INCLUDE_DIR NAMES "libpsl.h"
|
||||
HINTS
|
||||
${PC_LIBPSL_INCLUDEDIR}
|
||||
${PC_LIBPSL_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(LIBPSL_LIBRARY NAMES "psl" "libpsl"
|
||||
HINTS
|
||||
${PC_LIBPSL_LIBDIR}
|
||||
${PC_LIBPSL_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
if(PC_LIBPSL_VERSION)
|
||||
set(LIBPSL_VERSION ${PC_LIBPSL_VERSION})
|
||||
elseif(LIBPSL_INCLUDE_DIR AND EXISTS "${LIBPSL_INCLUDE_DIR}/libpsl.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+PSL_VERSION[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${LIBPSL_INCLUDE_DIR}/libpsl.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(LIBPSL_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libpsl
|
||||
REQUIRED_VARS
|
||||
LIBPSL_INCLUDE_DIR
|
||||
LIBPSL_LIBRARY
|
||||
VERSION_VAR
|
||||
LIBPSL_VERSION
|
||||
)
|
||||
|
||||
if(LIBPSL_FOUND)
|
||||
set(LIBPSL_INCLUDE_DIRS ${LIBPSL_INCLUDE_DIR})
|
||||
set(LIBPSL_LIBRARIES ${LIBPSL_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(LIBPSL_INCLUDE_DIR LIBPSL_LIBRARY)
|
93
deps/curl/CMake/FindLibssh.cmake
vendored
Normal file
93
deps/curl/CMake/FindLibssh.cmake
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the libssh library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# LIBSSH_INCLUDE_DIR The libssh include directory.
|
||||
# LIBSSH_LIBRARY Path to libssh library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# LIBSSH_FOUND System has libssh.
|
||||
# LIBSSH_INCLUDE_DIRS The libssh include directories.
|
||||
# LIBSSH_LIBRARIES The libssh library names.
|
||||
# LIBSSH_LIBRARY_DIRS The libssh library directories.
|
||||
# LIBSSH_CFLAGS Required compiler flags.
|
||||
# LIBSSH_VERSION Version of libssh.
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED LIBSSH_INCLUDE_DIR AND
|
||||
NOT DEFINED LIBSSH_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(LIBSSH "libssh")
|
||||
endif()
|
||||
|
||||
if(LIBSSH_FOUND)
|
||||
string(REPLACE ";" " " LIBSSH_CFLAGS "${LIBSSH_CFLAGS}")
|
||||
message(STATUS "Found Libssh (via pkg-config): ${LIBSSH_INCLUDE_DIRS} (found version \"${LIBSSH_VERSION}\")")
|
||||
else()
|
||||
find_path(LIBSSH_INCLUDE_DIR NAMES "libssh/libssh.h")
|
||||
find_library(LIBSSH_LIBRARY NAMES "ssh" "libssh")
|
||||
|
||||
unset(LIBSSH_VERSION CACHE)
|
||||
if(LIBSSH_INCLUDE_DIR AND EXISTS "${LIBSSH_INCLUDE_DIR}/libssh/libssh_version.h")
|
||||
set(_version_regex1 "#[\t ]*define[\t ]+LIBSSH_VERSION_MAJOR[\t ]+([0-9]+).*")
|
||||
set(_version_regex2 "#[\t ]*define[\t ]+LIBSSH_VERSION_MINOR[\t ]+([0-9]+).*")
|
||||
set(_version_regex3 "#[\t ]*define[\t ]+LIBSSH_VERSION_MICRO[\t ]+([0-9]+).*")
|
||||
file(STRINGS "${LIBSSH_INCLUDE_DIR}/libssh/libssh_version.h" _version_str1 REGEX "${_version_regex1}")
|
||||
file(STRINGS "${LIBSSH_INCLUDE_DIR}/libssh/libssh_version.h" _version_str2 REGEX "${_version_regex2}")
|
||||
file(STRINGS "${LIBSSH_INCLUDE_DIR}/libssh/libssh_version.h" _version_str3 REGEX "${_version_regex3}")
|
||||
string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
|
||||
string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
|
||||
string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
|
||||
set(LIBSSH_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
|
||||
unset(_version_regex1)
|
||||
unset(_version_regex2)
|
||||
unset(_version_regex3)
|
||||
unset(_version_str1)
|
||||
unset(_version_str2)
|
||||
unset(_version_str3)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libssh
|
||||
REQUIRED_VARS
|
||||
LIBSSH_INCLUDE_DIR
|
||||
LIBSSH_LIBRARY
|
||||
VERSION_VAR
|
||||
LIBSSH_VERSION
|
||||
)
|
||||
|
||||
if(LIBSSH_FOUND)
|
||||
set(LIBSSH_INCLUDE_DIRS ${LIBSSH_INCLUDE_DIR})
|
||||
set(LIBSSH_LIBRARIES ${LIBSSH_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(LIBSSH_INCLUDE_DIR LIBSSH_LIBRARY)
|
||||
endif()
|
||||
|
||||
if(LIBSSH_FOUND AND WIN32)
|
||||
list(APPEND LIBSSH_LIBRARIES "iphlpapi") # for if_nametoindex
|
||||
endif()
|
80
deps/curl/CMake/FindLibssh2.cmake
vendored
Normal file
80
deps/curl/CMake/FindLibssh2.cmake
vendored
Normal file
@ -0,0 +1,80 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the libssh2 library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `LIBSSH2_INCLUDE_DIR`: The libssh2 include directory.
|
||||
# - `LIBSSH2_LIBRARY`: Path to `libssh2` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `LIBSSH2_FOUND`: System has libssh2.
|
||||
# - `LIBSSH2_INCLUDE_DIRS`: The libssh2 include directories.
|
||||
# - `LIBSSH2_LIBRARIES`: The libssh2 library names.
|
||||
# - `LIBSSH2_VERSION`: Version of libssh2.
|
||||
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PC_LIBSSH2 "libssh2")
|
||||
endif()
|
||||
|
||||
find_path(LIBSSH2_INCLUDE_DIR NAMES "libssh2.h"
|
||||
HINTS
|
||||
${PC_LIBSSH2_INCLUDEDIR}
|
||||
${PC_LIBSSH2_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(LIBSSH2_LIBRARY NAMES "ssh2" "libssh2"
|
||||
HINTS
|
||||
${PC_LIBSSH2_LIBDIR}
|
||||
${PC_LIBSSH2_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
if(PC_LIBSSH2_VERSION)
|
||||
set(LIBSSH2_VERSION ${PC_LIBSSH2_VERSION})
|
||||
elseif(LIBSSH2_INCLUDE_DIR AND EXISTS "${LIBSSH2_INCLUDE_DIR}/libssh2.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+LIBSSH2_VERSION[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${LIBSSH2_INCLUDE_DIR}/libssh2.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(LIBSSH2_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libssh2
|
||||
REQUIRED_VARS
|
||||
LIBSSH2_INCLUDE_DIR
|
||||
LIBSSH2_LIBRARY
|
||||
VERSION_VAR
|
||||
LIBSSH2_VERSION
|
||||
)
|
||||
|
||||
if(LIBSSH2_FOUND)
|
||||
set(LIBSSH2_INCLUDE_DIRS ${LIBSSH2_INCLUDE_DIR})
|
||||
set(LIBSSH2_LIBRARIES ${LIBSSH2_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY)
|
89
deps/curl/CMake/FindLibuv.cmake
vendored
Normal file
89
deps/curl/CMake/FindLibuv.cmake
vendored
Normal file
@ -0,0 +1,89 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the libuv library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `LIBUV_INCLUDE_DIR`: The libuv include directory.
|
||||
# - `LIBUV_LIBRARY`: Path to `libuv` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `LIBUV_FOUND`: System has libuv.
|
||||
# - `LIBUV_INCLUDE_DIRS`: The libuv include directories.
|
||||
# - `LIBUV_LIBRARIES`: The libuv library names.
|
||||
# - `LIBUV_LIBRARY_DIRS`: The libuv library directories.
|
||||
# - `LIBUV_CFLAGS`: Required compiler flags.
|
||||
# - `LIBUV_VERSION`: Version of libuv.
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED LIBUV_INCLUDE_DIR AND
|
||||
NOT DEFINED LIBUV_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(LIBUV "libuv")
|
||||
endif()
|
||||
|
||||
if(LIBUV_FOUND)
|
||||
string(REPLACE ";" " " LIBUV_CFLAGS "${LIBUV_CFLAGS}")
|
||||
message(STATUS "Found Libuv (via pkg-config): ${LIBUV_INCLUDE_DIRS} (found version \"${LIBUV_VERSION}\")")
|
||||
else()
|
||||
find_path(LIBUV_INCLUDE_DIR NAMES "uv.h")
|
||||
find_library(LIBUV_LIBRARY NAMES "uv" "libuv")
|
||||
|
||||
unset(LIBUV_VERSION CACHE)
|
||||
if(LIBUV_INCLUDE_DIR AND EXISTS "${LIBUV_INCLUDE_DIR}/uv/version.h")
|
||||
set(_version_regex1 "#[\t ]*define[\t ]+UV_VERSION_MAJOR[\t ]+([0-9]+).*")
|
||||
set(_version_regex2 "#[\t ]*define[\t ]+UV_VERSION_MINOR[\t ]+([0-9]+).*")
|
||||
set(_version_regex3 "#[\t ]*define[\t ]+UV_VERSION_PATCH[\t ]+([0-9]+).*")
|
||||
file(STRINGS "${LIBUV_INCLUDE_DIR}/uv/version.h" _version_str1 REGEX "${_version_regex1}")
|
||||
file(STRINGS "${LIBUV_INCLUDE_DIR}/uv/version.h" _version_str2 REGEX "${_version_regex2}")
|
||||
file(STRINGS "${LIBUV_INCLUDE_DIR}/uv/version.h" _version_str3 REGEX "${_version_regex3}")
|
||||
string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
|
||||
string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
|
||||
string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
|
||||
set(LIBUV_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
|
||||
unset(_version_regex1)
|
||||
unset(_version_regex2)
|
||||
unset(_version_regex3)
|
||||
unset(_version_str1)
|
||||
unset(_version_str2)
|
||||
unset(_version_str3)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libuv
|
||||
REQUIRED_VARS
|
||||
LIBUV_INCLUDE_DIR
|
||||
LIBUV_LIBRARY
|
||||
VERSION_VAR
|
||||
LIBUV_VERSION
|
||||
)
|
||||
|
||||
if(LIBUV_FOUND)
|
||||
set(LIBUV_INCLUDE_DIRS ${LIBUV_INCLUDE_DIR})
|
||||
set(LIBUV_LIBRARIES ${LIBUV_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARY)
|
||||
endif()
|
79
deps/curl/CMake/FindMSH3.cmake
vendored
79
deps/curl/CMake/FindMSH3.cmake
vendored
@ -21,50 +21,47 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the msh3 library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `MSH3_INCLUDE_DIR`: The msh3 include directory.
|
||||
# - `MSH3_LIBRARY`: Path to `msh3` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `MSH3_FOUND`: System has msh3.
|
||||
# - `MSH3_INCLUDE_DIRS`: The msh3 include directories.
|
||||
# - `MSH3_LIBRARIES`: The msh3 library names.
|
||||
# - `MSH3_LIBRARY_DIRS`: The msh3 library directories.
|
||||
# - `MSH3_CFLAGS`: Required compiler flags.
|
||||
# - `MSH3_VERSION`: Version of msh3.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindMSH3
|
||||
----------
|
||||
|
||||
Find the msh3 library
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
``MSH3_FOUND``
|
||||
System has msh3
|
||||
``MSH3_INCLUDE_DIRS``
|
||||
The msh3 include directories.
|
||||
``MSH3_LIBRARIES``
|
||||
The libraries needed to use msh3
|
||||
#]=======================================================================]
|
||||
if(UNIX)
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED MSH3_INCLUDE_DIR AND
|
||||
NOT DEFINED MSH3_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(PC_MSH3 libmsh3)
|
||||
pkg_check_modules(MSH3 "libmsh3")
|
||||
endif()
|
||||
|
||||
find_path(MSH3_INCLUDE_DIR msh3.h
|
||||
HINTS
|
||||
${PC_MSH3_INCLUDEDIR}
|
||||
${PC_MSH3_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(MSH3_LIBRARY NAMES msh3
|
||||
HINTS
|
||||
${PC_MSH3_LIBDIR}
|
||||
${PC_MSH3_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(MSH3
|
||||
REQUIRED_VARS
|
||||
MSH3_LIBRARY
|
||||
MSH3_INCLUDE_DIR
|
||||
)
|
||||
|
||||
if(MSH3_FOUND)
|
||||
set(MSH3_LIBRARIES ${MSH3_LIBRARY})
|
||||
set(MSH3_INCLUDE_DIRS ${MSH3_INCLUDE_DIR})
|
||||
endif()
|
||||
string(REPLACE ";" " " MSH3_CFLAGS "${MSH3_CFLAGS}")
|
||||
message(STATUS "Found MSH3 (via pkg-config): ${MSH3_INCLUDE_DIRS} (found version \"${MSH3_VERSION}\")")
|
||||
else()
|
||||
find_path(MSH3_INCLUDE_DIR NAMES "msh3.h")
|
||||
find_library(MSH3_LIBRARY NAMES "msh3")
|
||||
|
||||
mark_as_advanced(MSH3_INCLUDE_DIRS MSH3_LIBRARIES)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(MSH3
|
||||
REQUIRED_VARS
|
||||
MSH3_INCLUDE_DIR
|
||||
MSH3_LIBRARY
|
||||
)
|
||||
|
||||
if(MSH3_FOUND)
|
||||
set(MSH3_INCLUDE_DIRS ${MSH3_INCLUDE_DIR})
|
||||
set(MSH3_LIBRARIES ${MSH3_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(MSH3_INCLUDE_DIR MSH3_LIBRARY)
|
||||
endif()
|
||||
|
89
deps/curl/CMake/FindMbedTLS.cmake
vendored
89
deps/curl/CMake/FindMbedTLS.cmake
vendored
@ -21,16 +21,87 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
find_path(MBEDTLS_INCLUDE_DIRS mbedtls/ssl.h)
|
||||
# Find the mbedTLS library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `MBEDTLS_INCLUDE_DIR`: The mbedTLS include directory.
|
||||
# - `MBEDTLS_LIBRARY`: Path to `mbedtls` library.
|
||||
# - `MBEDX509_LIBRARY`: Path to `mbedx509` library.
|
||||
# - `MBEDCRYPTO_LIBRARY`: Path to `mbedcrypto` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `MBEDTLS_FOUND`: System has mbedTLS.
|
||||
# - `MBEDTLS_INCLUDE_DIRS`: The mbedTLS include directories.
|
||||
# - `MBEDTLS_LIBRARIES`: The mbedTLS library names.
|
||||
# - `MBEDTLS_LIBRARY_DIRS`: The mbedTLS library directories.
|
||||
# - `MBEDTLS_CFLAGS`: Required compiler flags.
|
||||
# - `MBEDTLS_VERSION`: Version of mbedTLS.
|
||||
|
||||
find_library(MBEDTLS_LIBRARY mbedtls)
|
||||
find_library(MBEDX509_LIBRARY mbedx509)
|
||||
find_library(MBEDCRYPTO_LIBRARY mbedcrypto)
|
||||
if(DEFINED MBEDTLS_INCLUDE_DIRS AND NOT DEFINED MBEDTLS_INCLUDE_DIR)
|
||||
message(WARNING "MBEDTLS_INCLUDE_DIRS is deprecated, use MBEDTLS_INCLUDE_DIR instead.")
|
||||
set(MBEDTLS_INCLUDE_DIR "${MBEDTLS_INCLUDE_DIRS}")
|
||||
unset(MBEDTLS_INCLUDE_DIRS)
|
||||
endif()
|
||||
|
||||
set(MBEDTLS_LIBRARIES "${MBEDTLS_LIBRARY}" "${MBEDX509_LIBRARY}" "${MBEDCRYPTO_LIBRARY}")
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED MBEDTLS_INCLUDE_DIR AND
|
||||
NOT DEFINED MBEDTLS_LIBRARY AND
|
||||
NOT DEFINED MBEDX509_LIBRARY AND
|
||||
NOT DEFINED MBEDCRYPTO_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(MBEDTLS "mbedtls")
|
||||
pkg_check_modules(MBEDX509 "mbedx509")
|
||||
pkg_check_modules(MBEDCRYPTO "mbedcrypto")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(MbedTLS DEFAULT_MSG
|
||||
MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
|
||||
if(MBEDTLS_FOUND AND MBEDX509_FOUND AND MBEDCRYPTO_FOUND)
|
||||
list(APPEND MBEDTLS_LIBRARIES ${MBEDX509_LIBRARIES} ${MBEDCRYPTO_LIBRARIES})
|
||||
list(REMOVE_DUPLICATES MBEDTLS_LIBRARIES)
|
||||
string(REPLACE ";" " " MBEDTLS_CFLAGS "${MBEDTLS_CFLAGS}")
|
||||
message(STATUS "Found MbedTLS (via pkg-config): ${MBEDTLS_INCLUDE_DIRS} (found version \"${MBEDTLS_VERSION}\")")
|
||||
else()
|
||||
find_path(MBEDTLS_INCLUDE_DIR NAMES "mbedtls/ssl.h")
|
||||
find_library(MBEDTLS_LIBRARY NAMES "mbedtls" "libmbedtls")
|
||||
find_library(MBEDX509_LIBRARY NAMES "mbedx509" "libmbedx509")
|
||||
find_library(MBEDCRYPTO_LIBRARY NAMES "mbedcrypto" "libmbedcrypto")
|
||||
|
||||
mark_as_advanced(MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
|
||||
unset(MBEDTLS_VERSION CACHE)
|
||||
if(MBEDTLS_INCLUDE_DIR)
|
||||
if(EXISTS "${MBEDTLS_INCLUDE_DIR}/mbedtls/build_info.h") # 3.x
|
||||
set(_version_header "${MBEDTLS_INCLUDE_DIR}/mbedtls/build_info.h")
|
||||
elseif(EXISTS "${MBEDTLS_INCLUDE_DIR}/mbedtls/version.h") # 2.x
|
||||
set(_version_header "${MBEDTLS_INCLUDE_DIR}/mbedtls/version.h")
|
||||
else()
|
||||
unset(_version_header)
|
||||
endif()
|
||||
if(_version_header)
|
||||
set(_version_regex "#[\t ]*define[\t ]+MBEDTLS_VERSION_STRING[\t ]+\"([0-9.]+)\"")
|
||||
file(STRINGS "${_version_header}" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(MBEDTLS_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
unset(_version_header)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(MbedTLS
|
||||
REQUIRED_VARS
|
||||
MBEDTLS_INCLUDE_DIR
|
||||
MBEDTLS_LIBRARY
|
||||
MBEDX509_LIBRARY
|
||||
MBEDCRYPTO_LIBRARY
|
||||
VERSION_VAR
|
||||
MBEDTLS_VERSION
|
||||
)
|
||||
|
||||
if(MBEDTLS_FOUND)
|
||||
set(MBEDTLS_INCLUDE_DIRS ${MBEDTLS_INCLUDE_DIR})
|
||||
set(MBEDTLS_LIBRARIES ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(MBEDTLS_INCLUDE_DIR MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
|
||||
endif()
|
||||
|
65
deps/curl/CMake/FindNGHTTP2.cmake
vendored
65
deps/curl/CMake/FindNGHTTP2.cmake
vendored
@ -21,21 +21,60 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# Find the nghttp2 library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `NGHTTP2_INCLUDE_DIR`: The nghttp2 include directory.
|
||||
# - `NGHTTP2_LIBRARY`: Path to `nghttp2` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `NGHTTP2_FOUND`: System has nghttp2.
|
||||
# - `NGHTTP2_INCLUDE_DIRS`: The nghttp2 include directories.
|
||||
# - `NGHTTP2_LIBRARIES`: The nghttp2 library names.
|
||||
# - `NGHTTP2_VERSION`: Version of nghttp2.
|
||||
|
||||
find_path(NGHTTP2_INCLUDE_DIR "nghttp2/nghttp2.h")
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PC_NGHTTP2 "libnghttp2")
|
||||
endif()
|
||||
|
||||
find_library(NGHTTP2_LIBRARY NAMES nghttp2)
|
||||
|
||||
find_package_handle_standard_args(NGHTTP2
|
||||
FOUND_VAR
|
||||
NGHTTP2_FOUND
|
||||
REQUIRED_VARS
|
||||
NGHTTP2_LIBRARY
|
||||
NGHTTP2_INCLUDE_DIR
|
||||
find_path(NGHTTP2_INCLUDE_DIR NAMES "nghttp2/nghttp2.h"
|
||||
HINTS
|
||||
${PC_NGHTTP2_INCLUDEDIR}
|
||||
${PC_NGHTTP2_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
set(NGHTTP2_INCLUDE_DIRS ${NGHTTP2_INCLUDE_DIR})
|
||||
set(NGHTTP2_LIBRARIES ${NGHTTP2_LIBRARY})
|
||||
find_library(NGHTTP2_LIBRARY NAMES "nghttp2" "nghttp2_static"
|
||||
HINTS
|
||||
${PC_NGHTTP2_LIBDIR}
|
||||
${PC_NGHTTP2_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
mark_as_advanced(NGHTTP2_INCLUDE_DIRS NGHTTP2_LIBRARIES)
|
||||
if(PC_NGHTTP2_VERSION)
|
||||
set(NGHTTP2_VERSION ${PC_NGHTTP2_VERSION})
|
||||
elseif(NGHTTP2_INCLUDE_DIR AND EXISTS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2ver.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+NGHTTP2_VERSION[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${NGHTTP2_INCLUDE_DIR}/nghttp2/nghttp2ver.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(NGHTTP2_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(NGHTTP2
|
||||
REQUIRED_VARS
|
||||
NGHTTP2_INCLUDE_DIR
|
||||
NGHTTP2_LIBRARY
|
||||
VERSION_VAR
|
||||
NGHTTP2_VERSION
|
||||
)
|
||||
|
||||
if(NGHTTP2_FOUND)
|
||||
set(NGHTTP2_INCLUDE_DIRS ${NGHTTP2_INCLUDE_DIR})
|
||||
set(NGHTTP2_LIBRARIES ${NGHTTP2_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(NGHTTP2_INCLUDE_DIR NGHTTP2_LIBRARY)
|
||||
|
56
deps/curl/CMake/FindNGHTTP3.cmake
vendored
56
deps/curl/CMake/FindNGHTTP3.cmake
vendored
@ -21,38 +21,32 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the nghttp3 library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `NGHTTP3_INCLUDE_DIR`: The nghttp3 include directory.
|
||||
# - `NGHTTP3_LIBRARY`: Path to `nghttp3` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `NGHTTP3_FOUND`: System has nghttp3.
|
||||
# - `NGHTTP3_INCLUDE_DIRS`: The nghttp3 include directories.
|
||||
# - `NGHTTP3_LIBRARIES`: The nghttp3 library names.
|
||||
# - `NGHTTP3_VERSION`: Version of nghttp3.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindNGHTTP3
|
||||
----------
|
||||
|
||||
Find the nghttp3 library
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
``NGHTTP3_FOUND``
|
||||
System has nghttp3
|
||||
``NGHTTP3_INCLUDE_DIRS``
|
||||
The nghttp3 include directories.
|
||||
``NGHTTP3_LIBRARIES``
|
||||
The libraries needed to use nghttp3
|
||||
``NGHTTP3_VERSION``
|
||||
version of nghttp3.
|
||||
#]=======================================================================]
|
||||
|
||||
if(UNIX)
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(PC_NGHTTP3 libnghttp3)
|
||||
pkg_check_modules(PC_NGHTTP3 "libnghttp3")
|
||||
endif()
|
||||
|
||||
find_path(NGHTTP3_INCLUDE_DIR nghttp3/nghttp3.h
|
||||
find_path(NGHTTP3_INCLUDE_DIR NAMES "nghttp3/nghttp3.h"
|
||||
HINTS
|
||||
${PC_NGHTTP3_INCLUDEDIR}
|
||||
${PC_NGHTTP3_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(NGHTTP3_LIBRARY NAMES nghttp3
|
||||
find_library(NGHTTP3_LIBRARY NAMES "nghttp3"
|
||||
HINTS
|
||||
${PC_NGHTTP3_LIBDIR}
|
||||
${PC_NGHTTP3_LIBRARY_DIRS}
|
||||
@ -60,19 +54,27 @@ find_library(NGHTTP3_LIBRARY NAMES nghttp3
|
||||
|
||||
if(PC_NGHTTP3_VERSION)
|
||||
set(NGHTTP3_VERSION ${PC_NGHTTP3_VERSION})
|
||||
elseif(NGHTTP3_INCLUDE_DIR AND EXISTS "${NGHTTP3_INCLUDE_DIR}/nghttp3/version.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+NGHTTP3_VERSION[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${NGHTTP3_INCLUDE_DIR}/nghttp3/version.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(NGHTTP3_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(NGHTTP3
|
||||
REQUIRED_VARS
|
||||
NGHTTP3_LIBRARY
|
||||
NGHTTP3_INCLUDE_DIR
|
||||
VERSION_VAR NGHTTP3_VERSION
|
||||
NGHTTP3_LIBRARY
|
||||
VERSION_VAR
|
||||
NGHTTP3_VERSION
|
||||
)
|
||||
|
||||
if(NGHTTP3_FOUND)
|
||||
set(NGHTTP3_LIBRARIES ${NGHTTP3_LIBRARY})
|
||||
set(NGHTTP3_INCLUDE_DIRS ${NGHTTP3_INCLUDE_DIR})
|
||||
set(NGHTTP3_LIBRARIES ${NGHTTP3_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(NGHTTP3_INCLUDE_DIRS NGHTTP3_LIBRARIES)
|
||||
mark_as_advanced(NGHTTP3_INCLUDE_DIR NGHTTP3_LIBRARY)
|
||||
|
101
deps/curl/CMake/FindNGTCP2.cmake
vendored
101
deps/curl/CMake/FindNGTCP2.cmake
vendored
@ -21,46 +21,40 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the ngtcp2 library
|
||||
#
|
||||
# This module accepts optional COMPONENTS to control the crypto library (these are
|
||||
# mutually exclusive):
|
||||
#
|
||||
# - quictls: Use `libngtcp2_crypto_quictls`. (choose this for LibreSSL)
|
||||
# - BoringSSL: Use `libngtcp2_crypto_boringssl`. (choose this for AWS-LC)
|
||||
# - wolfSSL: Use `libngtcp2_crypto_wolfssl`.
|
||||
# - GnuTLS: Use `libngtcp2_crypto_gnutls`.
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `NGTCP2_INCLUDE_DIR`: The ngtcp2 include directory.
|
||||
# - `NGTCP2_LIBRARY`: Path to `ngtcp2` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `NGTCP2_FOUND`: System has ngtcp2.
|
||||
# - `NGTCP2_INCLUDE_DIRS`: The ngtcp2 include directories.
|
||||
# - `NGTCP2_LIBRARIES`: The ngtcp2 library names.
|
||||
# - `NGTCP2_VERSION`: Version of ngtcp2.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindNGTCP2
|
||||
----------
|
||||
|
||||
Find the ngtcp2 library
|
||||
|
||||
This module accepts optional COMPONENTS to control the crypto library (these are
|
||||
mutually exclusive)::
|
||||
|
||||
quictls, LibreSSL: Use libngtcp2_crypto_quictls
|
||||
BoringSSL, AWS-LC: Use libngtcp2_crypto_boringssl
|
||||
wolfSSL: Use libngtcp2_crypto_wolfssl
|
||||
GnuTLS: Use libngtcp2_crypto_gnutls
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
``NGTCP2_FOUND``
|
||||
System has ngtcp2
|
||||
``NGTCP2_INCLUDE_DIRS``
|
||||
The ngtcp2 include directories.
|
||||
``NGTCP2_LIBRARIES``
|
||||
The libraries needed to use ngtcp2
|
||||
``NGTCP2_VERSION``
|
||||
version of ngtcp2.
|
||||
#]=======================================================================]
|
||||
|
||||
if(UNIX)
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(PC_NGTCP2 libngtcp2)
|
||||
pkg_check_modules(PC_NGTCP2 "libngtcp2")
|
||||
endif()
|
||||
|
||||
find_path(NGTCP2_INCLUDE_DIR ngtcp2/ngtcp2.h
|
||||
find_path(NGTCP2_INCLUDE_DIR NAMES "ngtcp2/ngtcp2.h"
|
||||
HINTS
|
||||
${PC_NGTCP2_INCLUDEDIR}
|
||||
${PC_NGTCP2_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(NGTCP2_LIBRARY NAMES ngtcp2
|
||||
find_library(NGTCP2_LIBRARY NAMES "ngtcp2"
|
||||
HINTS
|
||||
${PC_NGTCP2_LIBDIR}
|
||||
${PC_NGTCP2_LIBRARY_DIRS}
|
||||
@ -68,33 +62,43 @@ find_library(NGTCP2_LIBRARY NAMES ngtcp2
|
||||
|
||||
if(PC_NGTCP2_VERSION)
|
||||
set(NGTCP2_VERSION ${PC_NGTCP2_VERSION})
|
||||
elseif(NGTCP2_INCLUDE_DIR AND EXISTS "${NGTCP2_INCLUDE_DIR}/ngtcp2/version.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+NGTCP2_VERSION[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${NGTCP2_INCLUDE_DIR}/ngtcp2/version.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(NGTCP2_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
if(NGTCP2_FIND_COMPONENTS)
|
||||
set(NGTCP2_CRYPTO_BACKEND "")
|
||||
foreach(component IN LISTS NGTCP2_FIND_COMPONENTS)
|
||||
if(component MATCHES "^(BoringSSL|quictls|wolfSSL|GnuTLS)")
|
||||
if(NGTCP2_CRYPTO_BACKEND)
|
||||
set(_ngtcp2_crypto_backend "")
|
||||
foreach(_component IN LISTS NGTCP2_FIND_COMPONENTS)
|
||||
if(_component MATCHES "^(BoringSSL|quictls|wolfSSL|GnuTLS)")
|
||||
if(_ngtcp2_crypto_backend)
|
||||
message(FATAL_ERROR "NGTCP2: Only one crypto library can be selected")
|
||||
endif()
|
||||
set(NGTCP2_CRYPTO_BACKEND ${component})
|
||||
set(_ngtcp2_crypto_backend ${_component})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(NGTCP2_CRYPTO_BACKEND)
|
||||
string(TOLOWER "ngtcp2_crypto_${NGTCP2_CRYPTO_BACKEND}" _crypto_library)
|
||||
if(UNIX)
|
||||
pkg_search_module(PC_${_crypto_library} lib${_crypto_library})
|
||||
if(_ngtcp2_crypto_backend)
|
||||
string(TOLOWER "ngtcp2_crypto_${_ngtcp2_crypto_backend}" _crypto_library)
|
||||
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
pkg_check_modules(PC_${_crypto_library} "lib${_crypto_library}")
|
||||
endif()
|
||||
find_library(${_crypto_library}_LIBRARY
|
||||
NAMES
|
||||
${_crypto_library}
|
||||
|
||||
get_filename_component(_ngtcp2_library_dir "${NGTCP2_LIBRARY}" DIRECTORY)
|
||||
find_library(${_crypto_library}_LIBRARY NAMES ${_crypto_library}
|
||||
HINTS
|
||||
${_ngtcp2_library_dir}
|
||||
${PC_${_crypto_library}_LIBDIR}
|
||||
${PC_${_crypto_library}_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
if(${_crypto_library}_LIBRARY)
|
||||
set(NGTCP2_${NGTCP2_CRYPTO_BACKEND}_FOUND TRUE)
|
||||
set(NGTCP2_${_ngtcp2_crypto_backend}_FOUND TRUE)
|
||||
set(NGTCP2_CRYPTO_LIBRARY ${${_crypto_library}_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
@ -103,15 +107,16 @@ endif()
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(NGTCP2
|
||||
REQUIRED_VARS
|
||||
NGTCP2_LIBRARY
|
||||
NGTCP2_INCLUDE_DIR
|
||||
VERSION_VAR NGTCP2_VERSION
|
||||
NGTCP2_LIBRARY
|
||||
VERSION_VAR
|
||||
NGTCP2_VERSION
|
||||
HANDLE_COMPONENTS
|
||||
)
|
||||
|
||||
if(NGTCP2_FOUND)
|
||||
set(NGTCP2_LIBRARIES ${NGTCP2_LIBRARY} ${NGTCP2_CRYPTO_LIBRARY})
|
||||
set(NGTCP2_INCLUDE_DIRS ${NGTCP2_INCLUDE_DIR})
|
||||
set(NGTCP2_LIBRARIES ${NGTCP2_LIBRARY} ${NGTCP2_CRYPTO_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(NGTCP2_INCLUDE_DIRS NGTCP2_LIBRARIES)
|
||||
mark_as_advanced(NGTCP2_INCLUDE_DIR NGTCP2_LIBRARY NGTCP2_CRYPTO_LIBRARY)
|
||||
|
84
deps/curl/CMake/FindNettle.cmake
vendored
Normal file
84
deps/curl/CMake/FindNettle.cmake
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the nettle library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `NETTLE_INCLUDE_DIR`: The nettle include directory.
|
||||
# - `NETTLE_LIBRARY`: Path to `nettle` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `NETTLE_FOUND`: System has nettle.
|
||||
# - `NETTLE_INCLUDE_DIRS`: The nettle include directories.
|
||||
# - `NETTLE_LIBRARIES`: The nettle library names.
|
||||
# - `NETTLE_LIBRARY_DIRS`: The nettle library directories.
|
||||
# - `NETTLE_CFLAGS`: Required compiler flags.
|
||||
# - `NETTLE_VERSION`: Version of nettle.
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED NETTLE_INCLUDE_DIR AND
|
||||
NOT DEFINED NETTLE_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(NETTLE "nettle")
|
||||
endif()
|
||||
|
||||
if(NETTLE_FOUND)
|
||||
string(REPLACE ";" " " NETTLE_CFLAGS "${NETTLE_CFLAGS}")
|
||||
message(STATUS "Found Nettle (via pkg-config): ${NETTLE_INCLUDE_DIRS} (found version \"${NETTLE_VERSION}\")")
|
||||
else()
|
||||
find_path(NETTLE_INCLUDE_DIR NAMES "nettle/sha2.h")
|
||||
find_library(NETTLE_LIBRARY NAMES "nettle")
|
||||
|
||||
unset(NETTLE_VERSION CACHE)
|
||||
if(NETTLE_INCLUDE_DIR AND EXISTS "${NETTLE_INCLUDE_DIR}/nettle/version.h")
|
||||
set(_version_regex1 "#[\t ]*define[ \t]+NETTLE_VERSION_MAJOR[ \t]+([0-9]+).*")
|
||||
set(_version_regex2 "#[\t ]*define[ \t]+NETTLE_VERSION_MINOR[ \t]+([0-9]+).*")
|
||||
file(STRINGS "${NETTLE_INCLUDE_DIR}/nettle/version.h" _version_str1 REGEX "${_version_regex1}")
|
||||
file(STRINGS "${NETTLE_INCLUDE_DIR}/nettle/version.h" _version_str2 REGEX "${_version_regex2}")
|
||||
string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
|
||||
string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
|
||||
set(NETTLE_VERSION "${_version_str1}.${_version_str2}")
|
||||
unset(_version_regex1)
|
||||
unset(_version_regex2)
|
||||
unset(_version_str1)
|
||||
unset(_version_str2)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Nettle
|
||||
REQUIRED_VARS
|
||||
NETTLE_INCLUDE_DIR
|
||||
NETTLE_LIBRARY
|
||||
VERSION_VAR
|
||||
NETTLE_VERSION
|
||||
)
|
||||
|
||||
if(NETTLE_FOUND)
|
||||
set(NETTLE_INCLUDE_DIRS ${NETTLE_INCLUDE_DIR})
|
||||
set(NETTLE_LIBRARIES ${NETTLE_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(NETTLE_INCLUDE_DIR NETTLE_LIBRARY)
|
||||
endif()
|
70
deps/curl/CMake/FindQUICHE.cmake
vendored
70
deps/curl/CMake/FindQUICHE.cmake
vendored
@ -1,70 +0,0 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindQUICHE
|
||||
----------
|
||||
|
||||
Find the quiche library
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
``QUICHE_FOUND``
|
||||
System has quiche
|
||||
``QUICHE_INCLUDE_DIRS``
|
||||
The quiche include directories.
|
||||
``QUICHE_LIBRARIES``
|
||||
The libraries needed to use quiche
|
||||
#]=======================================================================]
|
||||
if(UNIX)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(PC_QUICHE quiche)
|
||||
endif()
|
||||
|
||||
find_path(QUICHE_INCLUDE_DIR quiche.h
|
||||
HINTS
|
||||
${PC_QUICHE_INCLUDEDIR}
|
||||
${PC_QUICHE_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(QUICHE_LIBRARY NAMES quiche
|
||||
HINTS
|
||||
${PC_QUICHE_LIBDIR}
|
||||
${PC_QUICHE_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(QUICHE
|
||||
REQUIRED_VARS
|
||||
QUICHE_LIBRARY
|
||||
QUICHE_INCLUDE_DIR
|
||||
)
|
||||
|
||||
if(QUICHE_FOUND)
|
||||
set(QUICHE_LIBRARIES ${QUICHE_LIBRARY})
|
||||
set(QUICHE_INCLUDE_DIRS ${QUICHE_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(QUICHE_INCLUDE_DIRS QUICHE_LIBRARIES)
|
67
deps/curl/CMake/FindQuiche.cmake
vendored
Normal file
67
deps/curl/CMake/FindQuiche.cmake
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the quiche library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `QUICHE_INCLUDE_DIR`: The quiche include directory.
|
||||
# - `QUICHE_LIBRARY`: Path to `quiche` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `QUICHE_FOUND`: System has quiche.
|
||||
# - `QUICHE_INCLUDE_DIRS`: The quiche include directories.
|
||||
# - `QUICHE_LIBRARIES`: The quiche library names.
|
||||
# - `QUICHE_LIBRARY_DIRS`: The quiche library directories.
|
||||
# - `QUICHE_CFLAGS`: Required compiler flags.
|
||||
# - `QUICHE_VERSION`: Version of quiche.
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED QUICHE_INCLUDE_DIR AND
|
||||
NOT DEFINED QUICHE_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(QUICHE "quiche")
|
||||
endif()
|
||||
|
||||
if(QUICHE_FOUND)
|
||||
string(REPLACE ";" " " QUICHE_CFLAGS "${QUICHE_CFLAGS}")
|
||||
message(STATUS "Found Quiche (via pkg-config): ${QUICHE_INCLUDE_DIRS} (found version \"${QUICHE_VERSION}\")")
|
||||
else()
|
||||
find_path(QUICHE_INCLUDE_DIR NAMES "quiche.h")
|
||||
find_library(QUICHE_LIBRARY NAMES "quiche")
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Quiche
|
||||
REQUIRED_VARS
|
||||
QUICHE_INCLUDE_DIR
|
||||
QUICHE_LIBRARY
|
||||
)
|
||||
|
||||
if(QUICHE_FOUND)
|
||||
set(QUICHE_INCLUDE_DIRS ${QUICHE_INCLUDE_DIR})
|
||||
set(QUICHE_LIBRARIES ${QUICHE_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(QUICHE_INCLUDE_DIR QUICHE_LIBRARY)
|
||||
endif()
|
101
deps/curl/CMake/FindRustls.cmake
vendored
Normal file
101
deps/curl/CMake/FindRustls.cmake
vendored
Normal file
@ -0,0 +1,101 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the Rustls library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `RUSTLS_INCLUDE_DIR`: The Rustls include directory.
|
||||
# - `RUSTLS_LIBRARY`: Path to `rustls` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `RUSTLS_FOUND`: System has Rustls.
|
||||
# - `RUSTLS_INCLUDE_DIRS`: The Rustls include directories.
|
||||
# - `RUSTLS_LIBRARIES`: The Rustls library names.
|
||||
# - `RUSTLS_LIBRARY_DIRS`: The Rustls library directories.
|
||||
# - `RUSTLS_CFLAGS`: Required compiler flags.
|
||||
# - `RUSTLS_VERSION`: Version of Rustls.
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED RUSTLS_INCLUDE_DIR AND
|
||||
NOT DEFINED RUSTLS_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(RUSTLS "rustls")
|
||||
endif()
|
||||
|
||||
if(RUSTLS_FOUND)
|
||||
string(REPLACE ";" " " RUSTLS_CFLAGS "${RUSTLS_CFLAGS}")
|
||||
message(STATUS "Found Rustls (via pkg-config): ${RUSTLS_INCLUDE_DIRS} (found version \"${RUSTLS_VERSION}\")")
|
||||
else()
|
||||
find_path(RUSTLS_INCLUDE_DIR NAMES "rustls.h")
|
||||
find_library(RUSTLS_LIBRARY NAMES "rustls")
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Rustls
|
||||
REQUIRED_VARS
|
||||
RUSTLS_INCLUDE_DIR
|
||||
RUSTLS_LIBRARY
|
||||
)
|
||||
|
||||
if(RUSTLS_FOUND)
|
||||
set(RUSTLS_INCLUDE_DIRS ${RUSTLS_INCLUDE_DIR})
|
||||
set(RUSTLS_LIBRARIES ${RUSTLS_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(RUSTLS_INCLUDE_DIR RUSTLS_LIBRARY)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
find_library(SECURITY_FRAMEWORK "Security")
|
||||
mark_as_advanced(SECURITY_FRAMEWORK)
|
||||
if(NOT SECURITY_FRAMEWORK)
|
||||
message(FATAL_ERROR "Security framework not found")
|
||||
endif()
|
||||
list(APPEND RUSTLS_LIBRARIES "-framework Security")
|
||||
|
||||
find_library(FOUNDATION_FRAMEWORK "Foundation")
|
||||
mark_as_advanced(FOUNDATION_FRAMEWORK)
|
||||
if(NOT FOUNDATION_FRAMEWORK)
|
||||
message(FATAL_ERROR "Foundation framework not found")
|
||||
endif()
|
||||
list(APPEND RUSTLS_LIBRARIES "-framework Foundation")
|
||||
elseif(NOT WIN32)
|
||||
find_library(_pthread_library "pthread")
|
||||
if(_pthread_library)
|
||||
list(APPEND RUSTLS_LIBRARIES "pthread")
|
||||
endif()
|
||||
mark_as_advanced(_pthread_library)
|
||||
|
||||
find_library(_dl_library "dl")
|
||||
if(_dl_library)
|
||||
list(APPEND RUSTLS_LIBRARIES "dl")
|
||||
endif()
|
||||
mark_as_advanced(_dl_library)
|
||||
|
||||
find_library(_math_library "m")
|
||||
if(_math_library)
|
||||
list(APPEND RUSTLS_LIBRARIES "m")
|
||||
endif()
|
||||
mark_as_advanced(_math_library)
|
||||
endif()
|
65
deps/curl/CMake/FindWolfSSH.cmake
vendored
Normal file
65
deps/curl/CMake/FindWolfSSH.cmake
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the wolfSSH library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `WOLFSSH_INCLUDE_DIR`: The wolfSSH include directory.
|
||||
# - `WOLFSSH_LIBRARY`: Path to `wolfssh` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `WOLFSSH_FOUND`: System has wolfSSH.
|
||||
# - `WOLFSSH_INCLUDE_DIRS`: The wolfSSH include directories.
|
||||
# - `WOLFSSH_LIBRARIES`: The wolfSSH library names.
|
||||
# - `WOLFSSH_VERSION`: Version of wolfSSH.
|
||||
|
||||
find_path(WOLFSSH_INCLUDE_DIR NAMES "wolfssh/ssh.h")
|
||||
find_library(WOLFSSH_LIBRARY NAMES "wolfssh" "libwolfssh")
|
||||
|
||||
unset(WOLFSSH_VERSION CACHE)
|
||||
if(WOLFSSH_INCLUDE_DIR AND EXISTS "${WOLFSSH_INCLUDE_DIR}/wolfssh/version.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+LIBWOLFSSH_VERSION_STRING[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${WOLFSSH_INCLUDE_DIR}/wolfssh/version.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(WOLFSSH_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(WolfSSH
|
||||
REQUIRED_VARS
|
||||
WOLFSSH_INCLUDE_DIR
|
||||
WOLFSSH_LIBRARY
|
||||
VERSION_VAR
|
||||
WOLFSSH_VERSION
|
||||
)
|
||||
|
||||
if(WOLFSSH_FOUND)
|
||||
set(WOLFSSH_INCLUDE_DIRS ${WOLFSSH_INCLUDE_DIR})
|
||||
set(WOLFSSH_LIBRARIES ${WOLFSSH_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(WOLFSSH_INCLUDE_DIR WOLFSSH_LIBRARY)
|
78
deps/curl/CMake/FindWolfSSL.cmake
vendored
78
deps/curl/CMake/FindWolfSSL.cmake
vendored
@ -21,16 +21,76 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
find_path(WolfSSL_INCLUDE_DIR NAMES wolfssl/ssl.h)
|
||||
find_library(WolfSSL_LIBRARY NAMES wolfssl)
|
||||
mark_as_advanced(WolfSSL_INCLUDE_DIR WolfSSL_LIBRARY)
|
||||
# Find the wolfSSL library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `WOLFSSL_INCLUDE_DIR`: The wolfSSL include directory.
|
||||
# - `WOLFSSL_LIBRARY`: Path to `wolfssl` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `WOLFSSL_FOUND`: System has wolfSSL.
|
||||
# - `WOLFSSL_INCLUDE_DIRS`: The wolfSSL include directories.
|
||||
# - `WOLFSSL_LIBRARIES`: The wolfSSL library names.
|
||||
# - `WOLFSSL_LIBRARY_DIRS`: The wolfSSL library directories.
|
||||
# - `WOLFSSL_CFLAGS`: Required compiler flags.
|
||||
# - `WOLFSSL_VERSION`: Version of wolfSSL.
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(WolfSSL
|
||||
REQUIRED_VARS WolfSSL_INCLUDE_DIR WolfSSL_LIBRARY
|
||||
if(DEFINED WolfSSL_INCLUDE_DIR AND NOT DEFINED WOLFSSL_INCLUDE_DIR)
|
||||
message(WARNING "WolfSSL_INCLUDE_DIR is deprecated, use WOLFSSL_INCLUDE_DIR instead.")
|
||||
set(WOLFSSL_INCLUDE_DIR "${WolfSSL_INCLUDE_DIR}")
|
||||
endif()
|
||||
if(DEFINED WolfSSL_LIBRARY AND NOT DEFINED WOLFSSL_LIBRARY)
|
||||
message(WARNING "WolfSSL_LIBRARY is deprecated, use WOLFSSL_LIBRARY instead.")
|
||||
set(WOLFSSL_LIBRARY "${WolfSSL_LIBRARY}")
|
||||
endif()
|
||||
|
||||
if(CURL_USE_PKGCONFIG AND
|
||||
NOT DEFINED WOLFSSL_INCLUDE_DIR AND
|
||||
NOT DEFINED WOLFSSL_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(WOLFSSL "wolfssl")
|
||||
endif()
|
||||
|
||||
if(WOLFSSL_FOUND)
|
||||
string(REPLACE ";" " " WOLFSSL_CFLAGS "${WOLFSSL_CFLAGS}")
|
||||
message(STATUS "Found WolfSSL (via pkg-config): ${WOLFSSL_INCLUDE_DIRS} (found version \"${WOLFSSL_VERSION}\")")
|
||||
else()
|
||||
find_path(WOLFSSL_INCLUDE_DIR NAMES "wolfssl/ssl.h")
|
||||
find_library(WOLFSSL_LIBRARY NAMES "wolfssl")
|
||||
|
||||
unset(WOLFSSL_VERSION CACHE)
|
||||
if(WOLFSSL_INCLUDE_DIR AND EXISTS "${WOLFSSL_INCLUDE_DIR}/wolfssl/version.h")
|
||||
set(_version_regex "#[\t ]*define[\t ]+LIBWOLFSSL_VERSION_STRING[\t ]+\"([^\"]*)\"")
|
||||
file(STRINGS "${WOLFSSL_INCLUDE_DIR}/wolfssl/version.h" _version_str REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1" _version_str "${_version_str}")
|
||||
set(WOLFSSL_VERSION "${_version_str}")
|
||||
unset(_version_regex)
|
||||
unset(_version_str)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(WolfSSL
|
||||
REQUIRED_VARS
|
||||
WOLFSSL_INCLUDE_DIR
|
||||
WOLFSSL_LIBRARY
|
||||
VERSION_VAR
|
||||
WOLFSSL_VERSION
|
||||
)
|
||||
|
||||
if(WolfSSL_FOUND)
|
||||
set(WolfSSL_INCLUDE_DIRS ${WolfSSL_INCLUDE_DIR})
|
||||
set(WolfSSL_LIBRARIES ${WolfSSL_LIBRARY})
|
||||
if(WOLFSSL_FOUND)
|
||||
set(WOLFSSL_INCLUDE_DIRS ${WOLFSSL_INCLUDE_DIR})
|
||||
set(WOLFSSL_LIBRARIES ${WOLFSSL_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(WOLFSSL_INCLUDE_DIR WOLFSSL_LIBRARY)
|
||||
endif()
|
||||
|
||||
if(NOT WIN32)
|
||||
find_library(_math_library "m")
|
||||
if(_math_library)
|
||||
list(APPEND WOLFSSL_LIBRARIES "m") # for log and pow
|
||||
endif()
|
||||
mark_as_advanced(_math_library)
|
||||
endif()
|
||||
|
95
deps/curl/CMake/FindZstd.cmake
vendored
95
deps/curl/CMake/FindZstd.cmake
vendored
@ -21,58 +21,79 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# Find the zstd library
|
||||
#
|
||||
# Input variables:
|
||||
#
|
||||
# - `ZSTD_INCLUDE_DIR`: The zstd include directory.
|
||||
# - `ZSTD_LIBRARY`: Path to `zstd` library.
|
||||
#
|
||||
# Result variables:
|
||||
#
|
||||
# - `ZSTD_FOUND`: System has zstd.
|
||||
# - `ZSTD_INCLUDE_DIRS`: The zstd include directories.
|
||||
# - `ZSTD_LIBRARIES`: The zstd library names.
|
||||
# - `ZSTD_VERSION`: Version of zstd.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindZstd
|
||||
----------
|
||||
|
||||
Find the zstd library
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
``Zstd_FOUND``
|
||||
System has zstd
|
||||
``Zstd_INCLUDE_DIRS``
|
||||
The zstd include directories.
|
||||
``Zstd_LIBRARIES``
|
||||
The libraries needed to use zstd
|
||||
#]=======================================================================]
|
||||
|
||||
if(UNIX)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(PC_Zstd libzstd)
|
||||
if(DEFINED Zstd_INCLUDE_DIR AND NOT DEFINED ZSTD_INCLUDE_DIR)
|
||||
message(WARNING "Zstd_INCLUDE_DIR is deprecated, use ZSTD_INCLUDE_DIR instead.")
|
||||
set(ZSTD_INCLUDE_DIR "${Zstd_INCLUDE_DIR}")
|
||||
endif()
|
||||
if(DEFINED Zstd_LIBRARY AND NOT DEFINED ZSTD_LIBRARY)
|
||||
message(WARNING "Zstd_LIBRARY is deprecated, use ZSTD_LIBRARY instead.")
|
||||
set(ZSTD_LIBRARY "${Zstd_LIBRARY}")
|
||||
endif()
|
||||
|
||||
find_path(Zstd_INCLUDE_DIR zstd.h
|
||||
if(CURL_USE_PKGCONFIG)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PC_ZSTD "libzstd")
|
||||
endif()
|
||||
|
||||
find_path(ZSTD_INCLUDE_DIR NAMES "zstd.h"
|
||||
HINTS
|
||||
${PC_Zstd_INCLUDEDIR}
|
||||
${PC_Zstd_INCLUDE_DIRS}
|
||||
${PC_ZSTD_INCLUDEDIR}
|
||||
${PC_ZSTD_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(Zstd_LIBRARY NAMES zstd
|
||||
find_library(ZSTD_LIBRARY NAMES "zstd"
|
||||
HINTS
|
||||
${PC_Zstd_LIBDIR}
|
||||
${PC_Zstd_LIBRARY_DIRS}
|
||||
${PC_ZSTD_LIBDIR}
|
||||
${PC_ZSTD_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
if(Zstd_INCLUDE_DIR)
|
||||
file(READ "${Zstd_INCLUDE_DIR}/zstd.h" _zstd_header)
|
||||
string(REGEX MATCH ".*define ZSTD_VERSION_MAJOR *([0-9]+).*define ZSTD_VERSION_MINOR *([0-9]+).*define ZSTD_VERSION_RELEASE *([0-9]+)" _zstd_ver "${_zstd_header}")
|
||||
set(Zstd_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
|
||||
if(PC_ZSTD_VERSION)
|
||||
set(ZSTD_VERSION ${PC_ZSTD_VERSION})
|
||||
elseif(ZSTD_INCLUDE_DIR AND EXISTS "${ZSTD_INCLUDE_DIR}/zstd.h")
|
||||
set(_version_regex1 "#[\t ]*define[ \t]+ZSTD_VERSION_MAJOR[ \t]+([0-9]+).*")
|
||||
set(_version_regex2 "#[\t ]*define[ \t]+ZSTD_VERSION_MINOR[ \t]+([0-9]+).*")
|
||||
set(_version_regex3 "#[\t ]*define[ \t]+ZSTD_VERSION_RELEASE[ \t]+([0-9]+).*")
|
||||
file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str1 REGEX "${_version_regex1}")
|
||||
file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str2 REGEX "${_version_regex2}")
|
||||
file(STRINGS "${ZSTD_INCLUDE_DIR}/zstd.h" _version_str3 REGEX "${_version_regex3}")
|
||||
string(REGEX REPLACE "${_version_regex1}" "\\1" _version_str1 "${_version_str1}")
|
||||
string(REGEX REPLACE "${_version_regex2}" "\\1" _version_str2 "${_version_str2}")
|
||||
string(REGEX REPLACE "${_version_regex3}" "\\1" _version_str3 "${_version_str3}")
|
||||
set(ZSTD_VERSION "${_version_str1}.${_version_str2}.${_version_str3}")
|
||||
unset(_version_regex1)
|
||||
unset(_version_regex2)
|
||||
unset(_version_regex3)
|
||||
unset(_version_str1)
|
||||
unset(_version_str2)
|
||||
unset(_version_str3)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Zstd
|
||||
REQUIRED_VARS
|
||||
Zstd_LIBRARY
|
||||
Zstd_INCLUDE_DIR
|
||||
VERSION_VAR Zstd_VERSION
|
||||
ZSTD_INCLUDE_DIR
|
||||
ZSTD_LIBRARY
|
||||
VERSION_VAR
|
||||
ZSTD_VERSION
|
||||
)
|
||||
|
||||
if(Zstd_FOUND)
|
||||
set(Zstd_LIBRARIES ${Zstd_LIBRARY})
|
||||
set(Zstd_INCLUDE_DIRS ${Zstd_INCLUDE_DIR})
|
||||
if(ZSTD_FOUND)
|
||||
set(ZSTD_INCLUDE_DIRS ${ZSTD_INCLUDE_DIR})
|
||||
set(ZSTD_LIBRARIES ${ZSTD_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(Zstd_INCLUDE_DIRS Zstd_LIBRARIES)
|
||||
mark_as_advanced(ZSTD_INCLUDE_DIR ZSTD_LIBRARY)
|
||||
|
74
deps/curl/CMake/Macros.cmake
vendored
74
deps/curl/CMake/Macros.cmake
vendored
@ -21,60 +21,62 @@
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
#File defines convenience macros for available feature testing
|
||||
# File defines convenience macros for available feature testing
|
||||
|
||||
# Check if header file exists and add it to the list.
|
||||
# This macro is intended to be called multiple times with a sequence of
|
||||
# possibly dependent header files. Some headers depend on others to be
|
||||
# compiled correctly.
|
||||
macro(check_include_file_concat FILE VARIABLE)
|
||||
check_include_files("${CURL_INCLUDES};${FILE}" ${VARIABLE})
|
||||
if(${VARIABLE})
|
||||
set(CURL_INCLUDES ${CURL_INCLUDES} ${FILE})
|
||||
set(CURL_TEST_DEFINES "${CURL_TEST_DEFINES} -D${VARIABLE}")
|
||||
macro(check_include_file_concat _file _variable)
|
||||
check_include_files("${CURL_INCLUDES};${_file}" ${_variable})
|
||||
if(${_variable})
|
||||
list(APPEND CURL_INCLUDES ${_file})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# For other curl specific tests, use this macro.
|
||||
macro(curl_internal_test CURL_TEST)
|
||||
if(NOT DEFINED "${CURL_TEST}")
|
||||
set(MACRO_CHECK_FUNCTION_DEFINITIONS
|
||||
"-D${CURL_TEST} ${CURL_TEST_DEFINES} ${CMAKE_REQUIRED_FLAGS}")
|
||||
# Return result in variable: CURL_TEST_OUTPUT
|
||||
macro(curl_internal_test _curl_test)
|
||||
if(NOT DEFINED "${_curl_test}")
|
||||
string(REPLACE ";" " " _cmake_required_definitions "${CMAKE_REQUIRED_DEFINITIONS}")
|
||||
if(CMAKE_REQUIRED_LIBRARIES)
|
||||
set(CURL_TEST_ADD_LIBRARIES
|
||||
set(_curl_test_add_libraries
|
||||
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Performing Test ${CURL_TEST}")
|
||||
try_compile(${CURL_TEST}
|
||||
${CMAKE_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c
|
||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
|
||||
"${CURL_TEST_ADD_LIBRARIES}"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
if(${CURL_TEST})
|
||||
set(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}")
|
||||
message(STATUS "Performing Test ${CURL_TEST} - Success")
|
||||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Performing Test ${CURL_TEST} passed with the following output:\n"
|
||||
"${OUTPUT}\n")
|
||||
message(STATUS "Performing Test ${_curl_test}")
|
||||
try_compile(${_curl_test}
|
||||
${PROJECT_BINARY_DIR}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/CMake/CurlTests.c"
|
||||
CMAKE_FLAGS
|
||||
"-DCOMPILE_DEFINITIONS:STRING=-D${_curl_test} ${CURL_TEST_DEFINES} ${_cmake_required_definitions}"
|
||||
"${_curl_test_add_libraries}"
|
||||
OUTPUT_VARIABLE CURL_TEST_OUTPUT)
|
||||
if(${_curl_test})
|
||||
set(${_curl_test} 1 CACHE INTERNAL "Curl test")
|
||||
message(STATUS "Performing Test ${_curl_test} - Success")
|
||||
else()
|
||||
message(STATUS "Performing Test ${CURL_TEST} - Failed")
|
||||
set(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}")
|
||||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Performing Test ${CURL_TEST} failed with the following output:\n"
|
||||
"${OUTPUT}\n")
|
||||
set(${_curl_test} "" CACHE INTERNAL "Curl test")
|
||||
message(STATUS "Performing Test ${_curl_test} - Failed")
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(optional_dependency DEPENDENCY)
|
||||
set(CURL_${DEPENDENCY} AUTO CACHE STRING "Build curl with ${DEPENDENCY} support (AUTO, ON or OFF)")
|
||||
set_property(CACHE CURL_${DEPENDENCY} PROPERTY STRINGS AUTO ON OFF)
|
||||
macro(curl_dependency_option _dependency)
|
||||
set(CURL_${_dependency} "AUTO" CACHE STRING "Build curl with ${_dependency} support (AUTO, ON or OFF)")
|
||||
set_property(CACHE CURL_${_dependency} PROPERTY STRINGS "AUTO" "ON" "OFF")
|
||||
|
||||
if(CURL_${DEPENDENCY} STREQUAL AUTO)
|
||||
find_package(${DEPENDENCY})
|
||||
elseif(CURL_${DEPENDENCY})
|
||||
find_package(${DEPENDENCY} REQUIRED)
|
||||
if(CURL_${_dependency} STREQUAL "AUTO")
|
||||
find_package(${_dependency})
|
||||
elseif(CURL_${_dependency})
|
||||
find_package(${_dependency} REQUIRED)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Convert the passed paths to libpath linker options and add them to CMAKE_REQUIRED_LINK_OPTIONS.
|
||||
macro(curl_required_libpaths _libpaths_arg)
|
||||
set(_libpaths "${_libpaths_arg}")
|
||||
foreach(_libpath IN LISTS _libpaths)
|
||||
list(APPEND CMAKE_REQUIRED_LINK_OPTIONS "${CMAKE_LIBRARY_PATH_FLAG}${_libpath}")
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
50
deps/curl/CMake/OtherTests.cmake
vendored
50
deps/curl/CMake/OtherTests.cmake
vendored
@ -25,26 +25,27 @@ include(CheckCSourceCompiles)
|
||||
include(CheckCSourceRuns)
|
||||
include(CheckTypeSize)
|
||||
|
||||
macro(add_header_include check header)
|
||||
if(${check})
|
||||
macro(add_header_include _check _header)
|
||||
if(${_check})
|
||||
set(_source_epilogue "${_source_epilogue}
|
||||
#include <${header}>")
|
||||
#include <${_header}>")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
if(NOT DEFINED HAVE_STRUCT_SOCKADDR_STORAGE)
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES)
|
||||
cmake_push_check_state()
|
||||
unset(CMAKE_EXTRA_INCLUDE_FILES)
|
||||
if(WIN32)
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h")
|
||||
set(CMAKE_REQUIRED_DEFINITIONS "-DWIN32_LEAN_AND_MEAN")
|
||||
set(CMAKE_REQUIRED_LIBRARIES "ws2_32")
|
||||
elseif(HAVE_SYS_SOCKET_H)
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
|
||||
endif()
|
||||
check_type_size("struct sockaddr_storage" SIZEOF_STRUCT_SOCKADDR_STORAGE)
|
||||
set(HAVE_STRUCT_SOCKADDR_STORAGE ${HAVE_SIZEOF_STRUCT_SOCKADDR_STORAGE})
|
||||
cmake_pop_check_state()
|
||||
endif()
|
||||
|
||||
if(NOT WIN32)
|
||||
@ -75,39 +76,6 @@ check_c_source_compiles("${_source_epilogue}
|
||||
|
||||
unset(CMAKE_TRY_COMPILE_TARGET_TYPE)
|
||||
|
||||
if(NOT CMAKE_CROSSCOMPILING AND NOT APPLE)
|
||||
set(_source_epilogue "#undef inline")
|
||||
add_header_include(HAVE_SYS_POLL_H "sys/poll.h")
|
||||
add_header_include(HAVE_POLL_H "poll.h")
|
||||
check_c_source_runs("${_source_epilogue}
|
||||
#include <stdlib.h>
|
||||
#include <sys/time.h>
|
||||
int main(void)
|
||||
{
|
||||
if(0 != poll(0, 0, 10)) {
|
||||
return 1; /* fail */
|
||||
}
|
||||
else {
|
||||
/* detect the 10.12 poll() breakage */
|
||||
struct timeval before, after;
|
||||
int rc;
|
||||
size_t us;
|
||||
|
||||
gettimeofday(&before, NULL);
|
||||
rc = poll(NULL, 0, 500);
|
||||
gettimeofday(&after, NULL);
|
||||
|
||||
us = (after.tv_sec - before.tv_sec) * 1000000 +
|
||||
(after.tv_usec - before.tv_usec);
|
||||
|
||||
if(us < 400000) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}" HAVE_POLL_FINE)
|
||||
endif()
|
||||
|
||||
# Detect HAVE_GETADDRINFO_THREADSAFE
|
||||
|
||||
if(WIN32)
|
||||
@ -122,7 +90,7 @@ elseif(APPLE OR
|
||||
CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR
|
||||
CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||
set(HAVE_GETADDRINFO_THREADSAFE TRUE)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "BSD")
|
||||
elseif(BSD OR CMAKE_SYSTEM_NAME MATCHES "BSD")
|
||||
set(HAVE_GETADDRINFO_THREADSAFE FALSE)
|
||||
endif()
|
||||
|
||||
@ -137,7 +105,7 @@ if(NOT DEFINED HAVE_GETADDRINFO_THREADSAFE)
|
||||
#ifdef h_errno
|
||||
return 0;
|
||||
#else
|
||||
force compilation error
|
||||
#error force compilation error
|
||||
#endif
|
||||
}" HAVE_H_ERRNO)
|
||||
|
||||
@ -158,7 +126,7 @@ if(NOT DEFINED HAVE_GETADDRINFO_THREADSAFE)
|
||||
#elif defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 700)
|
||||
return 0;
|
||||
#else
|
||||
force compilation error
|
||||
#error force compilation error
|
||||
#endif
|
||||
}" HAVE_H_ERRNO_SBS_ISSUE_7)
|
||||
endif()
|
||||
|
129
deps/curl/CMake/PickyWarnings.cmake
vendored
129
deps/curl/CMake/PickyWarnings.cmake
vendored
@ -23,10 +23,27 @@
|
||||
###########################################################################
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
unset(WPICKY)
|
||||
unset(_picky)
|
||||
|
||||
if(CURL_WERROR AND CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
|
||||
set(WPICKY "${WPICKY} -pedantic-errors")
|
||||
if(CURL_WERROR AND
|
||||
((CMAKE_COMPILER_IS_GNUCC AND
|
||||
NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0 AND
|
||||
NOT CMAKE_VERSION VERSION_LESS 3.23.0) OR # to avoid check_symbol_exists() conflicting with GCC -pedantic-errors
|
||||
CMAKE_C_COMPILER_ID MATCHES "Clang"))
|
||||
list(APPEND _picky "-pedantic-errors")
|
||||
if(MSVC) # clang-cl
|
||||
list(APPEND _picky "-Wno-language-extension-token") # Override default error to make __int64 size detection pass
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(APPLE AND
|
||||
(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6) OR
|
||||
(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.3))
|
||||
list(APPEND _picky "-Werror=partial-availability") # clang 3.6 appleclang 6.3
|
||||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
list(APPEND _picky "-Werror-implicit-function-declaration") # clang 1.0 gcc 2.95
|
||||
endif()
|
||||
|
||||
if(PICKY_COMPILER)
|
||||
@ -35,29 +52,29 @@ if(PICKY_COMPILER)
|
||||
# https://clang.llvm.org/docs/DiagnosticsReference.html
|
||||
# https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
|
||||
|
||||
# WPICKY_ENABLE = Options we want to enable as-is.
|
||||
# WPICKY_DETECT = Options we want to test first and enable if available.
|
||||
# _picky_enable = Options we want to enable as-is.
|
||||
# _picky_detect = Options we want to test first and enable if available.
|
||||
|
||||
# Prefer the -Wextra alias with clang.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(WPICKY_ENABLE "-Wextra")
|
||||
set(_picky_enable "-Wextra")
|
||||
else()
|
||||
set(WPICKY_ENABLE "-W")
|
||||
set(_picky_enable "-W")
|
||||
endif()
|
||||
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Wall -pedantic
|
||||
)
|
||||
|
||||
# ----------------------------------
|
||||
# Add new options here, if in doubt:
|
||||
# ----------------------------------
|
||||
set(WPICKY_DETECT
|
||||
set(_picky_detect
|
||||
)
|
||||
|
||||
# Assume these options always exist with both clang and gcc.
|
||||
# Require clang 3.0 / gcc 2.95 or later.
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Wbad-function-cast # clang 2.7 gcc 2.95
|
||||
-Wconversion # clang 2.7 gcc 2.95
|
||||
-Winline # clang 1.0 gcc 1.0
|
||||
@ -75,7 +92,7 @@ if(PICKY_COMPILER)
|
||||
)
|
||||
|
||||
# Always enable with clang, version dependent with gcc
|
||||
set(WPICKY_COMMON_OLD
|
||||
set(_picky_common_old
|
||||
-Waddress # clang 2.7 gcc 4.3
|
||||
-Wattributes # clang 2.7 gcc 4.1
|
||||
-Wcast-align # clang 1.0 gcc 4.2
|
||||
@ -90,13 +107,13 @@ if(PICKY_COMPILER)
|
||||
-Wmissing-noreturn # clang 2.7 gcc 4.1
|
||||
-Wno-format-nonliteral # clang 1.0 gcc 2.96 (3.0)
|
||||
-Wno-system-headers # clang 1.0 gcc 3.0
|
||||
# -Wpadded # clang 2.9 gcc 4.1 # Not used because we cannot change public structs
|
||||
# -Wpadded # clang 2.9 gcc 4.1 # Not used: We cannot change public structs
|
||||
-Wold-style-definition # clang 2.7 gcc 3.4
|
||||
-Wredundant-decls # clang 2.7 gcc 4.1
|
||||
-Wsign-conversion # clang 2.9 gcc 4.3
|
||||
-Wno-error=sign-conversion # FIXME
|
||||
-Wstrict-prototypes # clang 1.0 gcc 3.3
|
||||
# -Wswitch-enum # clang 2.7 gcc 4.1 # Not used because this basically disallows default case
|
||||
# -Wswitch-enum # clang 2.7 gcc 4.1 # Not used: It basically disallows default case
|
||||
-Wtype-limits # clang 2.7 gcc 4.3
|
||||
-Wunreachable-code # clang 2.7 gcc 4.1
|
||||
# -Wunused-macros # clang 2.7 gcc 4.1 # Not practical
|
||||
@ -104,7 +121,7 @@ if(PICKY_COMPILER)
|
||||
-Wvla # clang 2.8 gcc 4.3
|
||||
)
|
||||
|
||||
set(WPICKY_COMMON
|
||||
set(_picky_common
|
||||
-Wdouble-promotion # clang 3.6 gcc 4.6 appleclang 6.3
|
||||
-Wenum-conversion # clang 3.2 gcc 10.0 appleclang 4.6 g++ 11.0
|
||||
-Wpragmas # clang 3.5 gcc 4.1 appleclang 6.0
|
||||
@ -112,51 +129,55 @@ if(PICKY_COMPILER)
|
||||
)
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
list(APPEND WPICKY_ENABLE
|
||||
${WPICKY_COMMON_OLD}
|
||||
list(APPEND _picky_enable
|
||||
${_picky_common_old}
|
||||
-Wshift-sign-overflow # clang 2.9
|
||||
-Wshorten-64-to-32 # clang 1.0
|
||||
-Wlanguage-extension-token # clang 3.0
|
||||
-Wformat=2 # clang 3.0 gcc 4.8
|
||||
)
|
||||
if(NOT MSVC)
|
||||
list(APPEND _picky_enable
|
||||
-Wlanguage-extension-token # clang 3.0 # Avoid for clang-cl to allow __int64
|
||||
)
|
||||
endif()
|
||||
# Enable based on compiler version
|
||||
if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6) OR
|
||||
(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.3))
|
||||
list(APPEND WPICKY_ENABLE
|
||||
${WPICKY_COMMON}
|
||||
-Wunreachable-code-break # clang 3.5 appleclang 6.0
|
||||
list(APPEND _picky_enable
|
||||
${_picky_common}
|
||||
# -Wunreachable-code-break # clang 3.5 appleclang 6.0 # Not used: Silent in "unity" builds
|
||||
-Wheader-guard # clang 3.4 appleclang 5.1
|
||||
-Wsometimes-uninitialized # clang 3.2 appleclang 4.6
|
||||
)
|
||||
endif()
|
||||
if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.9) OR
|
||||
(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 8.3))
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Wcomma # clang 3.9 appleclang 8.3
|
||||
-Wmissing-variable-declarations # clang 3.2 appleclang 4.6
|
||||
)
|
||||
endif()
|
||||
if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 7.0) OR
|
||||
(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.3))
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Wassign-enum # clang 7.0 appleclang 10.3
|
||||
-Wextra-semi-stmt # clang 7.0 appleclang 10.3
|
||||
)
|
||||
endif()
|
||||
if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0) OR
|
||||
(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.4))
|
||||
list(APPEND WPICKY_ENABLE
|
||||
-Wimplicit-fallthrough # clang 4.0 gcc 7.0 appleclang 12.4 # we have silencing markup for clang 10.0 and above only
|
||||
list(APPEND _picky_enable
|
||||
-Wimplicit-fallthrough # clang 4.0 gcc 7.0 appleclang 12.4 # We do silencing for clang 10.0 and above only
|
||||
)
|
||||
endif()
|
||||
else() # gcc
|
||||
list(APPEND WPICKY_DETECT
|
||||
${WPICKY_COMMON}
|
||||
list(APPEND _picky_detect
|
||||
${_picky_common}
|
||||
)
|
||||
# Enable based on compiler version
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.3)
|
||||
list(APPEND WPICKY_ENABLE
|
||||
${WPICKY_COMMON_OLD}
|
||||
list(APPEND _picky_enable
|
||||
${_picky_common_old}
|
||||
-Wclobbered # gcc 4.3
|
||||
-Wmissing-parameter-type # gcc 4.3
|
||||
-Wold-style-declaration # gcc 4.3
|
||||
@ -165,22 +186,22 @@ if(PICKY_COMPILER)
|
||||
)
|
||||
endif()
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5 AND MINGW)
|
||||
list(APPEND WPICKY_ENABLE
|
||||
-Wno-pedantic-ms-format # gcc 4.5 (mingw-only)
|
||||
list(APPEND _picky_enable
|
||||
-Wno-pedantic-ms-format # gcc 4.5 (MinGW-only)
|
||||
)
|
||||
endif()
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.8)
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Wformat=2 # clang 3.0 gcc 4.8
|
||||
)
|
||||
endif()
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Warray-bounds=2 -ftree-vrp # clang 3.0 gcc 5.0 (clang default: -Warray-bounds)
|
||||
)
|
||||
endif()
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.0)
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Wduplicated-cond # gcc 6.0
|
||||
-Wnull-dereference # clang 3.0 gcc 6.0 (clang default)
|
||||
-fdelete-null-pointer-checks
|
||||
@ -189,17 +210,16 @@ if(PICKY_COMPILER)
|
||||
)
|
||||
endif()
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 7.0)
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Walloc-zero # gcc 7.0
|
||||
-Wduplicated-branches # gcc 7.0
|
||||
-Wformat-overflow=2 # gcc 7.0
|
||||
-Wformat-truncation=2 # gcc 7.0
|
||||
-Wimplicit-fallthrough # clang 4.0 gcc 7.0
|
||||
-Wrestrict # gcc 7.0
|
||||
)
|
||||
endif()
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
|
||||
list(APPEND WPICKY_ENABLE
|
||||
list(APPEND _picky_enable
|
||||
-Warith-conversion # gcc 10.0
|
||||
)
|
||||
endif()
|
||||
@ -207,26 +227,39 @@ if(PICKY_COMPILER)
|
||||
|
||||
#
|
||||
|
||||
foreach(_CCOPT IN LISTS WPICKY_ENABLE)
|
||||
set(WPICKY "${WPICKY} ${_CCOPT}")
|
||||
foreach(_ccopt IN LISTS _picky_enable)
|
||||
list(APPEND _picky "${_ccopt}")
|
||||
endforeach()
|
||||
|
||||
foreach(_CCOPT IN LISTS WPICKY_DETECT)
|
||||
# surprisingly, CHECK_C_COMPILER_FLAG needs a new variable to store each new
|
||||
# test result in.
|
||||
string(MAKE_C_IDENTIFIER "OPT${_CCOPT}" _optvarname)
|
||||
foreach(_ccopt IN LISTS _picky_detect)
|
||||
# Use a unique variable name 1. for meaningful log output 2. to have a fresh, undefined variable for each detection
|
||||
string(MAKE_C_IDENTIFIER "OPT${_ccopt}" _optvarname)
|
||||
# GCC only warns about unknown -Wno- options if there are also other diagnostic messages,
|
||||
# so test for the positive form instead
|
||||
string(REPLACE "-Wno-" "-W" _CCOPT_ON "${_CCOPT}")
|
||||
check_c_compiler_flag(${_CCOPT_ON} ${_optvarname})
|
||||
string(REPLACE "-Wno-" "-W" _ccopt_on "${_ccopt}")
|
||||
check_c_compiler_flag(${_ccopt_on} ${_optvarname})
|
||||
if(${_optvarname})
|
||||
set(WPICKY "${WPICKY} ${_CCOPT}")
|
||||
list(APPEND _picky "${_ccopt}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WPICKY)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WPICKY}")
|
||||
message(STATUS "Picky compiler options:${WPICKY}")
|
||||
# clang-cl
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND MSVC)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
set(_picky_tmp "")
|
||||
foreach(_ccopt IN LISTS _picky)
|
||||
list(APPEND _picky_tmp "/clang:${_ccopt}")
|
||||
endforeach()
|
||||
set(_picky ${_picky_tmp})
|
||||
else()
|
||||
list(TRANSFORM _picky PREPEND "/clang:")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(_picky)
|
||||
string(REPLACE ";" " " _picky "${_picky}")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_picky}")
|
||||
message(STATUS "Picky compiler options: ${_picky}")
|
||||
endif()
|
||||
|
25
deps/curl/CMake/Platforms/WindowsCache.cmake
vendored
25
deps/curl/CMake/Platforms/WindowsCache.cmake
vendored
@ -41,6 +41,10 @@ if(MINGW)
|
||||
set(HAVE_SYS_PARAM_H 1)
|
||||
set(HAVE_SYS_TIME_H 1)
|
||||
set(HAVE_GETTIMEOFDAY 1)
|
||||
set(HAVE_STRINGS_H 1) # wrapper to string.h
|
||||
set(HAVE_UTIME_H 1) # wrapper to sys/utime.h
|
||||
set(HAVE_DIRENT_H 1)
|
||||
set(HAVE_OPENDIR 1)
|
||||
else()
|
||||
set(HAVE_LIBGEN_H 0)
|
||||
set(HAVE_STRCASECMP 0)
|
||||
@ -48,6 +52,10 @@ else()
|
||||
set(HAVE_SYS_PARAM_H 0)
|
||||
set(HAVE_SYS_TIME_H 0)
|
||||
set(HAVE_GETTIMEOFDAY 0)
|
||||
set(HAVE_STRINGS_H 0)
|
||||
set(HAVE_UTIME_H 0)
|
||||
set(HAVE_DIRENT_H 0)
|
||||
set(HAVE_OPENDIR 0)
|
||||
if(MSVC)
|
||||
set(HAVE_UNISTD_H 0)
|
||||
set(HAVE_LOCALE_H 1)
|
||||
@ -80,6 +88,7 @@ set(HAVE_FREEADDRINFO 1)
|
||||
set(HAVE_FCHMOD 0)
|
||||
set(HAVE_SOCKETPAIR 0)
|
||||
set(HAVE_SENDMSG 0)
|
||||
set(HAVE_SENDMMSG 0)
|
||||
set(HAVE_ALARM 0)
|
||||
set(HAVE_FCNTL 0)
|
||||
set(HAVE_GETPPID 0)
|
||||
@ -88,17 +97,17 @@ set(HAVE_GETPWUID_R 0)
|
||||
set(HAVE_STRERROR_R 0)
|
||||
set(HAVE_SIGINTERRUPT 0)
|
||||
set(HAVE_PIPE 0)
|
||||
set(HAVE_EVENTFD 0)
|
||||
set(HAVE_IF_NAMETOINDEX 0)
|
||||
set(HAVE_GETRLIMIT 0)
|
||||
set(HAVE_SETRLIMIT 0)
|
||||
set(HAVE_FSETXATTR 0)
|
||||
set(HAVE_LIBSOCKET 0)
|
||||
set(HAVE_SETLOCALE 1)
|
||||
set(HAVE_SETMODE 1)
|
||||
set(HAVE__SETMODE 1)
|
||||
set(HAVE_GETPEERNAME 1)
|
||||
set(HAVE_GETSOCKNAME 1)
|
||||
set(HAVE_GETHOSTNAME 1)
|
||||
set(HAVE_LIBZ 0)
|
||||
|
||||
set(HAVE_RECV 1)
|
||||
set(HAVE_SEND 1)
|
||||
@ -113,14 +122,15 @@ set(HAVE_IFADDRS_H 0)
|
||||
set(HAVE_IO_H 1)
|
||||
set(HAVE_NETDB_H 0)
|
||||
set(HAVE_NETINET_IN_H 0)
|
||||
set(HAVE_NETINET_IN6_H 0)
|
||||
set(HAVE_NETINET_TCP_H 0)
|
||||
set(HAVE_NETINET_UDP_H 0)
|
||||
set(HAVE_NET_IF_H 0)
|
||||
set(HAVE_IOCTL_SIOCGIFADDR 0)
|
||||
set(HAVE_POLL_H 0)
|
||||
set(HAVE_POLL_FINE 0)
|
||||
set(HAVE_POLL 0)
|
||||
set(HAVE_PWD_H 0)
|
||||
set(HAVE_STRINGS_H 0) # mingw-w64 has it (wrapper to string.h)
|
||||
set(HAVE_SYS_EVENTFD_H 0)
|
||||
set(HAVE_SYS_FILIO_H 0)
|
||||
set(HAVE_SYS_WAIT_H 0)
|
||||
set(HAVE_SYS_IOCTL_H 0)
|
||||
@ -135,9 +145,9 @@ set(HAVE_SYS_UN_H 0)
|
||||
set(HAVE_SYS_UTIME_H 1)
|
||||
set(HAVE_TERMIOS_H 0)
|
||||
set(HAVE_TERMIO_H 0)
|
||||
set(HAVE_UTIME_H 0) # mingw-w64 has it (wrapper to sys/utime.h)
|
||||
set(HAVE_LINUX_TCP_H 0)
|
||||
|
||||
set(HAVE_FSEEKO 0)
|
||||
set(HAVE_FSEEKO 0) # mingw-w64 2.0.0 and newer has it
|
||||
set(HAVE__FSEEKI64 1)
|
||||
set(HAVE_SOCKET 1)
|
||||
set(HAVE_SELECT 1)
|
||||
@ -156,9 +166,7 @@ set(HAVE_GMTIME_R 0)
|
||||
set(HAVE_GETHOSTBYNAME_R 0)
|
||||
set(HAVE_SIGNAL 1)
|
||||
set(HAVE_SIGACTION 0)
|
||||
set(HAVE_LINUX_TCP_H 0)
|
||||
set(HAVE_GLIBC_STRERROR_R 0)
|
||||
set(HAVE_MACH_ABSOLUTE_TIME 0)
|
||||
set(HAVE_GETIFADDRS 0)
|
||||
set(HAVE_FCNTL_O_NONBLOCK 0)
|
||||
set(HAVE_IOCTLSOCKET 1)
|
||||
@ -168,7 +176,6 @@ set(HAVE_IOCTLSOCKET_FIONBIO 1)
|
||||
set(HAVE_IOCTL_FIONBIO 0)
|
||||
set(HAVE_SETSOCKOPT_SO_NONBLOCK 0)
|
||||
set(HAVE_POSIX_STRERROR_R 0)
|
||||
set(HAVE_BUILTIN_AVAILABLE 0)
|
||||
set(HAVE_MSG_NOSIGNAL 0)
|
||||
set(HAVE_STRUCT_TIMEVAL 1)
|
||||
set(HAVE_STRUCT_SOCKADDR_STORAGE 1)
|
||||
|
4
deps/curl/CMake/Utilities.cmake
vendored
4
deps/curl/CMake/Utilities.cmake
vendored
@ -24,12 +24,12 @@
|
||||
# File containing various utilities
|
||||
|
||||
# Returns number of arguments that evaluate to true
|
||||
function(count_true output_count_var)
|
||||
function(count_true _output_count_var)
|
||||
set(lst_len 0)
|
||||
foreach(option_var IN LISTS ARGN)
|
||||
if(${option_var})
|
||||
math(EXPR lst_len "${lst_len} + 1")
|
||||
endif()
|
||||
endforeach()
|
||||
set(${output_count_var} ${lst_len} PARENT_SCOPE)
|
||||
set(${_output_count_var} ${lst_len} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
18
deps/curl/CMake/cmake_uninstall.cmake.in
vendored
18
deps/curl/CMake/cmake_uninstall.cmake.in
vendored
@ -30,20 +30,20 @@ if(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
||||
endif()
|
||||
message(${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||
string(REGEX REPLACE "\n" ";" files "${files}")
|
||||
foreach(file ${files})
|
||||
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
|
||||
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" _files)
|
||||
string(REGEX REPLACE "\n" ";" _files "${_files}")
|
||||
foreach(_file ${_files})
|
||||
message(STATUS "Uninstalling $ENV{DESTDIR}${_file}")
|
||||
if(IS_SYMLINK "$ENV{DESTDIR}${_file}" OR EXISTS "$ENV{DESTDIR}${_file}")
|
||||
exec_program(
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${_file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
)
|
||||
if(NOT "${rm_retval}" STREQUAL 0)
|
||||
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
||||
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${_file}")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
||||
message(STATUS "File $ENV{DESTDIR}${_file} does not exist.")
|
||||
endif()
|
||||
endforeach()
|
||||
|
21
deps/curl/CMake/curl-config.cmake.in
vendored
21
deps/curl/CMake/curl-config.cmake.in
vendored
@ -23,12 +23,19 @@
|
||||
###########################################################################
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
if(@USE_OPENSSL@)
|
||||
find_dependency(OpenSSL @OPENSSL_VERSION_MAJOR@)
|
||||
if(UNIX OR VCPKG_TOOLCHAIN OR (MINGW AND NOT CMAKE_CROSSCOMPILING)) # Keep in sync with root CMakeLists.txt
|
||||
set(_curl_use_pkgconfig_default ON)
|
||||
else()
|
||||
set(_curl_use_pkgconfig_default OFF)
|
||||
endif()
|
||||
if(@USE_ZLIB@)
|
||||
find_dependency(ZLIB @ZLIB_VERSION_MAJOR@)
|
||||
option(CURL_USE_PKGCONFIG "Enable pkg-config to detect @PROJECT_NAME@ dependencies" ${_curl_use_pkgconfig_default})
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
if("@USE_OPENSSL@")
|
||||
find_dependency(OpenSSL "@OPENSSL_VERSION_MAJOR@")
|
||||
endif()
|
||||
if("@HAVE_LIBZ@")
|
||||
find_dependency(ZLIB "@ZLIB_VERSION_MAJOR@")
|
||||
endif()
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
|
||||
@ -38,3 +45,7 @@ check_required_components("@PROJECT_NAME@")
|
||||
if(NOT TARGET @PROJECT_NAME@::libcurl)
|
||||
add_library(@PROJECT_NAME@::libcurl ALIAS @PROJECT_NAME@::@LIB_SELECTED@)
|
||||
endif()
|
||||
|
||||
# For compatibility with CMake's FindCURL.cmake
|
||||
set(CURL_LIBRARIES @PROJECT_NAME@::libcurl)
|
||||
set_and_check(CURL_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
|
||||
|
2260
deps/curl/CMakeLists.txt
vendored
2260
deps/curl/CMakeLists.txt
vendored
File diff suppressed because it is too large
Load Diff
41
deps/curl/Dockerfile
vendored
Normal file
41
deps/curl/Dockerfile
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
|
||||
# Self-contained build environment to match the release environment.
|
||||
#
|
||||
# Build and set the timestamp for the date corresponding to the release
|
||||
#
|
||||
# docker build --build-arg SOURCE_DATE_EPOCH=1711526400 --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t curl/curl .
|
||||
#
|
||||
# Then run commands from within the build environment, for example
|
||||
#
|
||||
# docker run --rm -it -u $(id -u):$(id -g) -v $(pwd):/usr/src -w /usr/src curl/curl autoreconf -fi
|
||||
# docker run --rm -it -u $(id -u):$(id -g) -v $(pwd):/usr/src -w /usr/src curl/curl ./configure --without-ssl --without-libpsl
|
||||
# docker run --rm -it -u $(id -u):$(id -g) -v $(pwd):/usr/src -w /usr/src curl/curl make
|
||||
# docker run --rm -it -u $(id -u):$(id -g) -v $(pwd):/usr/src -w /usr/src curl/curl ./scripts/maketgz 8.7.1
|
||||
#
|
||||
# or get into a shell in the build environment, for example
|
||||
#
|
||||
# docker run --rm -it -u $(id -u):$(id -g) -v (pwd):/usr/src -w /usr/src curl/curl bash
|
||||
# $ autoreconf -fi
|
||||
# $ ./configure --without-ssl --without-libpsl
|
||||
# $ make
|
||||
# $ ./scripts/maketgz 8.7.1
|
||||
|
||||
# To update, get the latest digest e.g. from https://hub.docker.com/_/debian/tags
|
||||
FROM debian:bookworm-slim@sha256:d83056144b2dd301730d2739635c8cbdeaaae20d6887146434184f8c060f03ce
|
||||
|
||||
RUN apt-get update -qq && apt-get install -qq -y --no-install-recommends \
|
||||
build-essential make autoconf automake libtool git perl zip zlib1g-dev gawk && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ARG UID=1000 GID=1000
|
||||
|
||||
RUN groupadd --gid $UID dev && \
|
||||
useradd --uid $UID --gid dev --shell /bin/bash --create-home dev
|
||||
|
||||
USER dev:dev
|
||||
|
||||
ARG SOURCE_DATE_EPOCH
|
||||
ENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH:-1}
|
14
deps/curl/GIT-INFO.md
vendored
14
deps/curl/GIT-INFO.md
vendored
@ -27,16 +27,6 @@ In environments that don't support configure (i.e. Windows), do this:
|
||||
|
||||
## REQUIREMENTS
|
||||
|
||||
For `autoreconf` and `configure` (not `buildconf.bat`) to work, you need the
|
||||
following software installed:
|
||||
See [docs/INTERNALS.md][0] for requirement details.
|
||||
|
||||
o autoconf 2.57 (or later)
|
||||
o automake 1.7 (or later)
|
||||
o libtool 1.4.2 (or later)
|
||||
o GNU m4 (required by autoconf)
|
||||
o perl
|
||||
|
||||
If you don't have perl and don't want to install it, you can rename the source
|
||||
file `src/tool_hugehelp.c.cvs` to `src/tool_hugehelp.c` and avoid having to
|
||||
generate this file. This will give you a stubbed version of the file that
|
||||
doesn't contain actual content.
|
||||
[0]: docs/INTERNALS.md
|
||||
|
160
deps/curl/MacOSX-Framework
vendored
160
deps/curl/MacOSX-Framework
vendored
@ -1,160 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
# This script performs all of the steps needed to build a
|
||||
# universal binary libcurl.framework for Mac OS X 10.4 or greater.
|
||||
#
|
||||
# Hendrik Visage:
|
||||
# Generalizations added since Snowleopard (10.6) do not include
|
||||
# the 10.4u SDK.
|
||||
#
|
||||
# Also note:
|
||||
# 10.5 is the *ONLY* SDK that support PPC64 :( -- 10.6 do not have ppc64 support
|
||||
#If you need to have PPC64 support then change below to 1
|
||||
PPC64_NEEDED=0
|
||||
# Apple does not support building for PPC anymore in Xcode 4 and later.
|
||||
# If you're using Xcode 3 or earlier and need PPC support, then change
|
||||
# the setting below to 1
|
||||
PPC_NEEDED=0
|
||||
|
||||
# For me the default is to develop for the platform I am on, and if you
|
||||
#desire compatibility with older versions then change USE_OLD to 1 :)
|
||||
USE_OLD=0
|
||||
|
||||
VERSION=`/usr/bin/sed -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' include/curl/curlver.h`
|
||||
FRAMEWORK_VERSION=Versions/Release-$VERSION
|
||||
|
||||
#I also wanted to "copy over" the system, and thus the reason I added the
|
||||
# version to Versions/Release-7.20.1 etc.
|
||||
# now a simple rsync -vaP libcurl.framework /Library/Frameworks will install it
|
||||
# and setup the right paths to this version, leaving the system version
|
||||
# "intact", so you can "fix" it later with the links to Versions/A/...
|
||||
|
||||
DEVELOPER_PATH=`xcode-select --print-path`
|
||||
# Around Xcode 4.3, SDKs were moved from the Developer folder into the
|
||||
# MacOSX.platform folder
|
||||
if test -d "$DEVELOPER_PATH/Platforms/MacOSX.platform/Developer/SDKs"; then
|
||||
SDK_PATH="$DEVELOPER_PATH/Platforms/MacOSX.platform/Developer/SDKs"
|
||||
else
|
||||
SDK_PATH="$DEVELOPER_PATH/SDKs"
|
||||
fi
|
||||
OLD_SDK=`ls $SDK_PATH|head -1`
|
||||
NEW_SDK=`ls -r $SDK_PATH|head -1`
|
||||
|
||||
if test "0"$USE_OLD -gt 0
|
||||
then
|
||||
SDK32=$OLD_SDK
|
||||
else
|
||||
SDK32=$NEW_SDK
|
||||
fi
|
||||
|
||||
MACVER=`echo $SDK32|sed -e s/[a-zA-Z]//g -e s/.\$//`
|
||||
|
||||
SDK32_DIR=$SDK_PATH/$SDK32
|
||||
MINVER32='-mmacosx-version-min='$MACVER
|
||||
if test $PPC_NEEDED -gt 0; then
|
||||
ARCHES32='-arch i386 -arch ppc'
|
||||
else
|
||||
ARCHES32='-arch i386'
|
||||
fi
|
||||
|
||||
if test $PPC64_NEEDED -gt 0
|
||||
then
|
||||
SDK64=10.5
|
||||
ARCHES64='-arch x86_64 -arch ppc64'
|
||||
SDK64=`ls $SDK_PATH | grep "10\.5" | head -1`
|
||||
else
|
||||
ARCHES64='-arch x86_64'
|
||||
#We "know" that 10.4 and earlier do not support 64bit
|
||||
OLD_SDK64=`ls $SDK_PATH | grep -v "10\.[0-4]" | head -1`
|
||||
NEW_SDK64=`ls -r $SDK_PATH | grep -v "10\.[0-4][^0-9]" | head -1`
|
||||
if test $USE_OLD -gt 0
|
||||
then
|
||||
SDK64=$OLD_SDK64
|
||||
else
|
||||
SDK64=$NEW_SDK64
|
||||
fi
|
||||
fi
|
||||
|
||||
SDK64_DIR=$SDK_PATH/$SDK64
|
||||
MACVER64=`echo $SDK64|sed -e s/[a-zA-Z]//g -e s/.\$//`
|
||||
|
||||
MINVER64='-mmacosx-version-min='$MACVER64
|
||||
|
||||
if test ! -z $SDK32; then
|
||||
echo "----Configuring libcurl for 32 bit universal framework..."
|
||||
make clean
|
||||
./configure --disable-dependency-tracking --disable-static --with-gssapi --with-secure-transport \
|
||||
CFLAGS="-Os -isysroot $SDK32_DIR $ARCHES32" \
|
||||
LDFLAGS="-Wl,-syslibroot,$SDK32_DIR $ARCHES32 -Wl,-headerpad_max_install_names" \
|
||||
CC=$CC
|
||||
|
||||
echo "----Building 32 bit libcurl..."
|
||||
make -j `sysctl -n hw.logicalcpu_max`
|
||||
|
||||
echo "----Creating 32 bit framework..."
|
||||
rm -r libcurl.framework
|
||||
mkdir -p libcurl.framework/${FRAMEWORK_VERSION}/Resources
|
||||
cp lib/.libs/libcurl.dylib libcurl.framework/${FRAMEWORK_VERSION}/libcurl
|
||||
install_name_tool -id @rpath/libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl
|
||||
cp lib/libcurl.plist libcurl.framework/${FRAMEWORK_VERSION}/Resources/Info.plist
|
||||
mkdir -p libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl
|
||||
cp include/curl/*.h libcurl.framework/${FRAMEWORK_VERSION}/Headers/curl
|
||||
pushd libcurl.framework
|
||||
ln -fs ${FRAMEWORK_VERSION}/libcurl libcurl
|
||||
ln -fs ${FRAMEWORK_VERSION}/Resources Resources
|
||||
ln -fs ${FRAMEWORK_VERSION}/Headers Headers
|
||||
cd Versions
|
||||
ln -fs $(basename "${FRAMEWORK_VERSION}") Current
|
||||
|
||||
echo Testing for SDK64
|
||||
if test -d $SDK64_DIR; then
|
||||
echo entering...
|
||||
popd
|
||||
make clean
|
||||
echo "----Configuring libcurl for 64 bit universal framework..."
|
||||
./configure --disable-dependency-tracking --disable-static --with-gssapi --with-secure-transport \
|
||||
CFLAGS="-Os -isysroot $SDK64_DIR $ARCHES64" \
|
||||
LDFLAGS="-Wl,-syslibroot,$SDK64_DIR $ARCHES64 -Wl,-headerpad_max_install_names" \
|
||||
CC=$CC
|
||||
|
||||
echo "----Building 64 bit libcurl..."
|
||||
make -j `sysctl -n hw.logicalcpu_max`
|
||||
|
||||
echo "----Appending 64 bit framework to 32 bit framework..."
|
||||
cp lib/.libs/libcurl.dylib libcurl.framework/${FRAMEWORK_VERSION}/libcurl64
|
||||
install_name_tool -id @rpath/libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl64
|
||||
cp libcurl.framework/${FRAMEWORK_VERSION}/libcurl libcurl.framework/${FRAMEWORK_VERSION}/libcurl32
|
||||
pwd
|
||||
lipo libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 libcurl.framework/${FRAMEWORK_VERSION}/libcurl64 -create -output libcurl.framework/${FRAMEWORK_VERSION}/libcurl
|
||||
rm libcurl.framework/${FRAMEWORK_VERSION}/libcurl32 libcurl.framework/${FRAMEWORK_VERSION}/libcurl64
|
||||
fi
|
||||
|
||||
pwd
|
||||
lipo -info libcurl.framework/${FRAMEWORK_VERSION}/libcurl
|
||||
echo "libcurl.framework is built and can now be included in other projects."
|
||||
echo "Copy libcurl.framework to your bundle's Contents/Frameworks folder, ~/Library/Frameworks or /Library/Frameworks."
|
||||
else
|
||||
echo "Building libcurl.framework requires Mac OS X 10.4 or later with the MacOSX10.4/5/6 SDK installed."
|
||||
fi
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user