diff --git a/main/nodejs/APKBUILD b/main/nodejs/APKBUILD index 5da7ed4ed05..054a8da3990 100644 --- a/main/nodejs/APKBUILD +++ b/main/nodejs/APKBUILD @@ -123,6 +123,7 @@ license="MIT" depends="ca-certificates" makedepends=" ada-dev + base64-dev brotli-dev c-ares-dev icu-dev @@ -146,6 +147,8 @@ replaces="nodejs-current nodejs-lts" # nodejs-lts for backward compatibility source="https://nodejs.org/dist/v$pkgver/node-v$pkgver.tar.gz disable-running-gyp-on-shared-deps.patch system-ada.patch + system-base64.patch + base64.gyp $pkgname.pc.in " builddir="$srcdir/node-v$pkgver" @@ -162,6 +165,7 @@ prepare() { # that supports QUIC. After the QUIC support is added to openssl, add # options --shared-nghttp3 and --shared-ngtcp2. rm -rf deps/ada/*.cpp \ + deps/base64/* \ deps/brotli \ deps/cares \ deps/corepack \ @@ -174,6 +178,8 @@ prepare() { tools/inspector_protocol/jinja2 mv nodejs-openssl.cnf deps/openssl/ + + cp "$srcdir"/base64.gyp deps/base64/ } build() { @@ -239,6 +245,9 @@ check() { ./node -e 'console.log("Hello, world!")' ./node -e "require('assert').equal(process.versions.node, '$pkgver')" + ./node -e 'require("assert").equal( + Buffer.from(Buffer.from("foo").toString("base64"), "base64").toString("ascii"), + "foo")' } package() { @@ -261,5 +270,7 @@ sha512sums=" 594dea752e8f07036a41ccfddea45835be5219b8f0bc04b5903c3b44c32f8c73aa1d57798b4066852add098cd5ec856ee87a56b57633a45dfc0cfbe788451223 node-v20.9.0.tar.gz 8c264eefc0bfa9dd57656f9f515e940d5c21b8d836dc549031ee559ba909643f4f2495b8b392ee9976c5eed7c3b4a09db876bbe0f7fcd5b2bf63fafca37bffc2 disable-running-gyp-on-shared-deps.patch 4fc09500212ebc178801e7419c840ccebc239ff06edcb28910315e39bfc772a3967f5ff2abff03845269e730643be161134ac95bab899069fa57dd64be98defa system-ada.patch +94db1f150cb962bf19f42e0ef7cec2c0e007d1909611d03a393095720cc8db58322e638ea3c3280b4412f47615963c88e69c71b4c5adf84292b9fc7f3be3b110 system-base64.patch +bb0f74d8fb1ef07fd457670b9073a3cecadb3ac7d4fea008e8f17c091a62d15ef50646be457a50ac24c4129085d4da21beedd03af0739dded5d636916482f082 base64.gyp f908fa93f6194ec4f6c5e9d76ed7c918721c7f5d46afcc12de1f84683c185401a27a174b7a7c6a76085a4d0826f964e7088bf5596d4e6901a15bf751846299a6 nodejs.pc.in " diff --git a/main/nodejs/base64.gyp b/main/nodejs/base64.gyp new file mode 100644 index 00000000000..17023dcefcc --- /dev/null +++ b/main/nodejs/base64.gyp @@ -0,0 +1,15 @@ +{ + 'targets': [ + { + 'target_name': 'base64', + 'type': 'shared_library', + 'include_dirs': ['/usr/include'], + 'direct_dependent_settings': { + 'include_dirs': ['/usr/include'], + 'linkflags': ['-lbase64'], + 'ldflags': ['-lbase64'], + 'libraries': ['-lbase64'] + } + }, + ] +} diff --git a/main/nodejs/system-base64.patch b/main/nodejs/system-base64.patch new file mode 100644 index 00000000000..39902781d33 --- /dev/null +++ b/main/nodejs/system-base64.patch @@ -0,0 +1,33 @@ +From: Jakub Jirutka +Date: Sun, 19 Nov 2023 22:45:01 +0100 +Subject: [PATCH] Link with shared libbase64 + +The second part is our modified base64.gyp. + +--- a/node.gyp ++++ b/node.gyp +@@ -512,7 +512,8 @@ + 'dependencies': [ + 'deps/histogram/histogram.gyp:histogram', + 'deps/uvwasi/uvwasi.gyp:uvwasi', + 'deps/ada/ada.gyp:ada', ++ 'deps/base64/base64.gyp:base64' + ], + + 'msvs_settings': { +@@ -1117,6 +1119,7 @@ + 'deps/histogram/histogram.gyp:histogram', + 'deps/uvwasi/uvwasi.gyp:uvwasi', + 'deps/ada/ada.gyp:ada', ++ 'deps/base64/base64.gyp:base64', + ], + + 'includes': [ +@@ -1228,6 +1231,7 @@ + 'deps/histogram/histogram.gyp:histogram', + 'deps/uvwasi/uvwasi.gyp:uvwasi', + 'deps/ada/ada.gyp:ada', ++ 'deps/base64/base64.gyp:base64', + ], + + 'includes': [