diff --git a/tools/dep_updaters/c-ares.kbx b/tools/dep_updaters/c-ares.kbx new file mode 100644 index 00000000000000..720f1df36917d7 Binary files /dev/null and b/tools/dep_updaters/c-ares.kbx differ diff --git a/tools/dep_updaters/update-c-ares.sh b/tools/dep_updaters/update-c-ares.sh index f990430d9f6aee..ca77ee52183d64 100755 --- a/tools/dep_updaters/update-c-ares.sh +++ b/tools/dep_updaters/update-c-ares.sh @@ -1,5 +1,5 @@ #!/bin/sh -set -e +set -ex # Shell script to update c-ares in the source tree to a specific version BASE_DIR=$(cd "$(dirname "$0")/../.." && pwd) @@ -22,11 +22,11 @@ if (!res.ok) throw new Error(`FetchError: ${res.status} ${res.statusText}`, { ca const { tag_name, assets } = await res.json(); const { browser_download_url, name } = assets.find(({ name }) => name.endsWith('.tar.gz')); if(!browser_download_url || !name) throw new Error('No tarball found'); -console.log(`${tag_name} ${browser_download_url} ${name}`); +console.log(`${tag_name.replace(/^v/, '')} ${browser_download_url}`); EOF )" -IFS=' ' read -r NEW_VERSION NEW_VERSION_URL ARES_TARBALL < /dev/null || mktemp -d -t 'tmp') +ARES_TARBALL="$WORKSPACE/c-ares.tgz" cleanup () { EXIT_CODE=$? @@ -47,29 +48,29 @@ cleanup () { trap cleanup INT TERM EXIT -cd "$WORKSPACE" - echo "Fetching c-ares source archive" curl -sL -o "$ARES_TARBALL" "$NEW_VERSION_URL" -log_and_verify_sha256sum "c-ares" "$ARES_TARBALL" -gzip -dc "$ARES_TARBALL" | tar xf - -rm -- "$ARES_TARBALL" -FOLDER=$(ls -d -- */) +echo "Verifying PGP signature" +curl -sL -o "$ARES_TARBALL.asc" "$NEW_VERSION_URL.asc" +gpgv --keyring "$BASE_DIR/tools/dep_updaters/c-ares.kbx" "${ARES_TARBALL}.asc" "${ARES_TARBALL}" + +log_and_verify_sha256sum "c-ares" "$ARES_TARBALL" +tar -C "$WORKSPACE" -xzf "$ARES_TARBALL" -mv -- "$FOLDER" cares +ARES_FOLDER=$(find "$WORKSPACE" -mindepth 1 -maxdepth 1 -type d -print -quit) echo "Removing tests" -rm -rf "$WORKSPACE/cares/test" +rm -rf "$ARES_FOLDER/test" echo "Copying existing .gitignore, config, gyp and gn files" -cp -R "$DEPS_DIR/cares/config" "$WORKSPACE/cares" -cp "$DEPS_DIR/cares/.gitignore" "$WORKSPACE/cares" -cp "$DEPS_DIR/cares/cares.gyp" "$WORKSPACE/cares" -cp "$DEPS_DIR/cares/"*.gn "$DEPS_DIR/cares/"*.gni "$WORKSPACE/cares" +cp -R "$DEPS_DIR/cares/config" "$ARES_FOLDER" +cp "$DEPS_DIR/cares/.gitignore" "$ARES_FOLDER" +cp "$DEPS_DIR/cares/cares.gyp" "$ARES_FOLDER" +cp "$DEPS_DIR/cares/"*.gn "$DEPS_DIR/cares/"*.gni "$ARES_FOLDER" echo "Replacing existing c-ares" -replace_dir "$DEPS_DIR/cares" "$WORKSPACE/cares" +replace_dir "$DEPS_DIR/cares" "$ARES_FOLDER" echo "Updating cares.gyp" "$NODE" "$ROOT/tools/dep_updaters/update-c-ares.mjs"