From f20633f90fefbf7f3a35091544534219b3d3dc9a Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Tue, 30 May 2023 13:32:20 +0200 Subject: [PATCH] tools: don't gitignore base64 config.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The file is checked into git. Ignoring it causes a very non-obvious way of breaking tarball builds: 1. Download and unpack tarball 2. Check the sources into git with `git init; git add .; git commit -a` 3. Clean the source tree with `git clean -dfx` 4. Run `./configure && make` 5. Observe build failure because config.h is missing Fixes: https://github.com/nodejs/node/issues/47638 PR-URL: https://github.com/nodejs/node/pull/48174 Reviewed-By: Michaƫl Zasso Reviewed-By: Richard Lau Reviewed-By: Marco Ippolito Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli --- tools/dep_updaters/update-base64.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/dep_updaters/update-base64.sh b/tools/dep_updaters/update-base64.sh index 66f91af0e4dd49..eb0fadaf543255 100755 --- a/tools/dep_updaters/update-base64.sh +++ b/tools/dep_updaters/update-base64.sh @@ -62,7 +62,11 @@ mv "$WORKSPACE/base64" "$DEPS_DIR/base64/" # Build configuration is handled by `deps/base64/base64.gyp`, but since `config.h` has to be present for the build # to work, we create it and leave it empty. -echo "// Intentionally empty" >> "$DEPS_DIR/base64/base64/lib/config.h" +echo "// Intentionally empty" > "$DEPS_DIR/base64/base64/lib/config.h" + +# Clear out .gitignore, otherwise config.h is ignored. That's dangerous when +# people check in our tarballs into source control and run `git clean`. +echo "# Intentionally empty" > "$DEPS_DIR/base64/base64/.gitignore" # update the base64_version.h cat > "$BASE_DIR/src/base64_version.h" << EOL