- all: ['.cirrus.yml']
- all: ['.github/**']
- all: ['appveyor.yml']
-- all: ['zuul.d/**']
cmake:
- all: ['**/CMakeLists.txt']
"LICENSES/curl.txt" => "<built-in>",
"COPYING" => "<built-in>",
- # an empty control file
- "zuul.d/playbooks/.zuul.ignore" => "<built-in>",
);
sub scanfile {
+++ /dev/null
-#!/bin/bash
-#***************************************************************************
-# _ _ ____ _
-# Project ___| | | | _ \| |
-# / __| | | | |_) | |
-# | (__| |_| | _ <| |___
-# \___|\___/|_| \_\_____|
-#
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# This software is licensed as described in the file COPYING, which
-# you should have received as part of this distribution. The terms
-# are also available at https://curl.se/docs/copyright.html.
-#
-# You may opt to use, copy, modify, merge, publish, distribute and/or sell
-# copies of the Software, and permit persons to whom the Software is
-# furnished to do so, under the terms of the COPYING file.
-#
-# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# KIND, either express or implied.
-#
-# SPDX-License-Identifier: curl
-#
-###########################################################################
-set -eo pipefail
-
-autoreconf -fi
-
-if [ "$NGTCP2" = yes ]; then
- if [ "$TRAVIS_OS_NAME" = linux -a "$GNUTLS" ]; then
- cd $HOME
- git clone --depth 1 https://gitlab.com/gnutls/nettle.git
- cd nettle
- ./.bootstrap
- ./configure LDFLAGS="-Wl,-rpath,$HOME/ngbuild/lib" --disable-documentation --prefix=$HOME/ngbuild
- make
- make install
-
- cd $HOME
- git clone --depth 1 -b 3.7.4 https://gitlab.com/gnutls/gnutls.git pgtls
- cd pgtls
- ./bootstrap
- ./configure PKG_CONFIG_PATH=$HOME/ngbuild/lib/pkgconfig LDFLAGS="-Wl,-rpath,$HOME/ngbuild/lib" --with-included-libtasn1 --with-included-unistring --disable-guile --disable-doc --disable-tools --without-zstd --disable-psk-authentication --prefix=$HOME/ngbuild
- make
- make install
- else
- cd $HOME
- git clone --depth 1 -b OpenSSL_1_1_1j+quic https://github.com/quictls/openssl possl
- cd possl
- ./config enable-tls1_3 --prefix=$HOME/ngbuild
- make
- make install_sw
- fi
-
- cd $HOME
- git clone --depth 1 https://github.com/ngtcp2/nghttp3
- cd nghttp3
- autoreconf -i
- ./configure --prefix=$HOME/ngbuild --enable-lib-only
- make
- make install
-
- cd $HOME
- git clone --depth 1 https://github.com/ngtcp2/ngtcp2
- cd ngtcp2
- autoreconf -i
- if test -n "$GNUTLS"; then
- WITHGNUTLS="--with-gnutls"
- fi
- ./configure PKG_CONFIG_PATH=$HOME/ngbuild/lib/pkgconfig LDFLAGS="-Wl,-rpath,$HOME/ngbuild/lib" --prefix=$HOME/ngbuild --enable-lib-only $WITHGNUTLS
- make
- make install
-fi
-
-if [ "$TRAVIS_OS_NAME" = linux -a "$BORINGSSL" ]; then
- cd $HOME
- git clone --depth=1 https://boringssl.googlesource.com/boringssl
- cd boringssl
- mkdir -p build
- cd ./build
- CXX="g++" CC="gcc" cmake .. -GNinja -DCMAKE_BUILD_TYPE=release -DBUILD_SHARED_LIBS=1
- cd ..
- cmake --build build
- mkdir lib
- cp ./build/crypto/libcrypto.so ./lib/
- cp ./build/ssl/libssl.so ./lib/
- echo "BoringSSL lib dir: "`pwd`"/lib"
- cmake --build build --target clean
- rm -f build/CMakeCache.txt
- cd ./build
- CXX="g++" CC="gcc" cmake .. -GNinja -DCMAKE_POSITION_INDEPENDENT_CODE=on
- cd ..
- cmake --build build
- export LIBS=-lpthread
-fi
-
-if [ "$TRAVIS_OS_NAME" = linux -a "$QUICHE" ]; then
- cd $HOME
- git clone --depth=1 --recursive https://github.com/cloudflare/quiche.git
- curl https://sh.rustup.rs -sSf | sh -s -- -y
- source $HOME/.cargo/env
- cd $HOME/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
- mkdir -v quiche/deps/boringssl/src/lib
- ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) quiche/deps/boringssl/src/lib/
-fi
+++ /dev/null
-#!/bin/bash
-#***************************************************************************
-# _ _ ____ _
-# Project ___| | | | _ \| |
-# / __| | | | |_) | |
-# | (__| |_| | _ <| |___
-# \___|\___/|_| \_\_____|
-#
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# This software is licensed as described in the file COPYING, which
-# you should have received as part of this distribution. The terms
-# are also available at https://curl.se/docs/copyright.html.
-#
-# You may opt to use, copy, modify, merge, publish, distribute and/or sell
-# copies of the Software, and permit persons to whom the Software is
-# furnished to do so, under the terms of the COPYING file.
-#
-# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# KIND, either express or implied.
-#
-# SPDX-License-Identifier: curl
-#
-###########################################################################
-set -eo pipefail
-
-autoreconf -fi
-
-if [ "$T" = "coverage" ]; then
- ./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-code-coverage --enable-werror --with-libssh2
- make
- make TFLAGS=-n test-nonflaky
- make "TFLAGS=-n -e" test-nonflaky
- tests="1 200 300 500 700 800 900 1000 1100 1200 1302 1400 1502 3000"
- make "TFLAGS=-n -t $tests" test-nonflaky
- coveralls --gcov /usr/bin/gcov-8 --gcov-options '\-lp' -i src -e lib -e tests -e docs -b $PWD/src
- coveralls --gcov /usr/bin/gcov-8 --gcov-options '\-lp' -e src -i lib -e tests -e docs -b $PWD/lib
-fi
-
-if [ "$T" = "torture" ]; then
- ./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-code-coverage --enable-werror --with-libssh2 --with-openssl
- make
- tests="!TLS-SRP !FTP"
- make "TFLAGS=-n --shallow=20 -t $tests" test-nonflaky
-fi
-
-if [ "$T" = "debug" ]; then
- ./configure --enable-debug --enable-werror $C
- make
- make examples
- if [ -z $NOTESTS ]; then
- make test-nonflaky
- fi
-fi
-
-if [ "$T" = "debug-bearssl" ]; then
- ./configure --enable-debug --enable-werror $C
- make
- make "TFLAGS=-n !313" test-nonflaky
-fi
-
-if [ "$T" = "novalgrind" ]; then
- ./configure --enable-werror $C
- make
- make examples
- make TFLAGS=-n test-nonflaky
-fi
-
-if [ "$T" = "normal" ]; then
- if [ $TRAVIS_OS_NAME = linux ]; then
- # Remove system curl to make sure we don't rely on it.
- # Only done on Linux since we're not permitted to on mac.
- sudo rm -f /usr/bin/curl
- fi
- ./configure --enable-warnings --enable-werror $C
- make
- make examples
- if [ -z $NOTESTS ]; then
- make test-nonflaky
- fi
- if [ -n "$CHECKSRC" ]; then
- make checksrc
- fi
-fi
-
-if [ "$T" = "cmake" ]; then
- mkdir -p build
- cd ./build
- cmake .. -DCURL_WERROR=ON $C
- cd ..
- cmake --build build
- env TFLAGS="!1139 $TFLAGS" cmake --build build --target test-nonflaky
-fi
### Zuul
-[Zuul](https://zuul-ci.org/) is an open source CI tool. A number of Curl tests
-are run at [curl.zuul.vexxhost.dev](https://curl.zuul.vexxhost.dev/builds):
-
-- Source code is formatted according to expectations (`make checksrc`).
-- Curl compiled with a number of different TLS configurations (WolfSSL, rustls,
-BoringSSL, etc).
-- Curl compiled with different C compilers.
-
-As of November 2021, the tests run (sometimes) but do not run consistently and
-do not report results to the GitHub checks runner - you need to manually check
-for failures. See [#7522](https://github.com/curl/curl/issues/7522) for more
-information.
-
-As of November 2021 Daniel Stenberg is the only person with administrator
-access to the Zuul CI environment.
-
-These are configured in `zuul.d` and have test runners in `scripts/zuul`.
+Not used anymore.
### Circle CI
+++ /dev/null
-#***************************************************************************
-# _ _ ____ _
-# 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
-#
-###########################################################################
-
-# The results of each of these jobs can be found at
-# https://curl.zuul.vexxhost.dev/builds. As of November 2021 they are not being
-# propagated to the GitHub "checks" UI, you need to check for them manually.
-
----
-- job:
- name: curl-base
- abstract: true
- pre-run: zuul.d/playbooks/pre.yaml
- run: zuul.d/playbooks/run.yaml
- post-run: zuul.d/playbooks/post.yaml
- nodeset: ubuntu-bionic
- timeout: 3600
- vars:
- curl_env:
- LD_LIBRARY_PATH: /usr/local/lib
- # NOTE(mnaser): Workaround to keep existing Travis scripts compatible
- TRAVIS_OS_NAME: linux
-
-- job:
- name: curl-normal-with-openssl-gssapi-libssh2-checksrc
- parent: curl-base
- vars:
- curl_env:
- T: normal
- C: --with-openssl --with-gssapi --with-libssh2
- CHECKSRC: 1
- curl_apt_packages:
- - krb5-user
- - libssh2-1-dev
- - libbrotli-dev
- - libzstd-dev
-
-- job:
- name: curl-novalgrind-boringssl-with-openssl
- parent: curl-base
- vars:
- gimme_stable: true
- curl_env:
- CC: gcc-8
- CXX: g++-8
- T: novalgrind
- BORINGSSL: "yes"
- C: >-
- --with-openssl={{ ansible_user_dir }}/boringssl
- LD_LIBRARY_PATH: "{{ ansible_user_dir }}/boringssl/lib:/usr/local/lib"
-
-- job:
- name: curl-novalgrind-ngtcp2-with-openssl
- parent: curl-base
- vars:
- curl_apt_packages:
- - libpsl-dev
- - libbrotli-dev
- - libzstd-dev
- curl_env:
- CC: gcc-8
- CXX: g++-8
- T: novalgrind
- NGTCP2: "yes"
- C: >-
- --with-openssl={{ ansible_user_dir }}/ngbuild
- --with-ngtcp2={{ ansible_user_dir }}/ngbuild
- --with-nghttp3={{ ansible_user_dir }}/ngbuild
- NOTESTS:
-
-- job:
- name: curl-debug-clang-disable-alt-svc-with-openssl
- parent: curl-base
- vars:
- curl_apt_packages:
- - clang-9
- - libpsl-dev
- - libbrotli-dev
- - libzstd-dev
- curl_env:
- CC: clang-9
- CXX: clang++-9
- T: debug
- C: >-
- --with-openssl
- --disable-alt-svc
-
-- job:
- name: curl-debug-clang-with-gnutls
- parent: curl-base
- vars:
- curl_apt_packages:
- - clang-9
- - libpsl-dev
- - libbrotli-dev
- - libzstd-dev
- - libgnutls28-dev
- curl_env:
- CC: clang-9
- CXX: clang++-9
- T: debug
- C: >-
- --with-gnutls
-
-- job:
- name: curl-cmake-boringssl-quiche
- parent: curl-base
- vars:
- gimme_stable: true
- curl_apt_packages:
- - libpsl-dev
- - libbrotli-dev
- - libzstd-dev
- curl_env:
- BORINGSSL: "yes"
- QUICHE: "yes"
- CC: gcc-8
- CXX: g++-8
- T: cmake
- C: >-
- -GNinja
- -DUSE_QUICHE=1
- -DOPENSSL_ROOT_DIR={{ ansible_user_dir }}/boringssl
- -DCURL_BROTLI=1
- -DCURL_ZSTD=1
- TFLAGS: https ftps
- PKG_CONFIG_PATH: "{{ ansible_user_dir }}/quiche/target/release"
-
-- job:
- name: curl-cmake-ngtcp2
- parent: curl-base
- vars:
- curl_apt_packages:
- - clang-9
- - libpsl-dev
- - libbrotli-dev
- - libzstd-dev
- - libnss3-dev
- curl_env:
- NGTCP2: "yes"
- CC: clang-9
- CXX: clang++-9
- T: cmake
- C: >-
- -GNinja
- -DUSE_NGTCP2=ON
- -DCURL_BROTLI=1
- -DCURL_ZSTD=1
- PKG_CONFIG_PATH: "{{ ansible_user_dir }}/ngbuild/lib/pkgconfig"
-
-- job:
- name: curl-debug-clang-with-openssl-dl-ubsan
- parent: curl-base
- vars:
- curl_apt_packages:
- - clang-9
- - libpsl-dev
- - libbrotli-dev
- - libzstd-dev
- curl_env:
- CC: clang-9
- CXX: clang++-9
- T: debug
- 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
- TFLAGS: -n
- C: --with-openssl
-
-- project:
- check:
- jobs:
- - curl-normal-with-openssl-gssapi-libssh2-checksrc
- - curl-novalgrind-boringssl-with-openssl
- - curl-novalgrind-ngtcp2-with-openssl
- - curl-debug-clang-disable-alt-svc-with-openssl
- - curl-debug-clang-with-gnutls
- - curl-cmake-boringssl-quiche
- - curl-cmake-ngtcp2
- - curl-debug-clang-with-openssl-dl-ubsan
-...
+++ /dev/null
-#***************************************************************************
-# _ _ ____ _
-# 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
-#
-###########################################################################
----
-- hosts: all
- tasks:
- - name: Pull down logs to executor
- ignore_errors: True
- synchronize:
- src: "{{ zuul.project.src_dir }}/config.log"
- dest: "{{ zuul.executor.log_root }}/config.log"
- mode: pull
- owner: false
- group: false
-...
+++ /dev/null
-#***************************************************************************
-# _ _ ____ _
-# 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
-#
-###########################################################################
----
-- hosts: all
- tasks:
-
- - name: Install latest stable release of go
- when: gimme_stable|default(false)
- block:
- - name: Find latest stable version
- register: go_stable
- uri:
- url: https://golang.org/VERSION?m=text
- return_content: true
- - name: Install Go
- include_role:
- name: ensure-go
- vars:
- go_version: "{{ go_stable.content | regex_replace('^go', '') }}"
-
- - name: Symlink /usr/local/go/bin/go to /usr/bin/go
- become: true
- file:
- src: /usr/local/go/bin/go
- dest: /usr/bin/go
- state: link
-
- - name: Install common dependencies
- become: true
- apt:
- update_cache: true
- pkg:
- - autoconf
- - automake
- - cmake
- - valgrind
- - libev-dev
- - libc-ares-dev
- - libssl-dev
- - libtool
- - g++
- - g++-8
- - stunnel4
- - libidn2-dev
- - gnutls-bin
- - python-impacket
- - ninja-build
- - libgsasl7-dev
- - libnghttp2-dev
-
- - name: Install job-specific packages
- when: curl_apt_packages is defined
- become: true
- apt:
- pkg: "{{ curl_apt_packages }}"
-
- - name: Symlink /usr/bin/scan-build-10 to /usr/bin/scan-build
- when:
- - curl_apt_packages is defined
- - '"clang-tools-10" in curl_apt_packages'
- become: true
- file:
- src: /usr/bin/scan-build-10
- dest: /usr/bin/scan-build
- state: link
-
- - name: Run before script
- shell: "./scripts/zuul/before_script.sh"
- args:
- chdir: "{{ zuul.project.src_dir }}"
- environment: "{{ curl_env }}"
-...
+++ /dev/null
-#***************************************************************************
-# _ _ ____ _
-# 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
-#
-###########################################################################
----
-- hosts: all
- tasks:
- - name: Print environment variables
- debug:
- var: curl_env
-
- - name: Run tests
- environment: "{{ curl_env }}"
- shell: "./scripts/zuul/script.sh"
- args:
- chdir: "{{ zuul.project.src_dir }}"