From 857277f2c06210817b5d081a5f62487ae7de5863 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Thu, 15 Apr 2021 15:03:24 +0000 Subject: [PATCH 1/5] gobtcutil: Bump to 1.0.1 --- projects/gobtcutil/config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/gobtcutil/config b/projects/gobtcutil/config index 597824a..8d7290b 100644 --- a/projects/gobtcutil/config +++ b/projects/gobtcutil/config @@ -1,6 +1,6 @@ -version: '[% c("abbrev") %]' +version: '1.0.1' git_url: https://github.com/btcsuite/btcutil.git -git_hash: e17c9730c422e7c745002430f2782b948b59c1c2 +git_hash: 02a4fd9de1d52e877491996349a92d54c653ccbf filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz' build: '[% c("projects/go/var/build_go_lib") %]' From 37dcd8cc85e70dcaa49f2c895b5c35ac9bfb96d4 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Thu, 15 Apr 2021 15:10:22 +0000 Subject: [PATCH 2/5] goservice: Bump to 2.0.17 --- projects/goservice/config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/goservice/config b/projects/goservice/config index 70e19ff..5fbbeae 100644 --- a/projects/goservice/config +++ b/projects/goservice/config @@ -1,6 +1,6 @@ -version: '[% c("abbrev") %]' +version: '2.0.17' git_url: https://github.com/hlandau/service.git -git_hash: 0496f910e39ef577ba805f512f6e1b80d652c4b9 +git_hash: 0e0d7e650dbdeaa82b606a6afc0b5f38a9e77b37 filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz' build: '[% c("projects/go/var/build_go_lib") %]' From cb78a383ccffda041566caec63e19a9db8d0f6dc Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Thu, 15 Apr 2021 15:15:33 +0000 Subject: [PATCH 3/5] ncdns: Bump to 0.1 --- projects/ncdns/config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/ncdns/config b/projects/ncdns/config index cd81a7b..39dd6ab 100644 --- a/projects/ncdns/config +++ b/projects/ncdns/config @@ -1,6 +1,6 @@ -version: '[% c("abbrev") %]' +version: '0.1' git_url: https://github.com/namecoin/ncdns.git -git_hash: 'c947efb679dd55796e1b2ae405f6ce7d6a5d6b6e' +git_hash: '1fced9acbade9f4afd1908242b1020f762375241' filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz' var: From d4129e0124325d55cc98d24e0f73d80358cc7332 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Thu, 15 Apr 2021 06:01:56 +0000 Subject: [PATCH 4/5] Cirrus: Detect when dependency versions need a bump --- .cirrus.yml | 57 +++++++++ tools/cirrus_build_project.sh | 5 + tools/cirrus_gen_yml.sh | 14 ++- tools/namecoin-bump-versions.sh | 200 ++++++++++++++++++++++++++++++++ 4 files changed, 274 insertions(+), 2 deletions(-) create mode 100755 tools/namecoin-bump-versions.sh diff --git a/.cirrus.yml b/.cirrus.yml index 3598767..56a03ec 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -63,6 +63,7 @@ release_linux_x86_64_download_docker_builder: - "./tools/cirrus_build_project.sh plain-binaries release linux x86_64 0" env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 release_linux_x86_64_gcc_1_docker_builder: timeout_in: 120m @@ -132,6 +133,7 @@ release_linux_x86_64_gcc_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_x86_64_download" @@ -203,6 +205,7 @@ release_linux_x86_64_gcc_2_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_x86_64_gcc_1" @@ -274,6 +277,7 @@ release_linux_x86_64_goeasyconfig_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_x86_64_gcc_2" @@ -345,6 +349,7 @@ release_linux_x86_64_ncdns_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_x86_64_goeasyconfig_1" @@ -416,6 +421,7 @@ release_linux_x86_64_ncp11_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_x86_64_ncdns_1" @@ -487,6 +493,7 @@ release_linux_x86_64_ncprop279_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_x86_64_ncp11_1" @@ -558,6 +565,7 @@ release_linux_x86_64_plain-binaries_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_x86_64_ncprop279_1" @@ -631,6 +639,7 @@ release_linux_x86_64_release_nosign_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 only_if: $CIRRUS_REPO_OWNER != "namecoin" depends_on: - "release_linux_x86_64_plain-binaries_1" @@ -708,6 +717,7 @@ release_linux_x86_64_release_sign_docker_builder: HOME: /root env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_x86_64_plain-binaries_1" @@ -774,6 +784,7 @@ release_linux_i686_download_docker_builder: - "./tools/cirrus_build_project.sh plain-binaries release linux i686 0" env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 release_linux_i686_gcc_1_docker_builder: timeout_in: 120m @@ -843,6 +854,7 @@ release_linux_i686_gcc_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_i686_download" @@ -914,6 +926,7 @@ release_linux_i686_gcc_2_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_i686_gcc_1" @@ -985,6 +998,7 @@ release_linux_i686_goeasyconfig_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_i686_gcc_2" @@ -1056,6 +1070,7 @@ release_linux_i686_ncdns_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_i686_goeasyconfig_1" @@ -1127,6 +1142,7 @@ release_linux_i686_ncp11_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_i686_ncdns_1" @@ -1198,6 +1214,7 @@ release_linux_i686_ncprop279_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_i686_ncp11_1" @@ -1269,6 +1286,7 @@ release_linux_i686_plain-binaries_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_i686_ncprop279_1" @@ -1342,6 +1360,7 @@ release_linux_i686_release_nosign_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 only_if: $CIRRUS_REPO_OWNER != "namecoin" depends_on: - "release_linux_i686_plain-binaries_1" @@ -1419,6 +1438,7 @@ release_linux_i686_release_sign_docker_builder: HOME: /root env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_linux_i686_plain-binaries_1" @@ -1485,6 +1505,7 @@ release_windows_x86_64_download_docker_builder: - "./tools/cirrus_build_project.sh plain-binaries release windows x86_64 0" env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 release_windows_x86_64_mingw-w64_1_docker_builder: timeout_in: 120m @@ -1554,6 +1575,7 @@ release_windows_x86_64_mingw-w64_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_x86_64_download" @@ -1625,6 +1647,7 @@ release_windows_x86_64_mingw-w64_2_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_x86_64_mingw-w64_1" @@ -1696,6 +1719,7 @@ release_windows_x86_64_goeasyconfig_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_x86_64_mingw-w64_2" @@ -1767,6 +1791,7 @@ release_windows_x86_64_ncdns_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_x86_64_goeasyconfig_1" @@ -1838,6 +1863,7 @@ release_windows_x86_64_ncp11_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_x86_64_ncdns_1" @@ -1909,6 +1935,7 @@ release_windows_x86_64_ncprop279_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_x86_64_ncp11_1" @@ -1980,6 +2007,7 @@ release_windows_x86_64_plain-binaries_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_x86_64_ncprop279_1" @@ -2053,6 +2081,7 @@ release_windows_x86_64_release_nosign_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 only_if: $CIRRUS_REPO_OWNER != "namecoin" depends_on: - "release_windows_x86_64_plain-binaries_1" @@ -2130,6 +2159,7 @@ release_windows_x86_64_release_sign_docker_builder: HOME: /root env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_x86_64_plain-binaries_1" @@ -2196,6 +2226,7 @@ release_windows_i686_download_docker_builder: - "./tools/cirrus_build_project.sh plain-binaries release windows i686 0" env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 release_windows_i686_mingw-w64_1_docker_builder: timeout_in: 120m @@ -2265,6 +2296,7 @@ release_windows_i686_mingw-w64_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_i686_download" @@ -2336,6 +2368,7 @@ release_windows_i686_mingw-w64_2_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_i686_mingw-w64_1" @@ -2407,6 +2440,7 @@ release_windows_i686_goeasyconfig_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_i686_mingw-w64_2" @@ -2478,6 +2512,7 @@ release_windows_i686_ncdns_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_i686_goeasyconfig_1" @@ -2549,6 +2584,7 @@ release_windows_i686_ncp11_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_i686_ncdns_1" @@ -2620,6 +2656,7 @@ release_windows_i686_ncprop279_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_i686_ncp11_1" @@ -2691,6 +2728,7 @@ release_windows_i686_plain-binaries_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_i686_ncprop279_1" @@ -2764,6 +2802,7 @@ release_windows_i686_release_nosign_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 only_if: $CIRRUS_REPO_OWNER != "namecoin" depends_on: - "release_windows_i686_plain-binaries_1" @@ -2841,6 +2880,7 @@ release_windows_i686_release_sign_docker_builder: HOME: /root env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_windows_i686_plain-binaries_1" @@ -2907,6 +2947,7 @@ release_osx_x86_64_download_docker_builder: - "./tools/cirrus_build_project.sh plain-binaries release osx x86_64 0" env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 release_osx_x86_64_macosx-toolchain_1_docker_builder: timeout_in: 120m @@ -2976,6 +3017,7 @@ release_osx_x86_64_macosx-toolchain_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_osx_x86_64_download" @@ -3047,6 +3089,7 @@ release_osx_x86_64_macosx-toolchain_2_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_osx_x86_64_macosx-toolchain_1" @@ -3118,6 +3161,7 @@ release_osx_x86_64_goeasyconfig_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_osx_x86_64_macosx-toolchain_2" @@ -3189,6 +3233,7 @@ release_osx_x86_64_ncdns_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_osx_x86_64_goeasyconfig_1" @@ -3260,6 +3305,7 @@ release_osx_x86_64_ncp11_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_osx_x86_64_ncdns_1" @@ -3331,6 +3377,7 @@ release_osx_x86_64_ncprop279_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_osx_x86_64_ncp11_1" @@ -3402,6 +3449,7 @@ release_osx_x86_64_plain-binaries_1_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_osx_x86_64_ncprop279_1" @@ -3475,6 +3523,7 @@ release_osx_x86_64_release_nosign_docker_builder: SIGN_BUILD: 0 env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 only_if: $CIRRUS_REPO_OWNER != "namecoin" depends_on: - "release_osx_x86_64_plain-binaries_1" @@ -3552,6 +3601,14 @@ release_osx_x86_64_release_sign_docker_builder: HOME: /root env: CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0 depends_on: - "release_osx_x86_64_plain-binaries_1" +bump_docker_builder: + bump_script: + - "./tools/cirrus_build_project.sh null null null null 0" + env: + BUMP_DEPS: 1 + DEPLOY_KEY: ENCRYPTED[7969cc42abbc36c75c5673f2227e2eeec92577391c28c678243f95e01edffa17137e52cbddbe3e409cdab78a637edec5] + only_if: $CIRRUS_REPO_OWNER == "namecoin" diff --git a/tools/cirrus_build_project.sh b/tools/cirrus_build_project.sh index 4ddcc85..c4bb280 100755 --- a/tools/cirrus_build_project.sh +++ b/tools/cirrus_build_project.sh @@ -36,6 +36,11 @@ cat tools/rbm.local.conf.onetarget | sed "s/CHANNEL/$CHANNEL/g" | sed "s/ncdns-a echo "Patching rbm..." ./tools/patch-tor-to-namecoin.sh +if [[ "$BUMP_DEPS" -eq 1 ]]; then + ./tools/namecoin-bump-versions.sh + exit 0 +fi + echo "Restoring caches..." cp -a ./out_cache1/* ./out/ || true cp -a ./out_cache2/* ./out/ || true diff --git a/tools/cirrus_gen_yml.sh b/tools/cirrus_gen_yml.sh index 12198c2..8910300 100755 --- a/tools/cirrus_gen_yml.sh +++ b/tools/cirrus_gen_yml.sh @@ -70,7 +70,8 @@ print_os_arch () { build_script: - \"./tools/cirrus_build_project.sh plain-binaries ${CHANNEL} ${OS} ${ARCH} 0\"" echo " env: - CIRRUS_LOG_TIMESTAMP: true" + CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0" echo "" # TODO fine-tune this list @@ -172,7 +173,8 @@ print_os_arch () { SIGN_BUILD: 0" fi echo " env: - CIRRUS_LOG_TIMESTAMP: true" + CIRRUS_LOG_TIMESTAMP: true + BUMP_DEPS: 0" if [[ "$PROJECT_ITER" == "nosign" ]]; then echo ' only_if: $CIRRUS_REPO_OWNER != "namecoin"' fi @@ -204,6 +206,14 @@ for CHANNEL in release; do print_os_arch windows i686 print_os_arch osx x86_64 done + +echo 'bump_docker_builder: + bump_script: + - "./tools/cirrus_build_project.sh null null null null 0" + env: + BUMP_DEPS: 1 + DEPLOY_KEY: ENCRYPTED[7969cc42abbc36c75c5673f2227e2eeec92577391c28c678243f95e01edffa17137e52cbddbe3e409cdab78a637edec5] + only_if: $CIRRUS_REPO_OWNER == "namecoin"' ) > .cirrus.yml # Timeout issues? diff --git a/tools/namecoin-bump-versions.sh b/tools/namecoin-bump-versions.sh new file mode 100755 index 0000000..6a95d7b --- /dev/null +++ b/tools/namecoin-bump-versions.sh @@ -0,0 +1,200 @@ +#!/usr/bin/env bash + +set -euo pipefail +shopt -s nullglob globstar + +UPDATE_NEEDED=0 + +git branch bump-deps +git checkout bump-deps + +# project Git hashes + +for PROJECTPATH in ./projects/* +do + PROJECT=$(basename ${PROJECTPATH}) + + # Tor devs are in charge of their dependencies that we load via symlink + if [[ -L "${PROJECTPATH}" || "${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 + + # rbm showconf will fail for projects that don't have a git_hash variable, + # so we catch the failure and move on to the next project. + GIT_REV=$(./rbm/rbm showconf ${PROJECT} git_hash) || continue + + VERSION=$(./rbm/rbm showconf ${PROJECT} version) + VERSION_IS_NUMBER=1 + if (echo "${GIT_REV}" | grep "^${VERSION}") + then + # The version is a Git hash rather than a number. + VERSION_IS_NUMBER=0 + fi + + GIT_URL=$(./rbm/rbm showconf ${PROJECT} git_url) + + REMOTE_TAGS=$(git ls-remote --tags "${GIT_URL}") + if [ "${REMOTE_TAGS}" = "" ] || [ "${VERSION_IS_NUMBER}" = 0 ] + then + # Either there are no tags on the remote Git repo, or this project does + # not use a tagged version. Use HEAD instead of a tag. + LATEST_TAG=HEAD + LATEST_TAG_HASH=$(git ls-remote "${GIT_URL}" HEAD | awk '{print $1}') + else + LATEST_TAG=$(git ls-remote --tags "${GIT_URL}" | grep -v '\^{}' | awk '{print $2}' | awk -F"/" '{print $3}' | sort -V | grep -v "weekly" | tail --lines=1) + + # We use tail here because we want ${LATEST_TAG}^{} if it exists (it's + # the one that the GitHub UI shows). + LATEST_TAG_HASH=$(git ls-remote "${GIT_URL}" ${LATEST_TAG} ${LATEST_TAG}^{} | tail --lines=1 | awk '{print $1}') + fi + LATEST_INFO=$(git ls-remote "${GIT_URL}" HEAD ${LATEST_TAG} ${LATEST_TAG}^{}) + + PROJECT_UPDATE_NEEDED=0 + echo "${LATEST_INFO}" | grep ${GIT_REV} > /dev/null || PROJECT_UPDATE_NEEDED=1 + if [ "${PROJECT_UPDATE_NEEDED}" = 1 ] + then + UPDATE_NEEDED=1 + echo "${PROJECT}: rbm uses ${GIT_REV}, latest at remote ${GIT_URL} are: +${LATEST_INFO}" + + sed --in-place "s/${GIT_REV}/${LATEST_TAG_HASH}/g" "./projects/${PROJECT}/config" + if [ "${VERSION_IS_NUMBER}" = 1 ] + then + VERSION_STRIPPED=$(echo ${VERSION} | grep --only-matching -E '[0-9\.]+') + LATEST_VERSION_STRIPPED=$(echo ${LATEST_TAG} | grep --only-matching -E '[0-9\.]+') + sed --in-place "s/${VERSION_STRIPPED}/${LATEST_VERSION_STRIPPED}/g" "./projects/${PROJECT}/config" + fi + git add "./projects/${PROJECT}/config" + fi +done + +# ncdns-nsis dependencies + +# ncdns-nsis isn't merged yet. +if false +then + +BIND_VERSION=$(./rbm/rbm showconf ncdns-nsis var/bind_version) +LATEST_BIND_VERSION=$(curl https://ftp.isc.org/isc/bind/ | grep --only-matching '"[0-9]*\.[0-9]*\.[0-9]*/"' | tail --lines=1 | grep --only-matching '[0-9]*\.[0-9]*\.[0-9]*') + +if [ "${BIND_VERSION}" != "(${LATEST_BIND_VERSION})" ] +then + UPDATE_NEEDED=1 + echo "BIND: ncdns-nsis uses ${BIND_VERSION}, latest tag is ${LATEST_BIND_VERSION}" + + echo sed --in-place "s/${BIND_VERSION}/${LATEST_BIND_VERSION}/g" "./projects/ncdns-nsis/config" + git add "./projects/ncdns-nsis/config" +fi + +CONSENSUSJ_VERSION=$(./rbm/rbm showconf ncdns-nsis var/consensusj_namecoin_version) +LATEST_CONSENSUSJ_VERSION=$(curl https://www.namecoin.org/download/betas/ | grep --only-matching 'ConsensusJ-Namecoin/[0-9\.]*' | tail --lines=1 | grep --only-matching '[0-9\.]*') + +if [ "${CONSENSUSJ_VERSION}" != "(${LATEST_CONSENSUSJ_VERSION})" ] +then + UPDATE_NEEDED=1 + echo "ConsensusJ: ncdns-nsis uses ${CONSENSUSJ_VERSION}, latest tag is ${LATEST_CONSENSUSJ_VERSION}" + + echo sed --in-place "s/${CONSENSUSJ_VERSION}/${LATEST_CONSENSUSJ_VERSION}/g" "./projects/ncdns-nsis/config" + git add "./projects/ncdns-nsis/config" +fi + +NAMECOIN_VERSION=$(./rbm/rbm showconf ncdns-nsis var/namecoin_core_version) +LATEST_NAMECOIN_VERSION=$(curl https://www.namecoin.org/download/ | grep --only-matching -E 'namecoin-core-[0-9\.]+' | head --lines=1 | grep --only-matching -E '[0-9\.]+') + +if [ "${NAMECOIN_VERSION}" != "(${LATEST_NAMECOIN_VERSION})" ] +then + UPDATE_NEEDED=1 + echo "Namecoin Core: ncdns-nsis uses ${NAMECOIN_VERSION}, latest tag is ${LATEST_NAMECOIN_VERSION}" + + sed --in-place "s/${NAMECOIN_VERSION}/${LATEST_NAMECOIN_VERSION}/g" "./projects/ncdns-nsis/config" + git add "./projects/ncdns-nsis/config" +fi + +DNSSEC_TRIGGER_VERSION=$(./rbm/rbm showconf ncdns-nsis var/dnssec_trigger_version) +LATEST_DNSSEC_TRIGGER_VERSION=$(curl https://www.nlnetlabs.nl/downloads/dnssec-trigger/ | grep --only-matching -E 'dnssec_trigger_setup_[0-9\.]+.exe' | tail --lines=1 | grep --only-matching -E '[0-9\.]+[0-9]') + +if [ "${DNSSEC_TRIGGER_VERSION}" != "(${LATEST_DNSSEC_TRIGGER_VERSION})" ] +then + UPDATE_NEEDED=1 + echo "DNSSEC-Trigger: ncdns-nsis uses ${DNSSEC_TRIGGER_VERSION}, latest tag is ${DNSSEC_TRIGGER_VERSION}" + + echo sed --in-place "s/${DNSSEC_TRIGGER_VERSION}/${LATEST_DNSSEC_TRIGGER_VERSION}/g" "./projects/ncdns-nsis/config" + git add "./projects/ncdns-nsis/config" +fi + +# ncdns-nsis +fi + +# tor-browser-build submodule +# We do this step last so that if upstream tor-browser-build breaks things, +# we're already done invoking rbm. + +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 'tbb' | grep -v 'android' | grep -v '\^{}' | awk '{print $2}' | awk -F"/" '{print $3}' | grep 'a' | sort -V | tail --lines=1) +if [ "${GIT_TAG}" != "(${LATEST_TAG})" ] +then + UPDATE_NEEDED=1 + echo "tor-browser-build: submodule uses ${GIT_TAG}, latest tag is ${LATEST_TAG}" + + pushd tor-browser-build + # Undo any patches we did to tor-browser-build + git reset --hard HEAD + git clean -dfx + + # Bump the tor-browser-build version + git fetch origin + git checkout "${LATEST_TAG}" + popd + + git add "tor-browser-build" +fi + +if [ "$UPDATE_NEEDED" = 1 ] +then + echo "An update is required." + + (curl -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/${CIRRUS_REPO_FULL_NAME}/pulls?state=open&head=NamecoinBot:bump-deps" | grep -i "NamecoinBot:bump-deps") && (echo "A bump PR is already open; exiting."; exit 0) + + echo "No bump PR is currently open; proceeding." + + echo "Configuring username/email..." + git config user.name "NamecoinBot" + git config user.email "ncdns-repro-bump-bot@namecoin.org" + + echo "Committing changes..." + git commit --message="Bump dependencies" + + set +x + echo "Adding deploy key..." + mkdir -p ~/.ssh + touch ~/.ssh/id_ed25519 + chmod 0600 ~/.ssh/id_ed25519 + echo "${DEPLOY_KEY}" > ~/.ssh/id_ed25519 + + echo "Pinning GitHub SSH public key..." + echo '|1|x91VhqWighPtR2VjK37WcX5AUBM=|eLqicTE1vy85GxLqGTY1T2o3aTk= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' >> ~/.ssh/known_hosts + + echo "Adding deploy remote..." + git remote add deploy "git@github.com:NamecoinBot/ncdns-repro.git" + + echo "Pushing branch..." + git push --force deploy bump-deps +fi From e5819f2d3b377b080f8d6d2faac925e9ce5e1dc9 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Thu, 15 Apr 2021 16:33:19 +0000 Subject: [PATCH 5/5] Replace gowinsvc with goxsyswinsvc --- projects/goservice/config | 6 +++--- projects/{gowinsvc => goxsyswinsvc}/config | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) rename projects/{gowinsvc => goxsyswinsvc}/config (53%) diff --git a/projects/goservice/config b/projects/goservice/config index 5fbbeae..b0333ac 100644 --- a/projects/goservice/config +++ b/projects/goservice/config @@ -50,7 +50,7 @@ targets: windows: var: go_lib_deps: - - gowinsvc + - goxsyswinsvc - gosvcutils - goeasyconfig cgo: 0 @@ -65,8 +65,8 @@ input_files: - name: binutils project: binutils enable: '[% c("var/linux") && c("var/cgo") %]' - - name: gowinsvc - project: gowinsvc + - name: goxsyswinsvc + project: goxsyswinsvc enable: '[% c("var/windows") %]' - name: gosvcutils project: gosvcutils diff --git a/projects/gowinsvc/config b/projects/goxsyswinsvc/config similarity index 53% rename from projects/gowinsvc/config rename to projects/goxsyswinsvc/config index 8475f5c..ca6d4f0 100644 --- a/projects/gowinsvc/config +++ b/projects/goxsyswinsvc/config @@ -1,6 +1,7 @@ -version: 1.0.0 -git_url: https://github.com/btcsuite/winsvc.git -git_hash: f8fb11f83f7e860e3769a08e6811d1b399a43722 +# vim: filetype=yaml sw=2 +version: '[% c("abbrev") %]' +git_url: '[% pc("goxsys", "git_url") %]' +git_hash: '[% pc("goxsys", "git_hash") %]' filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz' build: '[% c("projects/go/var/build_go_lib") %]' @@ -8,10 +9,10 @@ build: '[% c("projects/go/var/build_go_lib") %]' var: container: use_container: 1 - go_lib: github.com/btcsuite/winsvc + go_lib: golang.org/x/sys go_lib_install: - - github.com/btcsuite/winsvc/mgr - - github.com/btcsuite/winsvc/svc + - golang.org/x/sys/windows/svc + - golang.org/x/sys/windows/svc/mgr input_files: - project: container-image