Merge branch 'maint-0.4.3' into maint-0.4.4

This commit is contained in:
Nick Mathewson 2020-08-12 12:29:17 -04:00
commit f98b1988ec
3 changed files with 67 additions and 48 deletions

View File

@ -66,6 +66,7 @@ variables:
- apt-get install - apt-get install
automake automake
build-essential build-essential
ca-certificates
git git
libevent-dev libevent-dev
liblzma-dev liblzma-dev
@ -77,6 +78,10 @@ variables:
zlib1g-dev zlib1g-dev
- if [ "$ASCIIDOC" = yes ]; then apt-get install asciidoc xmlto; fi - if [ "$ASCIIDOC" = yes ]; then apt-get install asciidoc xmlto; fi
- if [ "$DOXYGEN" = yes ]; then apt-get install doxygen; fi - if [ "$DOXYGEN" = yes ]; then apt-get install doxygen; fi
- if [ "$STEM" = yes ]; then apt-get install timelimit; fi
- if [ "$CC" = clang ]; then apt-get install clang; fi
- if [ "$STEM" = yes ]; then git clone --depth 1 https://git.torproject.org/stem.git ; export STEM_PATH="$(pwd)/stem"; fi
- if [ "$CHUTNEY" = yes ]; then git clone --depth 1 https://git.torproject.org/chutney.git ; export CHUTNEY_PATH="$(pwd)/chutney"; fi
debian-minimal: debian-minimal:
image: debian:stable image: debian:stable
@ -84,17 +89,18 @@ debian-minimal:
script: script:
- ./scripts/ci/ci-driver.sh - ./scripts/ci/ci-driver.sh
###############################################
# Temporarily diabled. This one just takes too long to finish right now! # TODO: This one just takes too long to finish right now!
# Maybe we need to divide the call to ./src/test/test into a few segments, # Maybe we need to divide the call to ./src/test/test into a few segments,
# that all end in similar amount of time? # that all end in similar amount of time?
#debian-hardened: debian-hardened:
# image: debian:testing image: debian:testing
# <<: *debian-template <<: *debian-template
# variables: variables:
# HARDENING: "yes" HARDENING: "yes"
# script: CC: "clang"
# - ./scripts/ci/ci-driver.sh script:
- ./scripts/ci/ci-driver.sh
debian-distcheck: debian-distcheck:
image: debian:stable image: debian:stable
@ -105,7 +111,6 @@ debian-distcheck:
script: script:
- ./scripts/ci/ci-driver.sh - ./scripts/ci/ci-driver.sh
# TODO: it would be neat to disable the "make all" part of this one.
debian-docs: debian-docs:
image: debian:stable image: debian:stable
<<: *debian-template <<: *debian-template
@ -113,5 +118,16 @@ debian-docs:
DOXYGEN: "yes" DOXYGEN: "yes"
ASCIIDOC: "yes" ASCIIDOC: "yes"
CHECK: "no" CHECK: "no"
RUN_STAGE_BUILD: "no"
script:
- ./scripts/ci/ci-driver.sh
debian-integration:
image: debian:stable
<<: *debian-template
variables:
CHECK: "no"
CHUTNEY: "yes"
# STEM: "yes" -- currently failing on <044.
script: script:
- ./scripts/ci/ci-driver.sh - ./scripts/ci/ci-driver.sh

View File

@ -164,6 +164,8 @@ include src/include.am
include doc/include.am include doc/include.am
include contrib/include.am include contrib/include.am
manpages: $(nodist_man1_MANS)
EXTRA_DIST+= \ EXTRA_DIST+= \
ChangeLog \ ChangeLog \
CONTRIBUTING \ CONTRIBUTING \

View File

