From 740075d5a333499779ff7e1c07394d187693ac0b Mon Sep 17 00:00:00 2001 From: LongYinan Date: Wed, 14 Aug 2024 17:10:27 +0800 Subject: [PATCH 1/2] ci: fix Android build (#874) --- .github/workflows/CI.yaml | 5 ++++- cmake/android-determine.cmake | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 cmake/android-determine.cmake diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index 1cd7c10e..d3de970c 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -149,7 +149,10 @@ jobs: touch "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" chmod 777 "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" echo "INPUT(-lunwind)" > "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" - export LDFLAGS="--target=aarch64-linux-android24" + export LDFLAGS="-fuse-ld=lld" + export CC=aarch64-linux-android24-clang + export CXX=aarch64-linux-android24-clang++ + export CMAKE_TOOLCHAIN_FILE_aarch64_linux_android="$(pwd)/cmake/android-determine.cmake" yarn build --target aarch64-linux-android name: stable - ${{ matrix.settings.target }} - node@20 diff --git a/cmake/android-determine.cmake b/cmake/android-determine.cmake new file mode 100644 index 00000000..5294e56a --- /dev/null +++ b/cmake/android-determine.cmake @@ -0,0 +1,7 @@ +set(NDK_ARCH_arm64_ABI "arm64-v8a") +set(NDK_ARCH_aarch64_ABI "arm64-v8a") +set(NDK_ARCH_arm_ABI "armeabi") +set(NDK_ARCH_mips_ABI "mips") +set(NDK_ARCH_mips64_ABI "mips64") +set(NDK_ARCH_x86_ABI "x86") +set(NDK_ARCH_x86_64_ABI "x86_64") \ No newline at end of file From 1666a33d23c779bf5cb6b9fcd4d0cace1ada609b Mon Sep 17 00:00:00 2001 From: six Date: Wed, 14 Aug 2024 06:00:43 -0400 Subject: [PATCH 2/2] fix: handle relative and invalid URLs in redirects when passing URL to loadImage() (#866) * fix: handle invalid urls in load-image.js (#865) * fix: handle relative urls in redirects (#865) --------- Co-authored-by: LongYinan --- load-image.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/load-image.js b/load-image.js index 2ee6b0e0..187d8cb3 100644 --- a/load-image.js +++ b/load-image.js @@ -61,14 +61,18 @@ function makeRequest(url, resolve, reject, redirectCount, requestOptions) { lib .get(url.toString(), requestOptions || {}, (res) => { - const shouldRedirect = REDIRECT_STATUSES.has(res.statusCode) && typeof res.headers.location === 'string' - if (shouldRedirect && redirectCount > 0) - return makeRequest(new URL(res.headers.location), resolve, reject, redirectCount - 1, requestOptions) - if (typeof res.statusCode === 'number' && (res.statusCode < 200 || res.statusCode >= 300)) { - return reject(new Error(`remote source rejected with status code ${res.statusCode}`)) + try { + const shouldRedirect = REDIRECT_STATUSES.has(res.statusCode) && typeof res.headers.location === 'string' + if (shouldRedirect && redirectCount > 0) + return makeRequest(new URL(res.headers.location, url.origin), resolve, reject, redirectCount - 1, requestOptions) + if (typeof res.statusCode === 'number' && (res.statusCode < 200 || res.statusCode >= 300)) { + return reject(new Error(`remote source rejected with status code ${res.statusCode}`)) + } + + consumeStream(res).then(resolve, reject) + } catch (err) { + reject(err) } - - consumeStream(res).then(resolve, reject) }) .on('error', reject) }