Skip to content

Commit 4f177f1

Browse files
authored
tools: update libffi updater script
Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: #64046 Reviewed-By: Paolo Insogna <paolo@cowtech.it> Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
1 parent a811c34 commit 4f177f1

1 file changed

Lines changed: 13 additions & 17 deletions

File tree

tools/dep_updaters/update-libffi.sh

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/sh
2-
set -e
2+
set -ex
33
# Shell script to update libffi in the source tree to a specific version
44

55
BASE_DIR=$(cd "$(dirname "$0")/../.." && pwd)
@@ -26,13 +26,13 @@ const tarball = assets.find(({ name }) => name === tarballName);
2626
if (!tarball?.browser_download_url) throw new Error(`No release tarball found for ${tag_name}`);
2727
console.log(`${version} ${tarball.browser_download_url} ${tarballName}`);
2828
EOF
29-
)"
29+
)" # "
3030

3131
IFS=' ' read -r NEW_VERSION NEW_VERSION_URL LIBFFI_TARBALL <<EOF
3232
$NEW_VERSION_METADATA
3333
EOF
3434

35-
CURRENT_VERSION=$(grep "^LIBFFI_VERSION = " "$DEPS_DIR/libffi/generate-headers.py" | sed -n "s/^LIBFFI_VERSION = '\(.*\)'/\1/p")
35+
CURRENT_VERSION=$(sed -n '/^@set VERSION /s/.* \([0-9.]*\)$/\1/p' "$DEPS_DIR/libffi/doc/version.texi")
3636

3737
# This function exit with 0 if new version and current version are the same
3838
compare_dependency_version "libffi" "$NEW_VERSION" "$CURRENT_VERSION"
@@ -49,25 +49,21 @@ cleanup () {
4949

5050
trap cleanup INT TERM EXIT
5151

52-
cd "$WORKSPACE"
53-
5452
echo "Fetching libffi source archive..."
55-
curl -sL -o "$LIBFFI_TARBALL" "$NEW_VERSION_URL"
56-
log_and_verify_sha256sum "libffi" "$LIBFFI_TARBALL"
57-
gzip -dc "$LIBFFI_TARBALL" | tar xf -
58-
rm "$LIBFFI_TARBALL"
59-
60-
FOLDER=$(ls -d -- */)
61-
mv "$FOLDER" libffi
53+
curl -fsSLo "$WORKSPACE/$LIBFFI_TARBALL" "$NEW_VERSION_URL"
54+
log_and_verify_sha256sum "libffi" "$WORKSPACE/$LIBFFI_TARBALL"
55+
tar -C "$WORKSPACE" -xzf "$WORKSPACE/$LIBFFI_TARBALL"
56+
LIBFFI_STAGING=$(find "$WORKSPACE" -mindepth 1 -maxdepth 1 -type d -print -quit)
6257

6358
echo "Copying existing Node.js-specific files"
64-
cp "$DEPS_DIR/libffi/libffi.gyp" "$WORKSPACE/libffi"
65-
cp "$DEPS_DIR/libffi/generate-headers.py" "$WORKSPACE/libffi"
66-
cp "$DEPS_DIR/libffi/generate-configure-headers.py" "$WORKSPACE/libffi"
67-
cp "$DEPS_DIR/libffi/generate-darwin-source-and-headers.py" "$WORKSPACE/libffi"
59+
cp "$DEPS_DIR/libffi/libffi.gyp" "$LIBFFI_STAGING"
60+
cp "$DEPS_DIR/libffi/preprocess_asm.py" "$LIBFFI_STAGING"
61+
cp "$DEPS_DIR/libffi/generate-headers.py" "$LIBFFI_STAGING"
62+
cp "$DEPS_DIR/libffi/generate-configure-headers.py" "$LIBFFI_STAGING"
63+
cp "$DEPS_DIR/libffi/generate-darwin-source-and-headers.py" "$LIBFFI_STAGING"
6864

6965
echo "Replacing existing libffi"
70-
replace_dir "$DEPS_DIR/libffi" "$WORKSPACE/libffi"
66+
replace_dir "$DEPS_DIR/libffi" "$LIBFFI_STAGING"
7167

7268
NEW_VERSION_NUMBER=$($NODE -e "const [major, minor, patch] = process.argv[1].split('.'); console.log(String(Number(major)) + String(Number(minor)).padStart(2, '0') + String(Number(patch)).padStart(2, '0'));" "$NEW_VERSION")
7369

0 commit comments

Comments
 (0)