Commit f98b1988 authored by Nick Mathewson's avatar Nick Mathewson 🥔
Browse files

Merge branch 'maint-0.4.3' into maint-0.4.4

parents 670f5632 309eafbc
Loading
Loading
Loading
Loading
+26 −10
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ variables:
    - apt-get install
        automake
        build-essential
        ca-certificates
        git
        libevent-dev
        liblzma-dev
@@ -77,6 +78,10 @@ variables:
        zlib1g-dev
    - if [ "$ASCIIDOC" = yes ]; then apt-get install asciidoc xmlto; 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:
  image: debian:stable
@@ -84,17 +89,18 @@ debian-minimal:
  script:
    - ./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,
# that all end in similar amount of time?
#debian-hardened:
#  image: debian:testing
#  <<: *debian-template
#  variables:
#    HARDENING: "yes"
#  script:
#    - ./scripts/ci/ci-driver.sh
debian-hardened:
  image: debian:testing
  <<: *debian-template
  variables:
    HARDENING: "yes"
    CC: "clang"
  script:
    - ./scripts/ci/ci-driver.sh

debian-distcheck:
  image: debian:stable
@@ -105,7 +111,6 @@ debian-distcheck:
  script:
    - ./scripts/ci/ci-driver.sh

# TODO: it would be neat to disable the "make all" part of this one.
debian-docs:
  image: debian:stable
  <<: *debian-template
@@ -113,5 +118,16 @@ debian-docs:
    DOXYGEN: "yes"
    ASCIIDOC: "yes"
    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:
    - ./scripts/ci/ci-driver.sh
+2 −0
Original line number Diff line number Diff line
@@ -164,6 +164,8 @@ include src/include.am
include doc/include.am
include contrib/include.am

manpages: $(nodist_man1_MANS)

EXTRA_DIST+= \
	ChangeLog							\
	CONTRIBUTING							\
+39 −38
Original line number Diff line number Diff line
@@ -21,6 +21,11 @@ COLOR_CI="${COLOR_CI:-yes}"
# Options for which CI system this is.
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.
FATAL_WARNINGS="${FATAL_WARNINGS:-yes}"
HARDENING="${HARDENING:-no}"
@@ -60,12 +65,14 @@ STEM_PATH="${STEM_PATH:-}"
if [[ "${COLOR_CI}" == "yes" ]]; then
    T_RED=$(tput setaf 1 || true)
    T_GREEN=$(tput setaf 2 || true)
    T_YELLOW=$(tput setaf 3 || true)
    T_DIM=$(tput dim || true)
    T_BOLD=$(tput bold || true)
    T_RESET=$(tput sgr0 || true)
else
    T_RED=
    T_GREEN=
    T_YELLOW=
    T_DIM=
    T_BOLD=
    T_RESET=
@@ -80,6 +87,12 @@ function die()
    echo "${T_BOLD}${T_RED}FATAL ERROR:${T_RESET} $*" 1>&2
    exit 1
}

function skipping()
{
    echo "${T_BOLD}${T_YELLOW}Skipping $*${T_RESET}"
}

function hooray()
{
    echo "${T_BOLD}${T_GREEN}$*${T_RESET}"
@@ -165,33 +178,6 @@ else
    }
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.

@@ -206,6 +192,10 @@ yes_or_no RUST
yes_or_no DOXYGEN
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 STEM
yes_or_no DISTCHECK
@@ -370,6 +360,7 @@ if [[ "$RUN_STAGE_BUILD" = "yes" ]] ; then
	end_section Distcheck
    fi
fi

##############################
# Run tests.

@@ -378,25 +369,32 @@ if [[ "$RUN_STAGE_TEST" == "no" ]]; then
    exit 0
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=""

if [[ "${DOXYGEN}" = 'yes' && "${TOR_VER_AT_LEAST_043}" = 'yes' ]]; then
if [[ "${DOXYGEN}" = 'yes' ]]; then
    start_section Doxygen
    if [[ "${TOR_VER_AT_LEAST_043}" = 'yes' ]]; then
        if runcmd make doxygen; then
	    hooray "make doxygen has succeeded."
        else
	    FAILED_TESTS="${FAILED_TESTS} doxygen"
        fi
    else
        skipping "make doxygen: doxygen is broken for Tor < 0.4.3"
    fi
    end_section Doxygen
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
    start_section "Check"
    if runcmd make "${make_options[@]}" check; then
@@ -411,10 +409,13 @@ fi

if [[ "${CHUTNEY}" = "yes" ]]; then
    start_section "Chutney"
    export CHUTNEY_TOR_SANDBOX=0
    export CHUTNEY_ALLOW_FAILURES=2
    if runcmd make "${CHUTNEY_MAKE_TARGET}"; then
        hooray "Chutney tests have succeeded"
    else
        error "Chutney says:"
        export CHUTNEY_DATA_DIR="${CHUTNEY_PATH}/net"
        runcmd "${CHUTNEY_PATH}"/tools/diagnostics.sh || true
        # XXXX These next two should be part of a make target.
        runcmd ls test_network_log || true