@ -21,6 +21,11 @@ COLOR_CI="${COLOR_CI:-yes}"
# Options for which CI system this is. # Options for which CI system this is.
ON_GITLAB="${ON_GITLAB:-yes}" ON_GITLAB="${ON_GITLAB:-yes}"
# Options for things we usually won't want to skip.
RUN_STAGE_CONFIGURE="${RUN_STAGE_CONFIGURE:-yes}"
RUN_STAGE_BUILD="${RUN_STAGE_BUILD:-yes}"
RUN_STAGE_TEST="${RUN_STAGE_TEST:-yes}"
# Options for how to build Tor. All should be yes/no. # Options for how to build Tor. All should be yes/no.
FATAL_WARNINGS="${FATAL_WARNINGS:-yes}" FATAL_WARNINGS="${FATAL_WARNINGS:-yes}"
HARDENING="${HARDENING:-no}" HARDENING="${HARDENING:-no}"
@ -60,12 +65,14 @@ STEM_PATH="${STEM_PATH:-}"
if [[ "${COLOR_CI}" == "yes" ]]; then if [[ "${COLOR_CI}" == "yes" ]]; then
T_RED=$(tput setaf 1 || true) T_RED=$(tput setaf 1 || true)
T_GREEN=$(tput setaf 2 || true) T_GREEN=$(tput setaf 2 || true)
T_YELLOW=$(tput setaf 3 || true)
T_DIM=$(tput dim || true) T_DIM=$(tput dim || true)
T_BOLD=$(tput bold || true) T_BOLD=$(tput bold || true)
T_RESET=$(tput sgr0 || true) T_RESET=$(tput sgr0 || true)
else else
T_RED= T_RED=
T_GREEN= T_GREEN=
T_YELLOW=
T_DIM= T_DIM=
T_BOLD= T_BOLD=
T_RESET= T_RESET=
@ -80,6 +87,12 @@ function die()
echo "${T_BOLD}${T_RED}FATAL ERROR:${T_RESET} $*" 1>&2 echo "${T_BOLD}${T_RED}FATAL ERROR:${T_RESET} $*" 1>&2
exit 1 exit 1
} }
function skipping()
{
echo "${T_BOLD}${T_YELLOW}Skipping $*${T_RESET}"
}
function hooray() function hooray()
{ {
echo "${T_BOLD}${T_GREEN}$*${T_RESET}" echo "${T_BOLD}${T_GREEN}$*${T_RESET}"
@ -165,33 +178,6 @@ else
} }
fi fi
if [[ "$*" == "" ]]; then
RUN_STAGE_CONFIGURE="yes"
RUN_STAGE_BUILD="yes"
RUN_STAGE_TEST="yes"
else
RUN_STAGE_CONFIGURE="no"
RUN_STAGE_BUILD="no"
RUN_STAGE_TEST="no"
for stage in "$@"; do
case "$stage" in
configure)
RUN_STAGE_CONFIGURE="yes"
;;
build)
RUN_STAGE_BUILD="yes"
;;
test)
RUN_STAGE_TEST="yes"
;;
*)
error "Unknown stage $stage"
;;
esac
done
fi
############################################################################# #############################################################################
# Validate inputs. # Validate inputs.
@ -206,6 +192,10 @@ yes_or_no RUST
yes_or_no DOXYGEN yes_or_no DOXYGEN
yes_or_no ASCIIDOC yes_or_no ASCIIDOC
yes_or_no RUN_STAGE_CONFIGURE
yes_or_no RUN_STAGE_BUILD
yes_or_no RUN_STAGE_TEST
yes_or_no CHECK yes_or_no CHECK
yes_or_no STEM yes_or_no STEM
yes_or_no DISTCHECK yes_or_no DISTCHECK
@ -370,6 +360,7 @@ if [[ "$RUN_STAGE_BUILD" = "yes" ]] ; then
end_section Distcheck end_section Distcheck
fi fi
fi fi
############################## ##############################
# Run tests. # Run tests.
@ -378,25 +369,32 @@ if [[ "$RUN_STAGE_TEST" == "no" ]]; then
exit 0 exit 0
fi fi
if [[ "$RUN_STAGE_BUILD" = "no" ]] ; then
debug "Skipped build stage. Making sure that ./src/app/tor exists."
if [[ ! -f "./src/app/tor" ]]; then
die "$(pwd)/src/app/tor does not exist"
fi
fi
FAILED_TESTS="" FAILED_TESTS=""
if [[ "${DOXYGEN}" = 'yes' && "${TOR_VER_AT_LEAST_043}" = 'yes' ]]; then if [[ "${DOXYGEN}" = 'yes' ]]; then
start_section Doxygen start_section Doxygen
if runcmd make doxygen; then if [[ "${TOR_VER_AT_LEAST_043}" = 'yes' ]]; then
hooray "make doxygen has succeeded." if runcmd make doxygen; then
hooray "make doxygen has succeeded."
else
FAILED_TESTS="${FAILED_TESTS} doxygen"
fi
else else
FAILED_TESTS="${FAILED_TESTS} doxygen" skipping "make doxygen: doxygen is broken for Tor < 0.4.3"
fi fi
end_section Doxygen end_section Doxygen
fi fi
if [[ "${ASCIIDOC}" = 'yes' ]]; then
start_section Asciidoc
if runcmd make manpages; then
hooray "make manpages has succeeded."
else
FAILED_TESTS="${FAILED_TESTS} asciidoc"
fi
end_section Asciidoc
fi
if [[ "${CHECK}" = "yes" ]]; then if [[ "${CHECK}" = "yes" ]]; then
start_section "Check" start_section "Check"
if runcmd make "${make_options[@]}" check; then if runcmd make "${make_options[@]}" check; then
@ -411,10 +409,13 @@ fi
if [[ "${CHUTNEY}" = "yes" ]]; then if [[ "${CHUTNEY}" = "yes" ]]; then
start_section "Chutney" start_section "Chutney"
export CHUTNEY_TOR_SANDBOX=0
export CHUTNEY_ALLOW_FAILURES=2
if runcmd make "${CHUTNEY_MAKE_TARGET}"; then if runcmd make "${CHUTNEY_MAKE_TARGET}"; then
hooray "Chutney tests have succeeded" hooray "Chutney tests have succeeded"
else else
error "Chutney says:" error "Chutney says:"
export CHUTNEY_DATA_DIR="${CHUTNEY_PATH}/net"
runcmd "${CHUTNEY_PATH}"/tools/diagnostics.sh || true runcmd "${CHUTNEY_PATH}"/tools/diagnostics.sh || true
# XXXX These next two should be part of a make target. # XXXX These next two should be part of a make target.
runcmd ls test_network_log || true runcmd ls test_network_log || true