diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..18ac5ec --- /dev/null +++ b/.travis.yml @@ -0,0 +1,32 @@ +language: go +go: + - "1.x" + +addons: + apt: + packages: + - libyaml-libyaml-perl + - libtemplate-perl + - libio-handle-util-perl + - libio-all-perl + - libio-captureoutput-perl + - libjson-perl + - libpath-tiny-perl + - libstring-shellquote-perl + - libsort-versions-perl + - libdigest-sha-perl + - libdata-uuid-perl + - libdata-dump-perl + - libfile-copy-recursive-perl + - git + - runc + - mercurial + +sudo: false + +install: + - make submodule-update +script: + - ./.travis/check-project-tags + - ./.travis/check-tbb-tags + diff --git a/.travis/check-project-tags b/.travis/check-project-tags new file mode 100755 index 0000000..58ddef6 --- /dev/null +++ b/.travis/check-project-tags @@ -0,0 +1,61 @@ +#!/bin/bash + +set -eu -o pipefail +shopt -s failglob + +FAIL=0 + +for PROJECTPATH in ./projects/* +do + PROJECT=$(basename ${PROJECTPATH}) + + # Tor devs are in charge of their dependencies + if [[ -e "./tor-browser-build/projects/${PROJECT}" || "${PROJECT}" = goxcrypto* || "${PROJECT}" = goxnet* || "${PROJECT}" = goxsys* ]] + then + continue + fi + + # Electrum devs are in charge of their dependencies + PROJECT_IS_ELECTRUM_DEP=1 + grep "project: ${PROJECT}" ./projects/electrum-nmc/config > /dev/null || PROJECT_IS_ELECTRUM_DEP=0 + if [ "$PROJECT_IS_ELECTRUM_DEP" = 1 ] + then + continue + fi + + # x509-signature-splice branch depends on Go version, so it won't always be the latest + if [ "${PROJECT}" = "gox509signaturesplice" ] + then + continue + fi + + GIT_REV=$(./rbm/rbm showconf ${PROJECT} git_hash) + + GIT_URL=$(./rbm/rbm showconf ${PROJECT} git_url) + + REMOTE_TAGS=$(git ls-remote --tags "${GIT_URL}") + if [ "${REMOTE_TAGS}" = "" ] + then + # There are no tags on the remote Git repo, so pretend HEAD is the latest. + LATEST_TAG=HEAD + else + LATEST_TAG=$(git ls-remote --tags "${GIT_URL}" | grep -v '\^{}' | awk '{print $2}' | awk -F"/" '{print $3}' | sort -V | tail --lines=1) + fi + LATEST_INFO=$(git ls-remote "${GIT_URL}" HEAD ${LATEST_TAG} ${LATEST_TAG}^{}) + + PROJECT_FAIL=0 + echo "${LATEST_INFO}" | grep ${GIT_REV} > /dev/null || PROJECT_FAIL=1 + if [ "${PROJECT_FAIL}" = 1 ] + then + FAIL=1 + echo "${PROJECT}: rbm uses ${GIT_REV}, latest at remote ${GIT_URL} are: +${LATEST_INFO}" + fi +done + +if [ "${FAIL}" = 1 ] +then + exit 1 +fi + +exit 0 diff --git a/.travis/check-tbb-tags b/.travis/check-tbb-tags new file mode 100755 index 0000000..2bc8581 --- /dev/null +++ b/.travis/check-tbb-tags @@ -0,0 +1,24 @@ +#!/bin/bash + +set -eu -o pipefail +shopt -s failglob + +FAIL=0 + +GIT_TAG=$(git submodule status tor-browser-build | awk '{print $3}') + +GIT_URL=https://git.torproject.org/builders/tor-browser-build.git + +LATEST_TAG=$(git ls-remote --tags "${GIT_URL}" | grep -v '\^{}' | awk '{print $2}' | awk -F"/" '{print $3}' | sort -V | tail --lines=1) +if [ "${GIT_TAG}" != "(${LATEST_TAG})" ] +then + FAIL=1 + echo "${PROJECT}: submodule uses ${GIT_REV}, latest tag is ${LATEST_TAG}" +fi + +if [ "${FAIL}" = 1 ] +then + exit 1 +fi + +exit 0 diff --git a/Makefile b/Makefile index 3437688..2c05a4f 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,9 @@ release-android-armv7: submodule-update release-android-x86: submodule-update $(rbm) build ncdns --target release --target ncdns-android-x86 +release-android-x86_64: submodule-update + $(rbm) build ncdns --target release --target ncdns-android-x86_64 + release-android-aarch64: submodule-update $(rbm) build ncdns --target release --target ncdns-android-aarch64 diff --git a/projects/godns/config b/projects/godns/config index 99f63a6..ff0c860 100644 --- a/projects/godns/config +++ b/projects/godns/config @@ -1,6 +1,6 @@ -version: 1.1.16 +version: 1.1.19 git_url: https://github.com/miekg/dns.git -git_hash: c67445656579a3c3836047c509073f97022da0ed +git_hash: 1208fbdde0ad3326de82ac4a8f53058d480ed228 filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz' build: '[% c("projects/go/var/build_go_lib") %]' diff --git a/projects/goservice/config b/projects/goservice/config index f683437..70e19ff 100644 --- a/projects/goservice/config +++ b/projects/goservice/config @@ -1,6 +1,6 @@ -version: 2.0.16 +version: '[% c("abbrev") %]' git_url: https://github.com/hlandau/service.git -git_hash: b64b3467ebd16f64faec1640c25e318efc0c0d7b +git_hash: 0496f910e39ef577ba805f512f6e1b80d652c4b9 filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz' build: '[% c("projects/go/var/build_go_lib") %]' diff --git a/projects/gounits/config b/projects/gounits/config index 2b450ad..8cf7395 100644 --- a/projects/gounits/config +++ b/projects/gounits/config @@ -1,6 +1,6 @@ version: '[% c("abbrev") %]' git_url: https://github.com/alecthomas/units.git -git_hash: c3de453c63f4bdb4dadffab9805ec00426c505f7 +git_hash: f65c72e2690dc4b403c8bd637baf4611cd4c069b filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz' build: '[% c("projects/go/var/build_go_lib") %]' diff --git a/rbm.conf b/rbm.conf index 2703577..e1b227a 100644 --- a/rbm.conf +++ b/rbm.conf @@ -127,6 +127,14 @@ targets: var: android-x86: 1 osname: android-x86 + ncdns-android-x86_64: + - android-x86_64 + - android + android-x86_64: + arch: x86_64 + var: + android-x86_64: 1 + osname: android-x86_64 ncdns-android-aarch64: - android-aarch64 - android @@ -145,6 +153,7 @@ targets: android_min_api_aarch64: 21 android_min_api_armv7: 16 android_min_api_x86: 16 + android_min_api_x86_64: 21 container: suite: stretch arch: amd64 @@ -205,9 +214,6 @@ targets: var: windows-x86_64: 1 osname: windows-x86_64 - container: - arch: amd64 - faketime_path: /usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 # HEASLR is 64 bit only (see bug 12968) flag_HEASLR: '-Wl,--high-entropy-va' windows-i686: @@ -215,25 +221,18 @@ targets: var: windows-i686: 1 osname: windows-i686 - container: - arch: i386 - faketime_path: /usr/lib/i386-linux-gnu/faketime/libfaketime.so.1 - setarch: | - if test -z "$RBM_SETARCH" - then - export RBM_SETARCH=1 - exec setarch i686 ./build - fi windows: var: windows: 1 container: suite: stretch + arch: amd64 configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]"' CFLAGS: '-fstack-protector-strong -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security [% c("var/flag_mwindows") %]' LDFLAGS: '-Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -lssp -L$gcclibs [% c("var/flag_HEASLR") %] [% c("var/flag_mwindows") %]' flag_mwindows: '-mwindows' compiler: mingw-w64 + faketime_path: /usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 deps: - build-essential - python diff --git a/tor-browser-build b/tor-browser-build index 9fde9fe..9d25316 160000 --- a/tor-browser-build +++ b/tor-browser-build @@ -1 +1 @@ -Subproject commit 9fde9fe3b38b8785d08ea0d1fc291ac0c266ed04 +Subproject commit 9d253167005def507583f90f01f0fc96e2bdbe07