TESTING: delete uninteresting workflows for now
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
deleted file mode 100644
index 5c78963..0000000
--- a/.azure-pipelines.yml
+++ /dev/null
@@ -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)"
diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 9fc6127..0000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,544 +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
-#
-###########################################################################
-
-# 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
-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:
- command: |
- sudo apt-get update && sudo apt-get install -y libc-ares-dev
-
- install-libssh:
- steps:
- - run:
- command: |
- sudo apt-get update && sudo apt-get install -y libssh-dev
-
- install-deps:
- steps:
- - run:
- command: |
- 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
- 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
- make install
-
- install-wolfssh:
- steps:
- - run:
- command: |
- WOLFSSH_VER=1.4.12
- 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
- make install
-
- configure-cares:
- steps:
- - run:
- command: |
- autoreconf -fi
- ./configure --enable-warnings --enable-werror --with-openssl --enable-ares
-
- 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
-
- configure-cares-debug:
- steps:
- - run:
- command: |
- autoreconf -fi
- ./configure --enable-debug --enable-werror --with-openssl --enable-ares
-
- 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"
-
-executors:
- ubuntu:
- machine:
- image: ubuntu-2004:2024.01.1
-
-jobs:
- basic:
- executor: ubuntu
- steps:
- - checkout
- - install-deps
- - configure
- - build
- - test
-
- no-verbose:
- executor: ubuntu
- steps:
- - checkout
- - install-deps
- - configure-openssl-no-verbose
- - build
-
- wolfssh:
- executor: ubuntu
- steps:
- - checkout
- - install-deps
- - install-wolfssl
- - install-wolfssh
- - configure-wolfssh
- - build
-
- no-proxy:
- executor: ubuntu
- steps:
- - checkout
- - install-deps
- - configure-no-proxy
- - build
- - test
-
- cares:
- executor: ubuntu
- steps:
- - checkout
- - install-deps
- - install-cares
- - configure-cares
- - build
- - test
-
- libssh:
- executor: ubuntu
- steps:
- - checkout
- - install-deps
- - install-libssh
- - configure-libssh
- - build
- - test
-
- arm:
- machine:
- image: ubuntu-2004:2024.01.1
- resource_class: arm.medium
- steps:
- - checkout
- - install-deps
- - configure
- - build
- - test
-
- arm-cares:
- machine:
- image: ubuntu-2004:2024.01.1
- resource_class: arm.medium
- steps:
- - checkout
- - install-deps
- - install-cares
- - configure-cares-debug
- - 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:
- - basic
-
- openssl-c-ares:
- jobs:
- - cares
-
- openssl-libssh:
- jobs:
- - libssh
-
- openssl-no-proxy:
- jobs:
- - no-proxy
-
- openssl-no-verbose:
- jobs:
- - no-verbose
-
- wolfssl-wolfssh:
- jobs:
- - wolfssh
-
- arm-openssl:
- jobs:
- - arm
-
- 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
diff --git a/.cirrus.yml b/.cirrus.yml
deleted file mode 100644
index 05c9275..0000000
--- a/.cirrus.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/appveyor-status.yml b/.github/workflows/appveyor-status.yml
deleted file mode 100644
index df54422..0000000
--- a/.github/workflows/appveyor-status.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-name: AppVeyor Status Report
-
-on:
- status
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.event.sha }}-${{ github.event.target_url }}
- cancel-in-progress: true
-
-permissions: {}
-
-jobs:
- split:
- runs-on: ubuntu-latest
- if: ${{ github.event.sender.login == 'appveyor[bot]' }}
- permissions:
- statuses: write
- steps:
- - name: Create individual AppVeyor build statuses
- if: ${{ github.event.sha && github.event.target_url }}
- env:
- APPVEYOR_COMMIT_SHA: ${{ github.event.sha }}
- APPVEYOR_TARGET_URL: ${{ github.event.target_url }}
- APPVEYOR_REPOSITORY: ${{ github.event.repository.full_name }}
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- echo ${APPVEYOR_TARGET_URL} | sed 's/\/project\//\/api\/projects\//' | xargs -t -n1 curl -s | \
- jq -c '.build.jobs[] | {target_url: ($target_url + "/job/" + .jobId),
- context: (.name | sub("^(Environment: )?"; "AppVeyor / ")),
- state: (.status | sub("queued"; "pending")
- | sub("starting"; "pending")
- | sub("running"; "pending")
- | sub("failed"; "failure")
- | sub("cancelled"; "error")),
- description: .status}' \
- --arg target_url ${APPVEYOR_TARGET_URL} | tee /dev/stderr | parallel --pipe -j 1 -N 1 \
- gh api --silent --input - repos/${APPVEYOR_REPOSITORY}/statuses/${APPVEYOR_COMMIT_SHA}
diff --git a/.github/workflows/awslc.yml b/.github/workflows/awslc.yml
deleted file mode 100644
index 4852516..0000000
--- a/.github/workflows/awslc.yml
+++ /dev/null
@@ -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'
diff --git a/.github/workflows/badwords.yml b/.github/workflows/badwords.yml
deleted file mode 100644
index 0165d9b..0000000
--- a/.github/workflows/badwords.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index f98e4da..0000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-name: CodeQL
-
-on:
- push:
- branches:
- - master
- - '*/ci'
- paths-ignore:
- - '**/*.md'
- - '.azure-pipelines.yml'
- - '.circleci/**'
- - '.cirrus.yml'
- - 'appveyor.*'
- - 'docs/**'
- - 'packages/**'
- - 'plan9/**'
- - 'projects/**'
- - 'tests/data/**'
- - 'winbuild/**'
- pull_request:
- branches:
- - master
- paths-ignore:
- - '**/*.md'
- - '.azure-pipelines.yml'
- - '.circleci/**'
- - '.cirrus.yml'
- - 'appveyor.*'
- - 'docs/**'
- - 'packages/**'
- - 'plan9/**'
- - 'projects/**'
- - 'tests/data/**'
- - 'winbuild/**'
- schedule:
- - cron: '0 0 * * 4'
-
-concurrency:
- group: ${{ github.workflow }}
-
-permissions: {}
-
-jobs:
- codeql:
- runs-on: ubuntu-latest
- permissions:
- security-events: write
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v3
- with:
- languages: cpp
- queries: security-extended
-
- # 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
-
- # ℹ️ Command-line programs to run using the OS shell.
- # 📚 https://git.io/JvXDl
-
- # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
- # and modify them (or add more) to build your code if your project
- # uses a compiled language
-
- # - run: |
- # make bootstrap
- # make release
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
deleted file mode 100644
index 2b095da..0000000
--- a/.github/workflows/codespell.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/configure-vs-cmake.yml b/.github/workflows/configure-vs-cmake.yml
deleted file mode 100644
index dc2273f..0000000
--- a/.github/workflows/configure-vs-cmake.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-name: configure-vs-cmake
-on:
- push:
- branches:
- - master
- paths:
- - '*.ac'
- - '**/*.m4'
- - '**/CMakeLists.txt'
- - 'lib/curl_config.h.cmake'
- - 'scripts/cmp-config.pl'
-
- pull_request:
- branches:
- - master
- paths:
- - '*.ac'
- - '**/*.m4'
- - '**/CMakeLists.txt'
- - 'lib/curl_config.h.cmake'
- - 'scripts/cmp-config.pl'
-
-permissions: {}
-
-jobs:
- check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: run configure --with-openssl
- run: |
- autoreconf -fi
- ./configure --with-openssl --without-libpsl
-
- - name: run cmake
- run: |
- mkdir build && cd build && cmake ..
-
- - name: compare generated curl_config.h files
- run: ./scripts/cmp-config.pl lib/curl_config.h build/lib/curl_config.h
diff --git a/.github/workflows/distcheck.yml b/.github/workflows/distcheck.yml
deleted file mode 100644
index 15068b6..0000000
--- a/.github/workflows/distcheck.yml
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-name: dist
-
-on:
- push:
- branches:
- - master
- - '*/ci'
- pull_request:
- branches:
- - master
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
- cancel-in-progress: true
-
-jobs:
- maketgz-and-verify-in-tree:
- runs-on: ubuntu-latest
- timeout-minutes: 30
- steps:
- - uses: actions/checkout@v4
-
- - run: sudo apt-get purge -y curl libcurl4 libcurl4-doc
- name: 'remove preinstalled curl libcurl4{-doc}'
-
- - run: autoreconf -fi
- name: 'autoreconf'
-
- - run: ./configure --without-ssl --without-libpsl
- name: 'configure'
-
- - run: make V=1 && make V=1 clean
- name: 'make and clean'
-
- - run: ./maketgz 99.98.97
- name: 'maketgz'
-
- - uses: actions/upload-artifact@v4
- with:
- name: 'release-tgz'
- path: 'curl-99.98.97.tar.gz'
-
- - 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
- popd
- # basic check of the installed files
- bash scripts/installcheck.sh $HOME/temp
- rm -rf curl-99.98.97
- name: 'verify in-tree configure build including install'
-
- verify-out-of-tree-docs:
- runs-on: ubuntu-latest
- timeout-minutes: 30
- needs: maketgz-and-verify-in-tree
- steps:
- - uses: actions/download-artifact@v4
- with:
- name: 'release-tgz'
-
- - run: |
- echo "::stop-commands::$(uuidgen)"
- tar xvf curl-99.98.97.tar.gz
- touch curl-99.98.97/docs/{cmdline-opts,libcurl}/Makefile.inc
- mkdir build
- pushd build
- ../curl-99.98.97/configure --without-ssl --without-libpsl
- make
- make test-ci
- popd
- rm -rf build
- rm -rf curl-99.98.97
- name: 'verify out-of-tree configure build including docs'
-
- verify-out-of-tree-autotools-debug:
- runs-on: ubuntu-latest
- timeout-minutes: 30
- needs: maketgz-and-verify-in-tree
- steps:
- - uses: actions/download-artifact@v4
- with:
- name: 'release-tgz'
-
- - run: |
- echo "::stop-commands::$(uuidgen)"
- tar xvf curl-99.98.97.tar.gz
- pushd curl-99.98.97
- mkdir build
- pushd build
- ../configure --without-ssl --enable-debug "--prefix=${PWD}/pkg" --without-libpsl
- make -j3
- make -j3 test-ci
- make -j3 install
- name: 'verify out-of-tree autotools debug build'
-
- verify-out-of-tree-cmake:
- runs-on: ubuntu-latest
- timeout-minutes: 30
- needs: maketgz-and-verify-in-tree
- steps:
- - uses: actions/download-artifact@v4
- with:
- name: 'release-tgz'
-
- - run: |
- echo "::stop-commands::$(uuidgen)"
- tar xvf curl-99.98.97.tar.gz
- pushd curl-99.98.97
- mkdir build
- pushd build
- cmake ..
- make
- name: 'verify out-of-tree cmake build'
diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml
deleted file mode 100644
index 247a1c0..0000000
--- a/.github/workflows/fuzz.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-name: Fuzzer
-
-on:
- push:
- branches:
- - master
- - '*/ci'
- paths-ignore:
- - '**/*.md'
- - '**/CMakeLists.txt'
- - '.azure-pipelines.yml'
- - '.circleci/**'
- - '.cirrus.yml'
- - 'appveyor.*'
- - 'CMake/**'
- - 'packages/**'
- - 'plan9/**'
- - 'projects/**'
- - 'tests/data/**'
- - 'winbuild/**'
- pull_request:
- branches:
- - master
- paths-ignore:
- - '**/*.md'
- - '**/CMakeLists.txt'
- - '.azure-pipelines.yml'
- - '.circleci/**'
- - '.cirrus.yml'
- - 'appveyor.*'
- - 'CMake/**'
- - 'packages/**'
- - 'plan9/**'
- - 'projects/**'
- - 'tests/data/**'
- - 'winbuild/**'
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
- cancel-in-progress: true
-
-permissions: {}
-
-jobs:
- Fuzzing:
- uses: curl/curl-fuzzer/.github/workflows/ci.yml@master
diff --git a/.github/workflows/hacktoberfest-accepted.yml b/.github/workflows/hacktoberfest-accepted.yml
deleted file mode 100644
index 3c4ecd8..0000000
--- a/.github/workflows/hacktoberfest-accepted.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-name: Hacktoberfest
-
-on:
- # this must not ever run on any other branch than master
- push:
- branches:
- - master
-
-concurrency:
- # this should not run in parallel, so just run one at a time
- group: ${{ github.workflow }}
-
-permissions: {}
-
-jobs:
- # add hacktoberfest-accepted label to PRs opened starting from September 30th
- # till November 1st which are closed via commit reference from master branch.
- merged:
- runs-on: ubuntu-latest
- permissions:
- # requires issues AND pull-requests write permissions to edit labels on PRs!
- issues: write
- pull-requests: write
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 100
-
- - name: Check whether repo participates in Hacktoberfest
- run: |
- gh config set prompt disabled && echo "label=$(
- gh repo view --json repositoryTopics --jq '.repositoryTopics[].name' | grep '^hacktoberfest$')" >> $GITHUB_OUTPUT
- id: check
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Search relevant commit message lines starting with Closes/Merges
- run: |
- git log --format=email ${{ github.event.before }}..${{ github.event.after }} | \
- grep -Ei "^Close[sd]? " | sort | uniq | tee log
- if: steps.check.outputs.label == 'hacktoberfest'
-
- - name: Search for Number-based PR references
- run: |
- grep -Eo "#([0-9]+)" log | cut -d# -f2 | sort | uniq | xargs -t -n1 -I{} \
- gh pr view {} --json number,createdAt \
- --jq '{number, opened: .createdAt} | [.number, .opened] | join(":")' | tee /dev/stderr | \
- grep -Eo '^([0-9]+):[0-9]{4}-(09-30T|10-|11-01T)' | cut -d: -f1 | sort | uniq | xargs -t -n1 -I {} \
- gh pr edit {} --add-label 'hacktoberfest-accepted'
- if: steps.check.outputs.label == 'hacktoberfest'
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Search for URL-based PR references
- run: |
- grep -Eo "github.com/(.+)/(.+)/pull/([0-9]+)" log | sort | uniq | xargs -t -n1 -I{} \
- gh pr view "https://{}" --json number,createdAt \
- --jq '{number, opened: .createdAt} | [.number, .opened] | join(":")' | tee /dev/stderr | \
- grep -Eo '^([0-9]+):[0-9]{4}-(09-30T|10-|11-01T)' | cut -d: -f1 | sort | uniq | xargs -t -n1 -I {} \
- gh pr edit {} --add-label 'hacktoberfest-accepted'
- if: steps.check.outputs.label == 'hacktoberfest'
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml
deleted file mode 100644
index b874c31..0000000
--- a/.github/workflows/label.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) Daniel Fandrich, <dan@coneharvesters.com>, et al.
-#
-# SPDX-License-Identifier: curl
-
-# This workflow will triage pull requests and apply a label based on the
-# paths that are modified in the pull request.
-#
-# To use this workflow, you will need to set up a .github/labeler.yml
-# file with configuration. For more information, see:
-# https://github.com/actions/labeler
-
-name: Labeler
-on: [pull_request_target]
-
-jobs:
- label:
-
- runs-on: ubuntu-latest
- permissions:
- contents: read
- pull-requests: write
-
- steps:
- - uses: actions/labeler@v5
- with:
- repo-token: "${{ secrets.GITHUB_TOKEN }}"
diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml
deleted file mode 100644
index ba92efa..0000000
--- a/.github/workflows/linkcheck.yml
+++ /dev/null
@@ -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'
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
deleted file mode 100644
index 3d447a8..0000000
--- a/.github/workflows/linux.yml
+++ /dev/null
@@ -1,434 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-name: Linux
-
-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:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
- cancel-in-progress: true
-
-permissions: {}
-
-env:
- MAKEFLAGS: -j 3
- 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
-
-jobs:
- autotools:
- name: ${{ matrix.build.name }}
- runs-on: 'ubuntu-latest'
- container: ${{ matrix.build.container }}
- timeout-minutes: 90
- strategy:
- fail-fast: false
- matrix:
- build:
- - name: bearssl
- install_packages: zlib1g-dev valgrind
- install_steps: bearssl pytest
- configure: LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
- singleuse: --unit
-
- - 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
- install_steps: libressl pytest
- configure: LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --enable-debug
- singleuse: --unit
-
- - 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
- 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
- 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: msh3
- install_packages: zlib1g-dev valgrind
- 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
- 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
-
- - 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: 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: address-sanitizer
- install_packages: zlib1g-dev libssh2-1-dev clang libssl-dev libubsan1 libasan8 libtsan2
- install_steps: pytest
- 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
-
- - name: memory-sanitizer
- install_packages: clang
- install_steps:
- 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
-
- - name: event-based
- install_packages: libssh-dev valgrind
- 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
- install_steps: rust rustls pytest valgrind libpsl-dev
- configure: --with-rustls=$HOME/rustls --enable-debug
- singleuse: --unit
-
- - 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
- install_steps: intel
- configure: CC=icc --enable-debug --with-openssl
- singleuse: --unit
-
- - name: Slackware-openssl-with-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
- # Docker Hub image that `container-job` executes in
- 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
- container: 'alpine:3.18'
- singleuse: --unit
-
- steps:
- - if: matrix.build.container == null
- 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'
-
- - 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
- name: 'install dependencies'
-
- - uses: actions/checkout@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: cache bearssl
- if: contains(matrix.build.install_steps, 'bearssl')
- uses: actions/cache@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 }}
-
- - name: 'build bearssl'
- if: contains(matrix.build.install_steps, 'bearssl') && steps.cache-bearssl.outputs.cache-hit != 'true'
- run: |
- curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://bearssl.org/bearssl-${{ env.bearssl-version }}.tar.gz
- tar -xzf bearssl-${{ env.bearssl-version }}.tar.gz
- cd bearssl-${{ env.bearssl-version }}
- make
- mkdir -p $HOME/bearssl/lib $HOME/bearssl/include
- cp inc/*.h $HOME/bearssl/include
- cp build/libbearssl.* $HOME/bearssl/lib
-
- - name: cache libressl
- if: contains(matrix.build.install_steps, 'libressl')
- uses: actions/cache@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 }}
-
- - 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
- cd libressl-git
- ./autogen.sh
- ./configure --prefix=$HOME/libressl
- make install
-
- - name: cache mbedtls
- if: contains(matrix.build.install_steps, 'mbedtls')
- uses: actions/cache@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 }}
-
- - 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
- cd mbedtls
- make DESTDIR=$HOME/mbedtls install
-
- - 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: contains(matrix.build.install_steps, 'openssl3') && 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: '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
- cd openssl
- ./config --prefix=$HOME/quictls --libdir=$HOME/quictls/lib
- make -j1 install_sw
-
- - name: cache msh3
- if: contains(matrix.build.install_steps, 'msh3')
- uses: actions/cache@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 }}
-
- - 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 ..
- 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 rustls
- if: contains(matrix.build.install_steps, 'rustls')
- uses: actions/cache@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 }}
-
- - 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
- 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
- curl -sSf --compressed https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo apt-key add -
- sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
- sudo apt install --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
- source /opt/intel/oneapi/setvars.sh
- 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
- name: 'autoreconf'
-
- - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
- name: 'configure'
-
- - run: make V=1
- name: 'make'
-
- - run: |
- git config --global --add safe.directory "*"
- ./scripts/singleuse.pl ${{ matrix.build.singleuse }} lib/.libs/libcurl.a
- name: single-use function check
-
- - 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 }}"
-
- - 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'
- env:
- TFLAGS: "${{ matrix.build.tflags }}"
- CURL_CI: github
diff --git a/.github/workflows/linux32.yml b/.github/workflows/linux32.yml
deleted file mode 100644
index e3fca3d..0000000
--- a/.github/workflows/linux32.yml
+++ /dev/null
@@ -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 }}"
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
deleted file mode 100644
index 2f2d753..0000000
--- a/.github/workflows/macos.yml
+++ /dev/null
@@ -1,243 +0,0 @@
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# SPDX-License-Identifier: curl
-
-name: macOS
-
-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:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
- cancel-in-progress: true
-
-permissions: {}
-
-env:
- DEVELOPER_DIR: /Applications/Xcode_14.0.1.app/Contents/Developer
- MAKEFLAGS: -j 5
-
-jobs:
- autotools:
- name: ${{ matrix.build.name }}
- runs-on: 'macos-latest'
- timeout-minutes: 90
- strategy:
- fail-fast: false
- matrix:
- 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 \
- --without-libpsl \
- --without-librtmp \
- --without-libssh2 \
- --without-nghttp2 \
- --without-ntlm-auth \
- --without-ssl \
- --without-zlib \
- --without-zstd
-
- 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'
-
- # 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'
-
- - run: |
- case "${{ matrix.build.install }}" in
- *openssl*)
- ;;
- *)
- if test -d /usr/local/include/openssl; then
- brew unlink openssl
- fi;;
- esac
- name: 'brew unlink openssl'
-
- - 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'
diff --git a/.github/workflows/man-examples.yml b/.github/workflows/man-examples.yml
deleted file mode 100644
index 6f0d1e8..0000000
--- a/.github/workflows/man-examples.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/ngtcp2-linux.yml b/.github/workflows/ngtcp2-linux.yml
deleted file mode 100644
index 19172b4..0000000
--- a/.github/workflows/ngtcp2-linux.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/osslq-linux.yml b/.github/workflows/osslq-linux.yml
deleted file mode 100644
index a15e28c..0000000
--- a/.github/workflows/osslq-linux.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/proselint.yml b/.github/workflows/proselint.yml
deleted file mode 100644
index 8712667..0000000
--- a/.github/workflows/proselint.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/quiche-linux.yml b/.github/workflows/quiche-linux.yml
deleted file mode 100644
index 40fc4d5..0000000
--- a/.github/workflows/quiche-linux.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/reuse.yml b/.github/workflows/reuse.yml
deleted file mode 100644
index 27b33e2..0000000
--- a/.github/workflows/reuse.yml
+++ /dev/null
@@ -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@v2
diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml
deleted file mode 100644
index e78a36c..0000000
--- a/.github/workflows/spellcheck.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/synopsis.yml b/.github/workflows/synopsis.yml
deleted file mode 100644
index 0938f4b..0000000
--- a/.github/workflows/synopsis.yml
+++ /dev/null
@@ -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
diff --git a/.github/workflows/torture.yml b/.github/workflows/torture.yml
deleted file mode 100644
index a50b37f..0000000
--- a/.github/workflows/torture.yml
+++ /dev/null
@@ -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 }}"
diff --git a/.github/workflows/wolfssl.yml b/.github/workflows/wolfssl.yml
deleted file mode 100644
index 5aaf3d1..0000000
--- a/.github/workflows/wolfssl.yml
+++ /dev/null
@@ -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 }}"
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index 7fd1a66..0000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,305 +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://ci.appveyor.com/project/curlorg/curl/history
-# AppVeyor configuration:
-# https://www.appveyor.com/docs/appveyor-yml/
-# AppVeyor worker images:
-# https://www.appveyor.com/docs/windows-images-software/
-
-version: 7.50.0.{build}
-
-environment:
- UNITY: 'OFF'
- OPENSSL: 'OFF'
- DEBUG: 'ON'
- SHARED: 'OFF'
- matrix:
- # generated CMake-based Visual Studio Release builds
- - job_name: 'CMake, VS2008, Release, x86, Schannel, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'Visual Studio 9 2008'
- PRJ_CFG: Release
- SCHANNEL: 'ON'
- ENABLE_UNICODE: 'OFF'
- HTTP_ONLY: 'OFF'
- SHARED: 'ON'
- TESTING: 'OFF'
- DISABLED_TESTS: ''
- - job_name: 'CMake, VS2022, Release, x64, OpenSSL 3, WebSockets, Unity, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'Visual Studio 17 2022'
- TARGET: '-A x64'
- PRJ_CFG: Release
- OPENSSL: 'ON'
- SCHANNEL: 'OFF'
- ENABLE_UNICODE: 'OFF'
- HTTP_ONLY: 'OFF'
- SHARED: 'ON'
- TESTING: 'OFF'
- DISABLED_TESTS: ''
- WEBSOCKETS: 'ON'
- UNITY: 'ON'
- - job_name: 'CMake, VS2022, Release, arm64, Schannel, Static, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'Visual Studio 17 2022'
- TARGET: '-A ARM64'
- PRJ_CFG: Release
- SCHANNEL: 'ON'
- ENABLE_UNICODE: 'OFF'
- HTTP_ONLY: 'OFF'
- TESTING: 'OFF'
- DISABLED_TESTS: ''
- # generated CMake-based Visual Studio Debug builds
- - job_name: 'CMake, VS2010, Debug, x64, no SSL, Static'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'Visual Studio 10 2010 Win64'
- PRJ_CFG: Debug
- SCHANNEL: 'OFF'
- ENABLE_UNICODE: 'OFF'
- HTTP_ONLY: 'OFF'
- TESTING: 'ON'
- DISABLED_TESTS: '!1139 !1501 !1140 !1173 !1177 !1477'
- - job_name: 'CMake, VS2022, Debug, x64, Schannel, Static, Unicode'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'Visual Studio 17 2022'
- TARGET: '-A x64'
- PRJ_CFG: Debug
- SCHANNEL: 'ON'
- ENABLE_UNICODE: 'ON'
- HTTP_ONLY: 'OFF'
- TESTING: 'ON'
- DISABLED_TESTS: '!1139 !1501 !1140 !1173 !1177 !1477'
- - job_name: 'CMake, VS2022, Debug, x64, no SSL, Static'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'Visual Studio 17 2022'
- TARGET: '-A x64'
- PRJ_CFG: Debug
- SCHANNEL: 'OFF'
- ENABLE_UNICODE: 'OFF'
- HTTP_ONLY: 'OFF'
- TESTING: 'ON'
- DISABLED_TESTS: '!1139 !1501 !1140 !1173 !1177 !1477'
- - job_name: 'CMake, VS2022, Debug, x64, no SSL, Static, HTTP only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'Visual Studio 17 2022'
- TARGET: '-A x64'
- PRJ_CFG: Debug
- SCHANNEL: 'OFF'
- ENABLE_UNICODE: 'OFF'
- HTTP_ONLY: 'ON'
- TESTING: 'ON'
- DISABLED_TESTS: '!1139 !1501 !1140 !1173 !1177 !1477'
- # generated CMake-based MSYS Makefiles builds (mingw cross-compiling)
- - job_name: 'CMake, mingw-w64, gcc 13, Debug, x64, Schannel, Static, Unicode, Unity'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'MSYS Makefiles'
- PRJ_CFG: Debug
- SCHANNEL: 'ON'
- ENABLE_UNICODE: 'ON'
- HTTP_ONLY: 'OFF'
- TESTING: 'ON'
- DISABLED_TESTS: '!1086 !1139 !1451 !1501 !1140 !1173 !1177 !1477'
- ADD_PATH: 'C:/msys64/mingw64/bin'
- MSYS2_ARG_CONV_EXCL: '/*'
- BUILD_OPT: -k
- UNITY: 'ON'
- - job_name: 'CMake, mingw-w64, gcc 7, Debug, x64, Schannel, Static, Unicode'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'MSYS Makefiles'
- PRJ_CFG: Debug
- SCHANNEL: 'ON'
- ENABLE_UNICODE: 'ON'
- HTTP_ONLY: 'OFF'
- TESTING: 'ON'
- DISABLED_TESTS: '!1086 !1139 !1451 !1501 !1140 !1173 !1177 !1477'
- ADD_PATH: 'C:/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin'
- MSYS2_ARG_CONV_EXCL: '/*'
- BUILD_OPT: -k
- - job_name: 'CMake, mingw-w64, gcc 9, Debug, x64, Schannel, Static, Unity'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'MSYS Makefiles'
- PRJ_CFG: Debug
- SCHANNEL: 'ON'
- ENABLE_UNICODE: 'OFF'
- HTTP_ONLY: 'OFF'
- TESTING: 'ON'
- # test 286 disabled due to https://github.com/curl/curl/issues/12040
- DISABLED_TESTS: '~286 !1086 !1139 !1451 !1501 !1140 !1173 !1177 !1477'
- ADD_PATH: 'C:/msys64/mingw64/bin'
- MSYS2_ARG_CONV_EXCL: '/*'
- BUILD_OPT: -k
- UNITY: 'ON'
- - job_name: 'CMake, mingw-w64, gcc 6, Debug, x86, Schannel, Static'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
- BUILD_SYSTEM: CMake
- PRJ_GEN: 'MSYS Makefiles'
- PRJ_CFG: Debug
- SCHANNEL: 'ON'
- ENABLE_UNICODE: 'OFF'
- HTTP_ONLY: 'OFF'
- TESTING: 'ON'
- DISABLED_TESTS: '!1086 !1139 !1451 !1501 !1140 !1173 !1177 !1477'
- ADD_PATH: 'C:/mingw-w64/i686-6.3.0-posix-dwarf-rt_v5-rev1/mingw32/bin'
- MSYS2_ARG_CONV_EXCL: '/*'
- BUILD_OPT: -k
- # winbuild-based builds
- - job_name: 'winbuild, VS2015, Debug, x64, OpenSSL 1.1.1, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
- BUILD_SYSTEM: winbuild_vs2015
- DEBUG: 'yes'
- PATHPART: debug
- TESTING: 'OFF'
- ENABLE_UNICODE: 'no'
- - job_name: 'winbuild, VS2015, Release, x64, OpenSSL 1.1.1, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
- BUILD_SYSTEM: winbuild_vs2015
- DEBUG: 'no'
- PATHPART: release
- TESTING: 'OFF'
- ENABLE_UNICODE: 'no'
- - job_name: 'winbuild, VS2017, Debug, x64, OpenSSL 1.1.1, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: winbuild_vs2017
- DEBUG: 'yes'
- PATHPART: debug
- TESTING: 'OFF'
- ENABLE_UNICODE: 'no'
- - job_name: 'winbuild, VS2017, Release, x64, OpenSSL 1.1.1, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: winbuild_vs2017
- DEBUG: 'no'
- PATHPART: release
- TESTING: 'OFF'
- ENABLE_UNICODE: 'no'
- - job_name: 'winbuild, VS2015, Debug, x64, OpenSSL 1.1.1, Unicode, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
- BUILD_SYSTEM: winbuild_vs2015
- DEBUG: 'yes'
- PATHPART: debug
- TESTING: 'OFF'
- ENABLE_UNICODE: 'yes'
- - job_name: 'winbuild, VS2015, Release, x64, OpenSSL 1.1.1, Unicode, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
- BUILD_SYSTEM: winbuild_vs2015
- DEBUG: 'no'
- PATHPART: release
- TESTING: 'OFF'
- ENABLE_UNICODE: 'yes'
- - job_name: 'winbuild, VS2017, Debug, x64, OpenSSL 1.1.1, Unicode, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: winbuild_vs2017
- DEBUG: 'yes'
- PATHPART: debug
- TESTING: 'OFF'
- ENABLE_UNICODE: 'yes'
- - job_name: 'winbuild, VS2017, Release, x64, OpenSSL 1.1.1, Unicode, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: winbuild_vs2017
- DEBUG: 'no'
- PATHPART: release
- TESTING: 'OFF'
- ENABLE_UNICODE: 'yes'
- # generated VisualStudioSolution-based builds
- - job_name: 'VisualStudioSolution, VS2017, Debug, x86, Schannel, Build-only'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: VisualStudioSolution
- PRJ_CFG: 'DLL Debug - DLL Windows SSPI - DLL WinIDN'
- TESTING: 'OFF'
- VC_VERSION: VC14.10
- # autotools-based builds (NOT mingw cross-compiling, but msys2 native)
- - job_name: 'autotools, msys2, Debug, x86_64, no Proxy, no SSL'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: autotools
- TESTING: 'ON'
- DISABLED_TESTS: '!19 !1233'
- CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --disable-proxy --without-ssl --enable-websockets --without-libpsl'
- - job_name: 'autotools, msys2, Debug, x86_64, no SSL'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: autotools
- TESTING: 'ON'
- DISABLED_TESTS: '!19 !504 !704 !705 !1233'
- CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets --without-libpsl'
- - job_name: 'autotools, msys2, Release, x86_64, no SSL'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- BUILD_SYSTEM: autotools
- TESTING: 'ON'
- DISABLED_TESTS: '!19 !504 !704 !705 !1233'
- CONFIG_ARGS: '--enable-warnings --enable-werror --without-ssl --enable-websockets --without-libpsl'
- # autotools-based Cygwin build
- - job_name: 'autotools, cygwin, Debug, x86_64, no SSL'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
- BUILD_SYSTEM: autotools
- TESTING: 'ON'
- DISABLED_TESTS: ''
- ADD_SHELL: 'C:/cygwin64/bin'
- CONFIG_ARGS: '--enable-debug --enable-werror --disable-threaded-resolver --without-ssl --enable-websockets --without-libpsl'
-
-install:
- - ps: |
- if($env:ADD_SHELL -ne $null) {
- $env:PATH = "$env:ADD_SHELL;$env:PATH"
- }
- else {
- $env:PATH = "C:/msys64/usr/bin;$env:PATH"
- }
- if($env:ADD_PATH -ne $null) {
- $env:PATH = "$env:ADD_PATH;$env:PATH"
- }
-
-build_script:
- - cmd: sh -c ./appveyor.sh
-
-clone_depth: 10
-
-# select branches to avoid testing feature branches twice (as branch and as pull request)
-branches:
- only:
- - master
- - /\/ci$/
-
-skip_commits:
- files:
- - '.azure-pipelines.yml'
- - '.circleci/*'
- - '.cirrus.yml'
- - '.github/**/*'
- - 'packages/**/*'
- - 'plan9/**/*'
-
-artifacts:
- - path: '**/curl.exe'
- name: curl
- - path: '**/*curl*.dll'
- name: libcurl dll