diff options
author | iphydf <iphydf@users.noreply.github.com> | 2018-06-24 22:56:07 +0000 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2018-07-01 08:35:44 +0000 |
commit | 1a54be06cd359257478b584611f34058d21fe723 (patch) | |
tree | db3d6ca2dfa2a87ae2efdac6e412c2b780a64009 | |
parent | 706fad1ce88c2104009a3835ee343ff9d8ec8b79 (diff) |
Simplify Travis CI builds.
Have one script per build. This means more duplication between the
scripts, but it's much easier to understand and to run locally.
35 files changed, 486 insertions, 455 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 3e6f293e..f85e9548 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml | |||
@@ -10,13 +10,33 @@ jobs: | |||
10 | x86_64: | 10 | x86_64: |
11 | working_directory: ~/work | 11 | working_directory: ~/work |
12 | docker: | 12 | docker: |
13 | - image: circleci/builder-base:latest | 13 | - image: ubuntu |
14 | 14 | ||
15 | steps: | 15 | steps: |
16 | - checkout | 16 | - checkout |
17 | - run: add-apt-repository ppa:chris-lea/libsodium | ||
18 | - run: apt update | 17 | - run: apt update |
19 | - run: apt install -y clang cmake libgtest-dev libopus-dev libsodium-dev libvpx-dev pkg-config | 18 | - run: apt install -y --no-install-recommends |
20 | - run: cmake -H. -B_build -DDEBUG=ON -DTRACE=ON -DERROR_ON_WARNING=ON -DASAN=ON -DMUST_BUILD_TOXAV=ON -DSTRICT_ABI=ON -DTEST_TIMEOUT_SECONDS=90 -DUSE_IPV6=OFF | 19 | clang |
21 | - run: make -C _build -j$(nproc) | 20 | cmake |
22 | - run: make -C _build test ARGS="-j50 --rerun-failed" CTEST_OUTPUT_ON_FAILURE=1 || make -C _build test ARGS="-j50 --rerun-failed" CTEST_OUTPUT_ON_FAILURE=1 | 21 | libconfig-dev |
22 | libgtest-dev | ||
23 | libopus-dev | ||
24 | libsodium-dev | ||
25 | libvpx-dev | ||
26 | ninja-build | ||
27 | pkg-config | ||
28 | - run: . .travis/flags-clang.sh; | ||
29 | add_flag -fsanitize=address; | ||
30 | cmake -H. -B_build -GNinja | ||
31 | -DCMAKE_C_FLAGS="$C_FLAGS" | ||
32 | -DCMAKE_CXX_FLAGS="$CXX_FLAGS" | ||
33 | -DCMAKE_EXE_LINKER_FLAGS="$LD_FLAGS" | ||
34 | -DCMAKE_SHARED_LINKER_FLAGS="$LD_FLAGS" | ||
35 | -DCMAKE_INSTALL_PREFIX:PATH="$PWD/_install" | ||
36 | -DTRACE=ON | ||
37 | -DMUST_BUILD_TOXAV=ON | ||
38 | -DSTRICT_ABI=ON | ||
39 | -DTEST_TIMEOUT_SECONDS=120 | ||
40 | -DUSE_IPV6=OFF | ||
41 | - run: cd _build && ninja install -j$(nproc) | ||
42 | - run: cd _build && ctest -j50 --output-on-failure | ||
diff --git a/.travis.yml b/.travis.yml index 5bb5a87d..416aecc7 100644 --- a/.travis.yml +++ b/.travis.yml | |||
@@ -9,10 +9,10 @@ language: c | |||
9 | matrix: | 9 | matrix: |
10 | include: | 10 | include: |
11 | - stage: "Stage 1" | 11 | - stage: "Stage 1" |
12 | env: JOB=toxcore ENV=linux | 12 | env: JOB=cmake-linux |
13 | compiler: gcc | 13 | compiler: gcc |
14 | addons: | 14 | addons: |
15 | apt: &apt-dependencies | 15 | apt: |
16 | packages: | 16 | packages: |
17 | - libconfig-dev # For tox-bootstrapd. | 17 | - libconfig-dev # For tox-bootstrapd. |
18 | - libcv-dev # For av_test. | 18 | - libcv-dev # For av_test. |
@@ -23,57 +23,55 @@ matrix: | |||
23 | - libgtest-dev # For unit tests. | 23 | - libgtest-dev # For unit tests. |
24 | - libvpx-dev # For toxav. | 24 | - libvpx-dev # For toxav. |
25 | - portaudio19-dev # For av_test. | 25 | - portaudio19-dev # For av_test. |
26 | install: .travis/$JOB install | ||
27 | script: .travis/$JOB script | ||
28 | after_script: .travis/upload-coverage | ||
26 | - stage: "Stage 1" | 29 | - stage: "Stage 1" |
27 | if: type IN (push, api, cron) | 30 | env: JOB=autotools-linux |
28 | env: JOB=autotools ENV=linux | ||
29 | compiler: clang | 31 | compiler: clang |
30 | addons: | 32 | addons: |
31 | apt: *apt-dependencies | 33 | apt: |
32 | - stage: "Stage 1" | 34 | packages: |
33 | if: type IN (push, api, cron) | 35 | - libconfig-dev # For tox-bootstrapd. |
34 | env: JOB=toxcore ENV=windows ARCH=i686 | 36 | - libopus-dev # For toxav. |
35 | group: deprecated-2017Q4 | 37 | - libvpx-dev # For toxav. |
36 | services: | 38 | install: .travis/$JOB install |
37 | - docker | 39 | script: .travis/$JOB script |
38 | - stage: "Stage 1" | ||
39 | if: type IN (push, api, cron) | ||
40 | env: JOB=toxcore ENV=windows ARCH=x86_64 | ||
41 | group: deprecated-2017Q4 | ||
42 | services: | ||
43 | - docker | ||
44 | - stage: "Stage 1" | 40 | - stage: "Stage 1" |
45 | if: type IN (push, api, cron) | 41 | if: type IN (push, api, cron) |
46 | env: JOB=installmd ENV=windows SUPPORT_ARCH_i686=true SUPPORT_ARCH_x86_64=false SUPPORT_TEST=true ENABLE_ARCH_i686=true ENABLE_ARCH_x86_64=false ENABLE_TEST=true ALLOW_TEST_FAILURE=true | 42 | env: JOB=cmake-win32 |
47 | services: | 43 | services: [docker] |
48 | - docker | 44 | install: .travis/$JOB install |
45 | script: .travis/$JOB script | ||
49 | - stage: "Stage 1" | 46 | - stage: "Stage 1" |
50 | if: type IN (push, api, cron) | 47 | if: type IN (push, api, cron) |
51 | env: JOB=installmd ENV=windows SUPPORT_ARCH_i686=false SUPPORT_ARCH_x86_64=true SUPPORT_TEST=true ENABLE_ARCH_i686=false ENABLE_ARCH_x86_64=true ENABLE_TEST=true ALLOW_TEST_FAILURE=true | 48 | env: JOB=cmake-win64 |
52 | services: | 49 | services: [docker] |
53 | - docker | 50 | install: .travis/$JOB install |
51 | script: .travis/$JOB script | ||
54 | - stage: "Stage 1" | 52 | - stage: "Stage 1" |
55 | if: type IN (push, api, cron) | 53 | if: type IN (push, api, cron) |
56 | env: JOB=toxcore ENV=freebsd | 54 | env: JOB=cmake-freebsd |
57 | dist: trusty | ||
58 | sudo: required | 55 | sudo: required |
59 | install: other/travis/phase $JOB $ENV install stage1 | 56 | install: .travis/$JOB-stage1 install |
60 | script: other/travis/phase $JOB $ENV script stage1 | 57 | script: .travis/$JOB-stage1 script |
61 | - stage: "Stage 1" | 58 | - stage: "Stage 1" |
62 | if: type IN (push, api, cron) | 59 | if: type IN (push, api, cron) |
63 | env: JOB=tox-bootstrapd-docker ENV=linux | 60 | env: JOB=tox-bootstrapd-docker |
64 | services: | 61 | services: [docker] |
65 | - docker | 62 | script: .travis/$JOB |
66 | sudo: required | ||
67 | - stage: "Stage 2" | 63 | - stage: "Stage 2" |
68 | if: type IN (push, api, cron) | 64 | if: type IN (push, api, cron) |
69 | env: JOB=toxcore ENV=freebsd | 65 | env: JOB=cmake-freebsd |
70 | dist: trusty | ||
71 | sudo: required | 66 | sudo: required |
72 | install: other/travis/phase $JOB $ENV install stage2 | 67 | install: .travis/$JOB-stage2 install |
68 | script: .travis/$JOB-stage2 script | ||
73 | - stage: "Stage 2" | 69 | - stage: "Stage 2" |
74 | if: type IN (push, api, cron) | 70 | if: type IN (push, api, cron) |
75 | env: JOB=toxcore ENV=osx RUN_TESTS=true | 71 | env: JOB=cmake-osx |
76 | os: osx | 72 | os: osx |
73 | install: .travis/$JOB install | ||
74 | script: .travis/$JOB script | ||
77 | fast_finish: true | 75 | fast_finish: true |
78 | 76 | ||
79 | cache: | 77 | cache: |
@@ -81,11 +79,6 @@ cache: | |||
81 | - $HOME/cache | 79 | - $HOME/cache |
82 | - /opt/freebsd/cache | 80 | - /opt/freebsd/cache |
83 | 81 | ||
84 | install: other/travis/phase $JOB $ENV install | ||
85 | script: other/travis/phase $JOB $ENV script | ||
86 | after_script: other/travis/phase $JOB $ENV after_script | ||
87 | after_failure: other/travis/phase $JOB $ENV after_failure | ||
88 | |||
89 | notifications: | 82 | notifications: |
90 | irc: | 83 | irc: |
91 | channels: | 84 | channels: |
diff --git a/.travis/autotools-linux b/.travis/autotools-linux new file mode 100755 index 00000000..6d38e34e --- /dev/null +++ b/.travis/autotools-linux | |||
@@ -0,0 +1,52 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ACTION="$1" | ||
4 | |||
5 | set -eu | ||
6 | |||
7 | CACHEDIR="$HOME/cache" | ||
8 | NPROC=`nproc` | ||
9 | |||
10 | travis_install() { | ||
11 | # Install vanilla NaCl only. | ||
12 | [ -f "$CACHEDIR/lib/amd64/libnacl.a" ] || { | ||
13 | curl https://hyperelliptic.org/nacl/nacl-20110221.tar.bz2 | tar jx | ||
14 | cd nacl-20110221 # pushd | ||
15 | "./do" | ||
16 | # "make install" | ||
17 | mkdir -p "$CACHEDIR/include"; mv build/*/include/* "$CACHEDIR/include" | ||
18 | mkdir -p "$CACHEDIR/lib" ; mv build/*/lib/* "$CACHEDIR/lib" | ||
19 | cd - # popd | ||
20 | } | ||
21 | } | ||
22 | |||
23 | travis_script() { | ||
24 | . ".travis/flags-$CC.sh" | ||
25 | |||
26 | add_ld_flag -Wl,-z,defs | ||
27 | |||
28 | # Make compilation error on a warning | ||
29 | add_flag -Werror | ||
30 | |||
31 | add_config_flag --with-nacl-libs="$CACHEDIR/lib/amd64" | ||
32 | add_config_flag --with-nacl-headers="$CACHEDIR/include/amd64" | ||
33 | add_config_flag --disable-ipv6 | ||
34 | add_config_flag --enable-nacl | ||
35 | add_config_flag --enable-daemon | ||
36 | add_config_flag --enable-logging | ||
37 | add_config_flag --with-log-level=TRACE | ||
38 | |||
39 | autoreconf -fi | ||
40 | mkdir -p _build | ||
41 | cd _build # pushd | ||
42 | ../configure $CONFIG_FLAGS || (cat config.log && false) | ||
43 | make "-j$NPROC" -k CFLAGS="$C_FLAGS" LDFLAGS="$LD_FLAGS" | ||
44 | make "-j$NPROC" -k distcheck DISTCHECK_CONFIGURE_FLAGS="$CONFIG_FLAGS" | ||
45 | cd - # popd | ||
46 | } | ||
47 | |||
48 | if [ "-z" "$ACTION" ]; then | ||
49 | "travis_script" | ||
50 | else | ||
51 | "travis_$ACTION" | ||
52 | fi | ||
diff --git a/.travis/cmake-freebsd-stage1 b/.travis/cmake-freebsd-stage1 new file mode 100755 index 00000000..3954e2af --- /dev/null +++ b/.travis/cmake-freebsd-stage1 | |||
@@ -0,0 +1,23 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ACTION="$1" | ||
4 | |||
5 | set -eu | ||
6 | |||
7 | . other/travis/env.sh | ||
8 | . other/travis/env-freebsd.sh | ||
9 | |||
10 | travis_install() { | ||
11 | . other/travis/freebsd-install | ||
12 | . other/travis/freebsd-install-stage1 | ||
13 | } | ||
14 | |||
15 | travis_script() { | ||
16 | echo "Nothing to do here. Building happens in stage 2." | ||
17 | } | ||
18 | |||
19 | if [ "-z" "$ACTION" ]; then | ||
20 | "travis_script" | ||
21 | else | ||
22 | "travis_$ACTION" | ||
23 | fi | ||
diff --git a/.travis/cmake-freebsd-stage2 b/.travis/cmake-freebsd-stage2 new file mode 100755 index 00000000..57b8a0f8 --- /dev/null +++ b/.travis/cmake-freebsd-stage2 | |||
@@ -0,0 +1,23 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ACTION="$1" | ||
4 | |||
5 | set -eu | ||
6 | |||
7 | . other/travis/env.sh | ||
8 | . other/travis/env-freebsd.sh | ||
9 | |||
10 | travis_install() { | ||
11 | . other/travis/freebsd-install | ||
12 | . other/travis/freebsd-install-stage2 | ||
13 | } | ||
14 | |||
15 | travis_script() { | ||
16 | . other/travis/toxcore-script | ||
17 | } | ||
18 | |||
19 | if [ "-z" "$ACTION" ]; then | ||
20 | "travis_script" | ||
21 | else | ||
22 | "travis_$ACTION" | ||
23 | fi | ||
diff --git a/.travis/cmake-linux b/.travis/cmake-linux new file mode 100755 index 00000000..e3517a09 --- /dev/null +++ b/.travis/cmake-linux | |||
@@ -0,0 +1,75 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ACTION="$1" | ||
4 | |||
5 | set -eu | ||
6 | |||
7 | CACHEDIR="$HOME/cache" | ||
8 | NPROC=`nproc` | ||
9 | ASTYLE="$CACHEDIR/astyle/build/gcc/bin/astyle" | ||
10 | |||
11 | travis_install() { | ||
12 | which coveralls || { | ||
13 | # Install cpp-coveralls to upload test coverage results. | ||
14 | pip install --user ndg-httpsclient urllib3[secure] cpp-coveralls | ||
15 | |||
16 | # Work around https://github.com/eddyxu/cpp-coveralls/issues/108 by manually | ||
17 | # installing the pyOpenSSL module and injecting it into urllib3 as per | ||
18 | # https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2 | ||
19 | sed -i -e '/^import sys$/a import urllib3.contrib.pyopenssl\nurllib3.contrib.pyopenssl.inject_into_urllib3()' `which coveralls` | ||
20 | } | ||
21 | |||
22 | # Install astyle (version in ubuntu-precise too old). | ||
23 | [ -f "$ASTYLE" ] || { | ||
24 | wget -O ../astyle.tar.gz https://deb.debian.org/debian/pool/main/a/astyle/astyle_2.06.orig.tar.gz | ||
25 | tar -xf ../astyle.tar.gz -C "$CACHEDIR" | ||
26 | make -C "$CACHEDIR/astyle/build/gcc" "-j$NPROC" | ||
27 | } | ||
28 | |||
29 | # Install libsodium (not in ubuntu-precise). | ||
30 | [ -f "$CACHEDIR/lib/libsodium.a" ] || { | ||
31 | git clone --depth=1 --branch=stable https://github.com/jedisct1/libsodium ../libsodium | ||
32 | cd ../libsodium # pushd | ||
33 | ./autogen.sh | ||
34 | ./configure --prefix="$CACHEDIR" | ||
35 | make install "-j$NPROC" | ||
36 | cd - # popd | ||
37 | } | ||
38 | } | ||
39 | |||
40 | travis_script() { | ||
41 | . ".travis/flags-$CC.sh" | ||
42 | |||
43 | add_ld_flag -Wl,-z,defs | ||
44 | |||
45 | # Make compilation error on a warning | ||
46 | add_flag -Werror | ||
47 | |||
48 | # Coverage flags. | ||
49 | add_flag -fprofile-arcs -ftest-coverage | ||
50 | |||
51 | cmake -B_build -H. \ | ||
52 | -DCMAKE_C_FLAGS="$C_FLAGS" \ | ||
53 | -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \ | ||
54 | -DCMAKE_EXE_LINKER_FLAGS="$LD_FLAGS" \ | ||
55 | -DCMAKE_SHARED_LINKER_FLAGS="$LD_FLAGS" \ | ||
56 | -DCMAKE_INSTALL_PREFIX:PATH="$PWD/_install" \ | ||
57 | -DTRACE=ON \ | ||
58 | -DMUST_BUILD_TOXAV=ON \ | ||
59 | -DSTRICT_ABI=ON \ | ||
60 | -DTEST_TIMEOUT_SECONDS=120 \ | ||
61 | -DUSE_IPV6=OFF | ||
62 | |||
63 | cd _build # pushd | ||
64 | make "-j$NPROC" -k install | ||
65 | make "-j$NPROC" test ARGS="-j50" CTEST_OUTPUT_ON_FAILURE=1 | ||
66 | cd - # popd | ||
67 | |||
68 | other/astyle/format-source . "$ASTYLE" | ||
69 | } | ||
70 | |||
71 | if [ "-z" "$ACTION" ]; then | ||
72 | "travis_script" | ||
73 | else | ||
74 | "travis_$ACTION" | ||
75 | fi | ||
diff --git a/.travis/cmake-osx b/.travis/cmake-osx new file mode 100755 index 00000000..529a2309 --- /dev/null +++ b/.travis/cmake-osx | |||
@@ -0,0 +1,46 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ACTION="$1" | ||
4 | |||
5 | set -eu | ||
6 | |||
7 | CACHEDIR="$HOME/cache" | ||
8 | NPROC=`sysctl -n hw.physicalcpu` | ||
9 | |||
10 | travis_install() { | ||
11 | # Workaround for bug in Homebrew where it only finds an old Ruby version. | ||
12 | brew update | ||
13 | |||
14 | brew install libsodium libvpx opus libconfig | ||
15 | } | ||
16 | |||
17 | travis_script() { | ||
18 | . ".travis/flags-$CC.sh" | ||
19 | |||
20 | add_ld_flag -undefined error | ||
21 | |||
22 | # Make compilation error on a warning | ||
23 | add_flag -Werror | ||
24 | |||
25 | cmake -B_build -H. \ | ||
26 | -DCMAKE_C_FLAGS="$C_FLAGS" \ | ||
27 | -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \ | ||
28 | -DCMAKE_EXE_LINKER_FLAGS="$LD_FLAGS" \ | ||
29 | -DCMAKE_SHARED_LINKER_FLAGS="$LD_FLAGS" \ | ||
30 | -DCMAKE_INSTALL_PREFIX:PATH="$PWD/_install" \ | ||
31 | -DTRACE=ON \ | ||
32 | -DMUST_BUILD_TOXAV=ON \ | ||
33 | -DTEST_TIMEOUT_SECONDS=120 \ | ||
34 | -DUSE_IPV6=OFF | ||
35 | |||
36 | cd _build # pushd | ||
37 | make "-j$NPROC" -k install | ||
38 | make "-j$NPROC" test ARGS="-j50" CTEST_OUTPUT_ON_FAILURE=1 | ||
39 | cd - # popd | ||
40 | } | ||
41 | |||
42 | if [ "-z" "$ACTION" ]; then | ||
43 | "travis_script" | ||
44 | else | ||
45 | "travis_$ACTION" | ||
46 | fi | ||
diff --git a/.travis/cmake-win32 b/.travis/cmake-win32 new file mode 100755 index 00000000..e4be36f0 --- /dev/null +++ b/.travis/cmake-win32 | |||
@@ -0,0 +1,7 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | i686=true | ||
4 | x86_64=false | ||
5 | WINDOWS_ARCH=win32 | ||
6 | |||
7 | . .travis/cmake-windows.sh | ||
diff --git a/.travis/cmake-win64 b/.travis/cmake-win64 new file mode 100755 index 00000000..f961a00b --- /dev/null +++ b/.travis/cmake-win64 | |||
@@ -0,0 +1,7 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | i686=false | ||
4 | x86_64=true | ||
5 | WINDOWS_ARCH=win64 | ||
6 | |||
7 | . .travis/cmake-windows.sh | ||
diff --git a/.travis/cmake-windows.sh b/.travis/cmake-windows.sh new file mode 100644 index 00000000..a7d1f7e1 --- /dev/null +++ b/.travis/cmake-windows.sh | |||
@@ -0,0 +1,48 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ACTION="$1" | ||
4 | |||
5 | set -eu | ||
6 | |||
7 | CACHEDIR="$HOME/cache" | ||
8 | NPROC=`nproc` | ||
9 | |||
10 | travis_install() { | ||
11 | cd other/docker/windows | ||
12 | |||
13 | docker build \ | ||
14 | --build-arg SUPPORT_ARCH_i686=$i686 \ | ||
15 | --build-arg SUPPORT_ARCH_x86_64=$x86_64 \ | ||
16 | --build-arg SUPPORT_TEST=true \ | ||
17 | -t toxcore-$WINDOWS_ARCH \ | ||
18 | . | ||
19 | } | ||
20 | |||
21 | travis_script() { | ||
22 | . ".travis/flags-$CC.sh" | ||
23 | |||
24 | # Allows wine to display source code file names and line numbers on crash in | ||
25 | # its backtrace. | ||
26 | add_flag -gdwarf-2 | ||
27 | |||
28 | docker run \ | ||
29 | -e ALLOW_TEST_FAILURE=true \ | ||
30 | -e ENABLE_ARCH_i686=$i686 \ | ||
31 | -e ENABLE_ARCH_x86_64=$x86_64 \ | ||
32 | -e ENABLE_TEST=true \ | ||
33 | -e EXTRA_CMAKE_FLAGS="-DBOOTSTRAP_DAEMON=OFF -DDEBUG=ON -DTEST_TIMEOUT_SECONDS=90" \ | ||
34 | -e DCMAKE_C_FLAGS="$C_FLAGS" \ | ||
35 | -e CMAKE_CXX_FLAGS="$CXX_FLAGS" \ | ||
36 | -e CMAKE_EXE_LINKER_FLAGS="$LD_FLAGS" \ | ||
37 | -e CMAKE_SHARED_LINKER_FLAGS="$LD_FLAGS" \ | ||
38 | -v "$PWD:/toxcore" \ | ||
39 | -v "$PWD/result:/prefix" \ | ||
40 | --rm \ | ||
41 | toxcore-$WINDOWS_ARCH | ||
42 | } | ||
43 | |||
44 | if [ "-z" "$ACTION" ]; then | ||
45 | "travis_script" | ||
46 | else | ||
47 | "travis_$ACTION" | ||
48 | fi | ||
diff --git a/.travis/flags-clang.sh b/.travis/flags-clang.sh new file mode 100644 index 00000000..1bca35ca --- /dev/null +++ b/.travis/flags-clang.sh | |||
@@ -0,0 +1,62 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | . .travis/flags.sh | ||
4 | |||
5 | # Add all warning flags we can. | ||
6 | add_flag -Wall | ||
7 | add_flag -Wextra | ||
8 | add_flag -Weverything | ||
9 | |||
10 | # Disable specific warning flags for both C and C++. | ||
11 | |||
12 | # TODO(iphydf): Clean these up. Probably all of these are actual bugs. | ||
13 | add_flag -Wno-cast-align | ||
14 | # Very verbose, not very useful. This warns about things like int -> uint | ||
15 | # conversions that change sign without a cast and narrowing conversions. | ||
16 | add_flag -Wno-conversion | ||
17 | # TODO(iphydf): Check enum values when received from the user, then assume | ||
18 | # correctness and remove this suppression. | ||
19 | add_flag -Wno-covered-switch-default | ||
20 | # Due to clang's tolower() macro being recursive | ||
21 | # https://github.com/TokTok/c-toxcore/pull/481 | ||
22 | add_flag -Wno-disabled-macro-expansion | ||
23 | # We don't put __attribute__ on the public API. | ||
24 | add_flag -Wno-documentation-deprecated-sync | ||
25 | # Bootstrap daemon does this. | ||
26 | add_flag -Wno-format-nonliteral | ||
27 | # struct Foo foo = {0}; is a common idiom. | ||
28 | add_flag -Wno-missing-field-initializers | ||
29 | # Useful sometimes, but we accept padding in structs for clarity. | ||
30 | # Reordering fields to avoid padding will reduce readability. | ||
31 | add_flag -Wno-padded | ||
32 | # This warns on things like _XOPEN_SOURCE, which we currently need (we | ||
33 | # probably won't need these in the future). | ||
34 | add_flag -Wno-reserved-id-macro | ||
35 | # TODO(iphydf): Clean these up. They are likely not bugs, but still | ||
36 | # potential issues and probably confusing. | ||
37 | add_flag -Wno-sign-compare | ||
38 | # Our use of mutexes results in a false positive, see 1bbe446. | ||
39 | add_flag -Wno-thread-safety-analysis | ||
40 | # File transfer code has this. | ||
41 | add_flag -Wno-type-limits | ||
42 | # Callbacks often don't use all their parameters. | ||
43 | add_flag -Wno-unused-parameter | ||
44 | # libvpx uses __attribute__((unused)) for "potentially unused" static | ||
45 | # functions to avoid unused static function warnings. | ||
46 | add_flag -Wno-used-but-marked-unused | ||
47 | # We use variable length arrays a lot. | ||
48 | add_flag -Wno-vla | ||
49 | |||
50 | # Disable specific warning flags for C++. | ||
51 | |||
52 | # Comma at end of enum is supported everywhere we run. | ||
53 | add_cxx_flag -Wno-c++98-compat-pedantic | ||
54 | # TODO(iphydf): Stop using flexible array members. | ||
55 | add_cxx_flag -Wno-c99-extensions | ||
56 | # We're C-compatible, so use C style casts. | ||
57 | add_cxx_flag -Wno-old-style-cast | ||
58 | |||
59 | # Downgrade to warning so we still see it. | ||
60 | add_flag -Wno-error=documentation-unknown-command | ||
61 | add_flag -Wno-error=unreachable-code | ||
62 | add_flag -Wno-error=unused-variable | ||
diff --git a/.travis/flags-gcc.sh b/.travis/flags-gcc.sh new file mode 100644 index 00000000..0d262060 --- /dev/null +++ b/.travis/flags-gcc.sh | |||
@@ -0,0 +1,19 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | . .travis/flags.sh | ||
4 | |||
5 | # Add all warning flags we can. | ||
6 | add_flag -Wall | ||
7 | add_flag -Wextra | ||
8 | |||
9 | # Disable specific warning flags for both C and C++. | ||
10 | |||
11 | # struct Foo foo = {0}; is a common idiom. | ||
12 | add_flag -Wno-missing-field-initializers | ||
13 | # TODO(iphydf): Clean these up. They are likely not bugs, but still | ||
14 | # potential issues and probably confusing. | ||
15 | add_flag -Wno-sign-compare | ||
16 | # File transfer code has this. | ||
17 | add_flag -Wno-type-limits | ||
18 | # Callbacks often don't use all their parameters. | ||
19 | add_flag -Wno-unused-parameter | ||
diff --git a/.travis/flags.sh b/.travis/flags.sh new file mode 100644 index 00000000..0c80e703 --- /dev/null +++ b/.travis/flags.sh | |||
@@ -0,0 +1,33 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | add_config_flag() { CONFIG_FLAGS="$CONFIG_FLAGS $@"; } | ||
4 | add_c_flag() { C_FLAGS="$C_FLAGS $@"; } | ||
5 | add_cxx_flag() { CXX_FLAGS="$CXX_FLAGS $@"; } | ||
6 | add_ld_flag() { LD_FLAGS="$LD_FLAGS $@"; } | ||
7 | add_flag() { add_c_flag "$@"; add_cxx_flag "$@"; } | ||
8 | |||
9 | export LD_LIBRARY_PATH="$CACHEDIR/lib" | ||
10 | export PKG_CONFIG_PATH="$CACHEDIR/lib/pkgconfig" | ||
11 | |||
12 | # Our own flags which we can insert in the correct place. We don't use CFLAGS | ||
13 | # and friends here (we unset them below), because they influence config tests | ||
14 | # such as ./configure and cmake tests. Our warning flags break those tests, so | ||
15 | # we can't add them globally here. | ||
16 | CONFIG_FLAGS="" | ||
17 | C_FLAGS="" | ||
18 | CXX_FLAGS="" | ||
19 | LD_FLAGS="" | ||
20 | |||
21 | unset CFLAGS | ||
22 | unset CXXFLAGS | ||
23 | unset CPPFLAGS | ||
24 | unset LDFLAGS | ||
25 | |||
26 | # Optimisation flags. | ||
27 | add_flag -O3 -march=native | ||
28 | |||
29 | # Warn on non-ISO C. | ||
30 | add_c_flag -pedantic | ||
31 | |||
32 | add_flag -g3 | ||
33 | add_flag -ftrapv | ||
diff --git a/other/travis/tox-bootstrapd-docker-linux-script b/.travis/tox-bootstrapd-docker index bb3b5422..9e476b5f 100755 --- a/other/travis/tox-bootstrapd-docker-linux-script +++ b/.travis/tox-bootstrapd-docker | |||
@@ -60,4 +60,3 @@ if ! python3 ../fun/bootstrap_node_info.py ipv4 localhost 33445 ; then | |||
60 | echo "Error: Unable to get bootstrap node info" | 60 | echo "Error: Unable to get bootstrap node info" |
61 | exit 1 | 61 | exit 1 |
62 | fi | 62 | fi |
63 | |||
diff --git a/other/travis/toxcore-linux-after_script b/.travis/upload-coverage index 7a388d0d..7a388d0d 100755 --- a/other/travis/toxcore-linux-after_script +++ b/.travis/upload-coverage | |||
diff --git a/CMakeLists.txt b/CMakeLists.txt index cc55a235..8cd26f43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -52,7 +52,6 @@ message("SOVERSION: ${SOVERSION}") | |||
52 | # | 52 | # |
53 | ################################################################################ | 53 | ################################################################################ |
54 | 54 | ||
55 | include(AddCompilerFlag) | ||
56 | include(ApiDsl) | 55 | include(ApiDsl) |
57 | include(ModulePackage) | 56 | include(ModulePackage) |
58 | include(StrictAbi) | 57 | include(StrictAbi) |
@@ -63,25 +62,22 @@ if(APPLE) | |||
63 | endif() | 62 | endif() |
64 | 63 | ||
65 | if(UNIX) | 64 | if(UNIX) |
66 | if(CMAKE_SYSTEM_NAME MATCHES ".*Linux") | 65 | if(CMAKE_SYSTEM_NAME MATCHES ".*Linux") |
67 | set(LINUX TRUE) | 66 | set(LINUX TRUE) |
68 | elseif(CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*") | 67 | elseif(CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*") |
69 | set(OPENBSD TRUE) | 68 | set(OPENBSD TRUE) |
70 | elseif(CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*") | 69 | elseif(CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*") |
71 | set(NETBSD TRUE) | 70 | set(NETBSD TRUE) |
72 | elseif(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD.*|FreeBSD") | 71 | elseif(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD.*|FreeBSD") |
73 | set(FREEBSD TRUE) | 72 | set(FREEBSD TRUE) |
74 | endif() | 73 | endif() |
75 | endif() | 74 | endif() |
76 | 75 | ||
77 | enable_testing() | 76 | enable_testing() |
78 | 77 | ||
79 | set(CMAKE_MACOSX_RPATH ON) | 78 | set(CMAKE_MACOSX_RPATH ON) |
80 | 79 | ||
81 | if(${CMAKE_VERSION} VERSION_LESS "3.1.0") | 80 | if(NOT ${CMAKE_VERSION} VERSION_LESS "3.1.0") |
82 | add_cflag("-std=c99") | ||
83 | add_cxxflag("-std=c++11") | ||
84 | else() | ||
85 | # Set standard version for compiler. | 81 | # Set standard version for compiler. |
86 | set(CMAKE_C_STANDARD 99) | 82 | set(CMAKE_C_STANDARD 99) |
87 | set(CMAKE_CXX_STANDARD 11) | 83 | set(CMAKE_CXX_STANDARD 11) |
@@ -92,93 +88,9 @@ else() | |||
92 | message(STATUS "Supported C++ compiler features = ${CMAKE_CXX_COMPILE_FEATURES}") | 88 | message(STATUS "Supported C++ compiler features = ${CMAKE_CXX_COMPILE_FEATURES}") |
93 | endif() | 89 | endif() |
94 | 90 | ||
95 | if(NOT MSVC) | 91 | option(TRACE "Enable DEBUG level logging (default)" ON) |
96 | # Warn on non-ISO C. | 92 | if(DEBUG) |
97 | add_cflag("-pedantic") | 93 | set(MIN_LOGGER_LEVEL DEBUG) |
98 | |||
99 | option(ERROR_ON_WARNING "Make compilation error on a warning" OFF) | ||
100 | if(ERROR_ON_WARNING) | ||
101 | add_flag("-Werror") | ||
102 | endif() | ||
103 | |||
104 | option(COVERAGE "Track code coverage" OFF) | ||
105 | if(COVERAGE) | ||
106 | add_flag("-fprofile-instr-generate") | ||
107 | add_flag("-fcoverage-mapping") | ||
108 | endif() | ||
109 | |||
110 | option(DEBUG "Enable assertions and other debugging facilities" OFF) | ||
111 | if(DEBUG) | ||
112 | set(MIN_LOGGER_LEVEL DEBUG) | ||
113 | add_cflag("-g3") | ||
114 | if(MINGW) | ||
115 | # Allows wine to display source code file names and line numbers on crash in its backtrace | ||
116 | add_flag("-gdwarf-2") | ||
117 | endif() | ||
118 | # Crash on signed integer overflow. | ||
119 | add_flag("-ftrapv") | ||
120 | endif() | ||
121 | |||
122 | option(WARNINGS "Enable additional compiler warnings" ON) | ||
123 | if(WARNINGS) | ||
124 | # Add all warning flags we can. | ||
125 | add_flag("-Wall") | ||
126 | add_flag("-Wextra") | ||
127 | add_flag("-Weverything") | ||
128 | |||
129 | # Disable specific warning flags for both C and C++. | ||
130 | |||
131 | # TODO(iphydf): Clean these up. Probably all of these are actual bugs. | ||
132 | add_flag("-Wno-cast-align") | ||
133 | # Very verbose, not very useful. This warns about things like int -> uint | ||
134 | # conversions that change sign without a cast and narrowing conversions. | ||
135 | add_flag("-Wno-conversion") | ||
136 | # TODO(iphydf): Check enum values when received from the user, then assume | ||
137 | # correctness and remove this suppression. | ||
138 | add_flag("-Wno-covered-switch-default") | ||
139 | # Due to clang's tolower() macro being recursive | ||
140 | # https://github.com/TokTok/c-toxcore/pull/481 | ||
141 | add_flag("-Wno-disabled-macro-expansion") | ||
142 | # We don't put __attribute__ on the public API. | ||
143 | add_flag("-Wno-documentation-deprecated-sync") | ||
144 | # Bootstrap daemon does this. | ||
145 | add_flag("-Wno-format-nonliteral") | ||
146 | # struct Foo foo = {0}; is a common idiom. | ||
147 | add_flag("-Wno-missing-field-initializers") | ||
148 | # Useful sometimes, but we accept padding in structs for clarity. | ||
149 | # Reordering fields to avoid padding will reduce readability. | ||
150 | add_flag("-Wno-padded") | ||
151 | # This warns on things like _XOPEN_SOURCE, which we currently need (we | ||
152 | # probably won't need these in the future). | ||
153 | add_flag("-Wno-reserved-id-macro") | ||
154 | # TODO(iphydf): Clean these up. They are likely not bugs, but still | ||
155 | # potential issues and probably confusing. | ||
156 | add_flag("-Wno-sign-compare") | ||
157 | # Our use of mutexes results in a false positive, see 1bbe446. | ||
158 | add_flag("-Wno-thread-safety-analysis") | ||
159 | # File transfer code has this. | ||
160 | add_flag("-Wno-type-limits") | ||
161 | # Callbacks often don't use all their parameters. | ||
162 | add_flag("-Wno-unused-parameter") | ||
163 | # libvpx uses __attribute__((unused)) for "potentially unused" static | ||
164 | # functions to avoid unused static function warnings. | ||
165 | add_flag("-Wno-used-but-marked-unused") | ||
166 | # We use variable length arrays a lot. | ||
167 | add_flag("-Wno-vla") | ||
168 | |||
169 | # Disable specific warning flags for C++. | ||
170 | |||
171 | # Comma at end of enum is supported everywhere we run. | ||
172 | add_cxxflag("-Wno-c++98-compat-pedantic") | ||
173 | # TODO(iphydf): Stop using flexible array members. | ||
174 | add_cxxflag("-Wno-c99-extensions") | ||
175 | # We're C-compatible, so use C style casts. | ||
176 | add_cxxflag("-Wno-old-style-cast") | ||
177 | |||
178 | # Downgrade to warning so we still see it. | ||
179 | add_flag("-Wno-error=unreachable-code") | ||
180 | add_flag("-Wno-error=unused-variable") | ||
181 | endif() | ||
182 | endif() | 94 | endif() |
183 | 95 | ||
184 | option(TRACE "Enable TRACE level logging (expensive, for network debugging)" OFF) | 96 | option(TRACE "Enable TRACE level logging (expensive, for network debugging)" OFF) |
@@ -190,18 +102,6 @@ if(MIN_LOGGER_LEVEL) | |||
190 | add_definitions(-DMIN_LOGGER_LEVEL=LOG_${MIN_LOGGER_LEVEL}) | 102 | add_definitions(-DMIN_LOGGER_LEVEL=LOG_${MIN_LOGGER_LEVEL}) |
191 | endif() | 103 | endif() |
192 | 104 | ||
193 | option(ASAN "Enable address-sanitizer to detect invalid memory accesses" OFF) | ||
194 | if(ASAN) | ||
195 | add_cflag("-fsanitize=address") | ||
196 | add_dllflag("-fsanitize=address") | ||
197 | endif() | ||
198 | |||
199 | if(LINUX) | ||
200 | add_dllflag("-Wl,-z,defs") | ||
201 | else() | ||
202 | add_dllflag("-undefined error") | ||
203 | endif() | ||
204 | |||
205 | option(USE_IPV6 "Use IPv6 in tests" ON) | 105 | option(USE_IPV6 "Use IPv6 in tests" ON) |
206 | if(NOT USE_IPV6) | 106 | if(NOT USE_IPV6) |
207 | add_definitions(-DUSE_IPV6=0) | 107 | add_definitions(-DUSE_IPV6=0) |
diff --git a/cmake/AddCompilerFlag.cmake b/cmake/AddCompilerFlag.cmake deleted file mode 100644 index 6a4a3f56..00000000 --- a/cmake/AddCompilerFlag.cmake +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | include(CheckCCompilerFlag) | ||
2 | include(CheckCXXCompilerFlag) | ||
3 | |||
4 | function(add_cflag flag) | ||
5 | string(REGEX REPLACE "[^a-zA-Z0-9_]" "_" var ${flag}) | ||
6 | if(NOT DEFINED HAVE_C${var}) | ||
7 | message(STATUS "checking for C compiler flag: ${flag}") | ||
8 | endif() | ||
9 | set(CMAKE_REQUIRED_QUIET TRUE) | ||
10 | |||
11 | check_c_compiler_flag("${flag}" HAVE_C${var} QUIET) | ||
12 | if(HAVE_C${var}) | ||
13 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}" PARENT_SCOPE) | ||
14 | endif() | ||
15 | endfunction() | ||
16 | |||
17 | function(add_cxxflag flag) | ||
18 | string(REGEX REPLACE "[^a-zA-Z0-9_]" "_" var ${flag}) | ||
19 | if(NOT DEFINED HAVE_CXX${var}) | ||
20 | message(STATUS "checking for C++ compiler flag: ${flag}") | ||
21 | endif() | ||
22 | set(CMAKE_REQUIRED_QUIET TRUE) | ||
23 | |||
24 | check_cxx_compiler_flag("${flag}" HAVE_CXX${var} QUIET) | ||
25 | if(HAVE_CXX${var}) | ||
26 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE) | ||
27 | endif() | ||
28 | endfunction() | ||
29 | |||
30 | function(add_dllflag flag) | ||
31 | string(REGEX REPLACE "[^a-zA-Z0-9_]" "_" var ${flag}) | ||
32 | if(NOT DEFINED HAVE_LD${var}) | ||
33 | message(STATUS "checking for C++ compiler flag: ${flag}") | ||
34 | endif() | ||
35 | set(CMAKE_REQUIRED_QUIET TRUE) | ||
36 | |||
37 | check_c_compiler_flag("${flag}" HAVE_LD${var} QUIET) | ||
38 | if(HAVE_LD${var}) | ||
39 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${flag}" PARENT_SCOPE) | ||
40 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${flag}" PARENT_SCOPE) | ||
41 | endif() | ||
42 | endfunction() | ||
43 | |||
44 | macro(add_flag flag) | ||
45 | add_cflag(${flag}) | ||
46 | add_cxxflag(${flag}) | ||
47 | endmacro() | ||
diff --git a/cmake/CompileGTest.cmake b/cmake/CompileGTest.cmake index f9aa4506..9aa4712f 100644 --- a/cmake/CompileGTest.cmake +++ b/cmake/CompileGTest.cmake | |||
@@ -1,5 +1,8 @@ | |||
1 | # Find and compile the GTest library. | 1 | # Find and compile the GTest library. |
2 | 2 | ||
3 | include(CheckCXXCompilerFlag) | ||
4 | include(CheckIncludeFileCXX) | ||
5 | |||
3 | message(STATUS "Checking for gtest") | 6 | message(STATUS "Checking for gtest") |
4 | 7 | ||
5 | # Look for the sources. | 8 | # Look for the sources. |
diff --git a/configure.ac b/configure.ac index 450a1d53..d070cd77 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -350,7 +350,9 @@ if test "x$WANT_NACL" = "xyes"; then | |||
350 | if (test -f "$NACL_SEARCH_LIBS/cpucycles.o") && | 350 | if (test -f "$NACL_SEARCH_LIBS/cpucycles.o") && |
351 | (test -f "$NACL_SEARCH_LIBS/randombytes.o"); then | 351 | (test -f "$NACL_SEARCH_LIBS/randombytes.o"); then |
352 | NACL_OBJECTS="$NACL_SEARCH_LIBS/cpucycles.o $NACL_SEARCH_LIBS/randombytes.o" | 352 | NACL_OBJECTS="$NACL_SEARCH_LIBS/cpucycles.o $NACL_SEARCH_LIBS/randombytes.o" |
353 | AC_MSG_NOTICE([found extra NaCl objects: $NACL_OBJECTS]) | ||
353 | if test "x$ADD_NACL_OBJECTS_TO_PKGCONFIG" = "xyes"; then | 354 | if test "x$ADD_NACL_OBJECTS_TO_PKGCONFIG" = "xyes"; then |
355 | AC_MSG_NOTICE([adding extra NaCl objects to pkg-config file]) | ||
354 | NACL_OBJECTS_PKGCONFIG="$NACL_OBJECTS" | 356 | NACL_OBJECTS_PKGCONFIG="$NACL_OBJECTS" |
355 | fi | 357 | fi |
356 | else | 358 | else |
diff --git a/other/bootstrap_daemon/src/Makefile.inc b/other/bootstrap_daemon/src/Makefile.inc index 1c313d44..6b820be0 100644 --- a/other/bootstrap_daemon/src/Makefile.inc +++ b/other/bootstrap_daemon/src/Makefile.inc | |||
@@ -33,6 +33,7 @@ tox_bootstrapd_LDADD = \ | |||
33 | libtoxcore.la \ | 33 | libtoxcore.la \ |
34 | $(LIBCONFIG_LIBS) \ | 34 | $(LIBCONFIG_LIBS) \ |
35 | $(LIBSODIUM_LIBS) \ | 35 | $(LIBSODIUM_LIBS) \ |
36 | $(NACL_OBJECTS) \ | ||
36 | $(NACL_LIBS) | 37 | $(NACL_LIBS) |
37 | 38 | ||
38 | endif | 39 | endif |
diff --git a/other/docker/windows/build_toxcore.sh b/other/docker/windows/build_toxcore.sh index a3830455..da465eb1 100644 --- a/other/docker/windows/build_toxcore.sh +++ b/other/docker/windows/build_toxcore.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | #!/usr/bin/env sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | set -e -x | 3 | set -e -x |
4 | 4 | ||
@@ -57,9 +57,13 @@ build() | |||
57 | -DCMAKE_INSTALL_PREFIX="${STATIC_TOXCORE_PREFIX_DIR}" \ | 57 | -DCMAKE_INSTALL_PREFIX="${STATIC_TOXCORE_PREFIX_DIR}" \ |
58 | -DENABLE_SHARED=OFF \ | 58 | -DENABLE_SHARED=OFF \ |
59 | -DENABLE_STATIC=ON \ | 59 | -DENABLE_STATIC=ON \ |
60 | -DCMAKE_C_FLAGS="${CMAKE_C_FLAGS}" \ | ||
61 | -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" \ | ||
62 | -DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS}" \ | ||
63 | -DCMAKE_SHARED_LINKER_FLAGS="${CMAKE_SHARED_LINKER_FLAGS}" \ | ||
60 | ${EXTRA_CMAKE_FLAGS} \ | 64 | ${EXTRA_CMAKE_FLAGS} \ |
61 | .. | 65 | .. |
62 | cmake --build . --target install | 66 | cmake --build . --target install -- -j$(nproc) |
63 | 67 | ||
64 | if [ "${ENABLE_TEST}" = "true" ]; then | 68 | if [ "${ENABLE_TEST}" = "true" ]; then |
65 | rm -rf /root/.wine | 69 | rm -rf /root/.wine |
@@ -79,7 +83,7 @@ build() | |||
79 | if [ "${ALLOW_TEST_FAILURE}" = "true" ]; then | 83 | if [ "${ALLOW_TEST_FAILURE}" = "true" ]; then |
80 | set +e | 84 | set +e |
81 | fi | 85 | fi |
82 | cmake --build . --target test | 86 | cmake --build . --target test -- ARGS="-j50" |
83 | if [ "${ALLOW_TEST_FAILURE}" = "true" ]; then | 87 | if [ "${ALLOW_TEST_FAILURE}" = "true" ]; then |
84 | set -e | 88 | set -e |
85 | fi | 89 | fi |
diff --git a/other/travis/autotools-linux-install b/other/travis/autotools-linux-install deleted file mode 100644 index ca0adff7..00000000 --- a/other/travis/autotools-linux-install +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | . other/travis/toxcore-linux-install | ||
4 | |||
5 | # Also install vanilla NaCl | ||
6 | [ -f $CACHE_DIR/lib/amd64/libnacl.a ] || { | ||
7 | curl https://hyperelliptic.org/nacl/nacl-20110221.tar.bz2 | tar jx | ||
8 | cd nacl-20110221 # pushd | ||
9 | "./do" | ||
10 | # "make install" | ||
11 | mv build/*/include/* $CACHE_DIR/include | ||
12 | mv build/*/lib/* $CACHE_DIR/lib | ||
13 | cd - # popd | ||
14 | } | ||
diff --git a/other/travis/autotools-script b/other/travis/autotools-script deleted file mode 100755 index d72ec2a9..00000000 --- a/other/travis/autotools-script +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if perl -e ' | ||
4 | use Socket qw(PF_INET6 SOCK_STREAM pack_sockaddr_in6 IN6ADDR_LOOPBACK); | ||
5 | |||
6 | socket(S, PF_INET6, SOCK_STREAM, 0) || exit 1; | ||
7 | bind(S, pack_sockaddr_in6(0, IN6ADDR_LOOPBACK)) || exit 1; | ||
8 | '; then | ||
9 | IPV6_FLAG="--enable-ipv6" | ||
10 | else | ||
11 | IPV6_FLAG="--disable-ipv6" | ||
12 | fi | ||
13 | |||
14 | # Build toxcore with some custom flags here. Note that this does *not* run the | ||
15 | # tests, so any flags passed here are irrelevant to testing. This only checks | ||
16 | # that we can build toxcore with the specified flags. Tests run with default | ||
17 | # configure flags. | ||
18 | ./autogen.sh | ||
19 | ./configure \ | ||
20 | --with-nacl-libs=$CACHE_DIR/lib/amd64 \ | ||
21 | --with-nacl-headers=$CACHE_DIR/include/amd64 \ | ||
22 | --enable-nacl \ | ||
23 | --enable-daemon \ | ||
24 | --enable-logging \ | ||
25 | $IPV6_FLAG \ | ||
26 | --with-log-level=TRACE | ||
27 | |||
28 | # We use make instead of RUN $MAKE here, because the autotools build will only | ||
29 | # ever run natively on the Linux container, never on a Windows cross compilation | ||
30 | # docker instance or an OSX machine. | ||
31 | make -j$NPROC -k | ||
32 | |||
33 | # This runs `make check` with the default configure flags, not with the ones | ||
34 | # above. | ||
35 | TESTS $MAX_TEST_RETRIES make distcheck -j$NPROC -k | ||
diff --git a/other/travis/env-linux.sh b/other/travis/env-linux.sh deleted file mode 100644 index 9f25e911..00000000 --- a/other/travis/env-linux.sh +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | export PATH=/opt/ghc/7.8.4/bin:/opt/cabal/1.18/bin:/opt/alex/3.1.7/bin:/opt/happy/1.19.5/bin:$PATH | ||
4 | export PATH=$HOME/.cabal/bin:$PATH | ||
5 | |||
6 | CMAKE=cmake | ||
7 | # Asan is disabled because it's currently broken on Travis. | ||
8 | # See https://github.com/travis-ci/travis-ci/issues/9033. | ||
9 | CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DASAN=OFF" | ||
10 | NPROC=`nproc` | ||
11 | CURDIR=$PWD | ||
12 | RUN_TESTS=true | ||
13 | |||
14 | RUN() { | ||
15 | "$@" | ||
16 | } | ||
17 | |||
18 | TESTS() { | ||
19 | COUNT="$1"; shift | ||
20 | "$@" || { | ||
21 | if [ $COUNT -gt 1 ]; then | ||
22 | TESTS `expr $COUNT - 1` "$@" | ||
23 | else | ||
24 | false | ||
25 | fi | ||
26 | } | ||
27 | } | ||
diff --git a/other/travis/env-osx.sh b/other/travis/env-osx.sh deleted file mode 100644 index af1794f4..00000000 --- a/other/travis/env-osx.sh +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | CMAKE=cmake | ||
4 | CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS" | ||
5 | NPROC=`sysctl -n hw.ncpu` | ||
6 | CURDIR=$PWD | ||
7 | |||
8 | RUN() { | ||
9 | "$@" | ||
10 | } | ||
11 | |||
12 | TESTS() { | ||
13 | COUNT="$1"; shift | ||
14 | "$@" || { | ||
15 | if [ $COUNT -gt 1 ]; then | ||
16 | TESTS `expr $COUNT - 1` "$@" | ||
17 | else | ||
18 | false | ||
19 | fi | ||
20 | } | ||
21 | } | ||
diff --git a/other/travis/env-windows.sh b/other/travis/env-windows.sh deleted file mode 100644 index 525630ae..00000000 --- a/other/travis/env-windows.sh +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DBOOTSTRAP_DAEMON=OFF -DERROR_ON_WARNING=OFF" | ||
4 | |||
5 | if [ "$JOB" = "toxcore" ]; then | ||
6 | CMAKE=$ARCH-w64-mingw32.shared-cmake | ||
7 | NPROC=`nproc` | ||
8 | CURDIR=/work | ||
9 | RUN_TESTS=true | ||
10 | |||
11 | RUN() { | ||
12 | ./dockcross "$@" | ||
13 | } | ||
14 | |||
15 | TESTS() { | ||
16 | shift # Ignore test run count. | ||
17 | |||
18 | # Download Microsoft DLLs. | ||
19 | curl http://www.dlldump.com/dllfiles/I/iphlpapi.dll -o _build/iphlpapi.dll | ||
20 | curl http://www.dlldump.com/dllfiles/W/ws2_32.dll -o _build/ws2_32.dll | ||
21 | |||
22 | # Copy our dependency DLLs. | ||
23 | ./dockcross sh -c 'cp $WINEDLLPATH/*.dll _build' | ||
24 | |||
25 | # Run tests in docker. | ||
26 | ./dockcross "$@" || { | ||
27 | cat _build/Testing/Temporary/LastTest.log | ||
28 | # Ignore test failures on Windows builds for now. | ||
29 | #false | ||
30 | } | ||
31 | } | ||
32 | elif [ "$JOB" = "installmd" ]; then | ||
33 | true | ||
34 | else | ||
35 | echo "Unsupported JOB=$JOB" | ||
36 | fi | ||
diff --git a/other/travis/freebsd-script-stage1 b/other/travis/freebsd-script-stage1 deleted file mode 100755 index ce16aea1..00000000 --- a/other/travis/freebsd-script-stage1 +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # We don't want toxcore-script to run yet, it should be done during FreeBSD stage 2 | ||
4 | exit 0 | ||
diff --git a/other/travis/installmd-windows-install b/other/travis/installmd-windows-install deleted file mode 100755 index 8a85bbbd..00000000 --- a/other/travis/installmd-windows-install +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | cd other/docker/windows | ||
4 | |||
5 | docker build \ | ||
6 | --build-arg SUPPORT_ARCH_i686=${SUPPORT_ARCH_i686} \ | ||
7 | --build-arg SUPPORT_ARCH_x86_64=${SUPPORT_ARCH_x86_64} \ | ||
8 | --build-arg SUPPORT_TEST=${SUPPORT_TEST} \ | ||
9 | -t toxcore \ | ||
10 | . | ||
11 | |||
12 | cd - | ||
diff --git a/other/travis/installmd-windows-script b/other/travis/installmd-windows-script deleted file mode 100755 index 906a7f1d..00000000 --- a/other/travis/installmd-windows-script +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | docker run \ | ||
4 | -e ALLOW_TEST_FAILURE=${ALLOW_TEST_FAILURE} \ | ||
5 | -e ENABLE_ARCH_i686=${ENABLE_ARCH_i686} \ | ||
6 | -e ENABLE_ARCH_x86_64=${ENABLE_ARCH_x86_64} \ | ||
7 | -e ENABLE_TEST=${ENABLE_TEST} \ | ||
8 | -e EXTRA_CMAKE_FLAGS="${CMAKE_EXTRA_FLAGS} -DDEBUG=ON -DTEST_TIMEOUT_SECONDS=90" \ | ||
9 | -v ${PWD}:/toxcore \ | ||
10 | -v ${PWD}/result:/prefix \ | ||
11 | --rm \ | ||
12 | toxcore | ||
diff --git a/other/travis/phase b/other/travis/phase deleted file mode 100755 index cb9c2abf..00000000 --- a/other/travis/phase +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | set -e -u -x | ||
4 | |||
5 | JOB="$1" | ||
6 | ENV="$2" | ||
7 | PHASE="$3" | ||
8 | STAGE="" | ||
9 | |||
10 | set +u | ||
11 | if [ ! -z "$4" ] ; then | ||
12 | STAGE="$4" | ||
13 | fi | ||
14 | set -u | ||
15 | |||
16 | . "other/travis/env.sh" | ||
17 | . "other/travis/env-$ENV.sh" | ||
18 | |||
19 | try_source() { | ||
20 | SCRIPT="other/travis/$1" | ||
21 | if [ -f "$SCRIPT" ]; then | ||
22 | . "$SCRIPT" | ||
23 | fi | ||
24 | if [ ! -z "$STAGE" ] && [ -f "$SCRIPT-$STAGE" ]; then | ||
25 | . "$SCRIPT-$STAGE" | ||
26 | fi | ||
27 | } | ||
28 | |||
29 | try_source "$PHASE" | ||
30 | try_source "$ENV-$PHASE" | ||
31 | try_source "$JOB-$PHASE" | ||
32 | try_source "$JOB-$ENV-$PHASE" | ||
diff --git a/other/travis/toxcore-after_failure b/other/travis/toxcore-after_failure deleted file mode 100755 index e1f5c399..00000000 --- a/other/travis/toxcore-after_failure +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if [ -d /cores ]; then | ||
4 | for core in /cores/*; do | ||
5 | lldb --core $core --one-line "bt all" < /dev/null | ||
6 | done | ||
7 | fi | ||
diff --git a/other/travis/toxcore-linux-install b/other/travis/toxcore-linux-install deleted file mode 100755 index 19dccf64..00000000 --- a/other/travis/toxcore-linux-install +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # Install cpp-coveralls to upload test coverage results. | ||
4 | pip install --user ndg-httpsclient urllib3[secure] cpp-coveralls | ||
5 | |||
6 | # Work around https://github.com/eddyxu/cpp-coveralls/issues/108 by manually | ||
7 | # installing the pyOpenSSL module and injecting it into urllib3 as per | ||
8 | # https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2 | ||
9 | sed -i -e '/^import sys$/a import urllib3.contrib.pyopenssl\nurllib3.contrib.pyopenssl.inject_into_urllib3()' `which coveralls` | ||
10 | |||
11 | # Install astyle (version in ubuntu-precise too old). | ||
12 | [ -f $ASTYLE ] || { | ||
13 | wget -O ../astyle.tar.gz https://deb.debian.org/debian/pool/main/a/astyle/astyle_2.06.orig.tar.gz | ||
14 | tar -xf ../astyle.tar.gz -C $CACHE_DIR | ||
15 | make -C $CACHE_DIR/astyle/build/gcc -j$NPROC | ||
16 | } | ||
17 | |||
18 | # Install libsodium (not in ubuntu-precise). | ||
19 | [ -f $CACHE_DIR/lib/libsodium.a ] || { | ||
20 | git clone --depth=1 --branch=stable https://github.com/jedisct1/libsodium ../libsodium | ||
21 | cd ../libsodium # pushd | ||
22 | ./autogen.sh | ||
23 | ./configure --prefix=$CACHE_DIR | ||
24 | make install -j$NPROC | ||
25 | cd - # popd | ||
26 | } | ||
diff --git a/other/travis/toxcore-osx-install b/other/travis/toxcore-osx-install deleted file mode 100755 index 8f13cb5f..00000000 --- a/other/travis/toxcore-osx-install +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # Workaround for bug in Homebrew where it only finds an old Ruby version. | ||
4 | brew update | ||
5 | |||
6 | brew install libsodium libvpx opus libconfig astyle | ||
diff --git a/other/travis/toxcore-windows-install b/other/travis/toxcore-windows-install deleted file mode 100755 index 6160856b..00000000 --- a/other/travis/toxcore-windows-install +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | DOCKER_IMAGE=toktoknet/windows:latest.$ARCH-shared | ||
4 | |||
5 | docker pull $DOCKER_IMAGE | ||
6 | docker run --rm $DOCKER_IMAGE > dockcross | ||
7 | chmod +x dockcross | ||
diff --git a/toxcore/crypto_core.c b/toxcore/crypto_core.c index b2f0e5f0..027f69c3 100644 --- a/toxcore/crypto_core.c +++ b/toxcore/crypto_core.c | |||
@@ -89,28 +89,28 @@ int32_t public_key_cmp(const uint8_t *pk1, const uint8_t *pk2) | |||
89 | uint8_t random_u08(void) | 89 | uint8_t random_u08(void) |
90 | { | 90 | { |
91 | uint8_t randnum; | 91 | uint8_t randnum; |
92 | randombytes(&randnum, 1); | 92 | random_bytes(&randnum, 1); |
93 | return randnum; | 93 | return randnum; |
94 | } | 94 | } |
95 | 95 | ||
96 | uint16_t random_u16(void) | 96 | uint16_t random_u16(void) |
97 | { | 97 | { |
98 | uint16_t randnum; | 98 | uint16_t randnum; |
99 | randombytes((uint8_t *)&randnum, sizeof(randnum)); | 99 | random_bytes((uint8_t *)&randnum, sizeof(randnum)); |
100 | return randnum; | 100 | return randnum; |
101 | } | 101 | } |
102 | 102 | ||
103 | uint32_t random_u32(void) | 103 | uint32_t random_u32(void) |
104 | { | 104 | { |
105 | uint32_t randnum; | 105 | uint32_t randnum; |
106 | randombytes((uint8_t *)&randnum, sizeof(randnum)); | 106 | random_bytes((uint8_t *)&randnum, sizeof(randnum)); |
107 | return randnum; | 107 | return randnum; |
108 | } | 108 | } |
109 | 109 | ||
110 | uint64_t random_u64(void) | 110 | uint64_t random_u64(void) |
111 | { | 111 | { |
112 | uint64_t randnum; | 112 | uint64_t randnum; |
113 | randombytes((uint8_t *)&randnum, sizeof(randnum)); | 113 | random_bytes((uint8_t *)&randnum, sizeof(randnum)); |
114 | return randnum; | 114 | return randnum; |
115 | } | 115 | } |
116 | 116 | ||
@@ -266,13 +266,13 @@ void increment_nonce_number(uint8_t *nonce, uint32_t host_order_num) | |||
266 | /* Fill the given nonce with random bytes. */ | 266 | /* Fill the given nonce with random bytes. */ |
267 | void random_nonce(uint8_t *nonce) | 267 | void random_nonce(uint8_t *nonce) |
268 | { | 268 | { |
269 | randombytes(nonce, crypto_box_NONCEBYTES); | 269 | random_bytes(nonce, crypto_box_NONCEBYTES); |
270 | } | 270 | } |
271 | 271 | ||
272 | /* Fill a key CRYPTO_SYMMETRIC_KEY_SIZE big with random bytes */ | 272 | /* Fill a key CRYPTO_SYMMETRIC_KEY_SIZE big with random bytes */ |
273 | void new_symmetric_key(uint8_t *key) | 273 | void new_symmetric_key(uint8_t *key) |
274 | { | 274 | { |
275 | randombytes(key, CRYPTO_SYMMETRIC_KEY_SIZE); | 275 | random_bytes(key, CRYPTO_SYMMETRIC_KEY_SIZE); |
276 | } | 276 | } |
277 | 277 | ||
278 | int32_t crypto_new_keypair(uint8_t *public_key, uint8_t *secret_key) | 278 | int32_t crypto_new_keypair(uint8_t *public_key, uint8_t *secret_key) |