PKG build package for or on Android
What version of pkg are you using?
5.8.0
What version of Node.js are you using?
v17.9.0
What operating system are you using?
Android 8.0
What CPU architecture are you using?
arm64
What Node versions, OSs and CPU architectures are you building for?
node-v14.20.0-android-arm64
Describe the Bug
Failed to build node from source: `ld.lld: error: undefined symbol: OPENSSL_sk_new_null
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced 51 more times
ld.lld: error: undefined symbol: OPENSSL_sk_push
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced 59 more times
ld.lld: error: undefined symbol: ASN1_ITEM_lookup
referenced by ld-temp.o lto.tmp:(asn1parse_main)
ld.lld: error: undefined symbol: BIO_printf
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced 1443 more times
ld.lld: error: undefined symbol: BIO_puts
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced 186 more times
ld.lld: error: undefined symbol: ASN1_ITEM_get
referenced by ld-temp.o lto.tmp:(asn1parse_main)
ld.lld: error: undefined symbol: BIO_free
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced 108 more times
ld.lld: error: undefined symbol: ERR_print_errors
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced 261 more times
ld.lld: error: undefined symbol: BUF_MEM_free
referenced by ld-temp.o lto.tmp:(asn1parse_main)
ld.lld: error: undefined symbol: CRYPTO_free
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced 262 more times
ld.lld: error: undefined symbol: ASN1_TYPE_free
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(do_generate) referenced 2 more times
ld.lld: error: undefined symbol: OPENSSL_sk_free
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced by ld-temp.o lto.tmp:(ciphers_main) referenced 34 more times
ld.lld: error: undefined symbol: OBJ_create_objects
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(ca_main) referenced by ld-temp.o lto.tmp:(req_main) referenced 1 more times
ld.lld: error: undefined symbol: BUF_MEM_new
referenced by ld-temp.o lto.tmp:(asn1parse_main)
ld.lld: error: undefined symbol: PEM_read_bio
referenced by ld-temp.o lto.tmp:(asn1parse_main)
ld.lld: error: undefined symbol: BUF_MEM_grow
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(do_generate)
ld.lld: error: undefined symbol: BIO_f_base64
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(enc_main) referenced by ld-temp.o lto.tmp:(ocsp_main) referenced 1 more times
ld.lld: error: undefined symbol: BIO_new
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(dgst_main) referenced by ld-temp.o lto.tmp:(dgst_main) referenced 28 more times
ld.lld: error: undefined symbol: BIO_push
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(dgst_main) referenced by ld-temp.o lto.tmp:(enc_main) referenced 19 more times
ld.lld: error: undefined symbol: BIO_read
referenced by ld-temp.o lto.tmp:(asn1parse_main) referenced by ld-temp.o lto.tmp:(dgst_main) referenced by ld-temp.o lto.tmp:(do_fp) referenced 21 more times
ld.lld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) clang-14: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [deps/openssl/openssl-cli.target.mk:226: /data/data/com.termux/files/usr/tmp/pkg.4c7d02692a8aa134fb3fbf5c/node/out/Release/openssl-cli] Error 1 make: *** [Makefile:109: node] Error 2 strip: '/data/data/com.termux/files/usr/tmp/pkg.4c7d02692a8aa134fb3fbf5c/node/out/Release/node': No such file
Error! Error: ENOENT: no such file or directory, open '/data/data/com.termux/files/usr/tmp/pkg.4c7d02692a8aa134fb3fbf5c/node/out/Release/node'`
Expected Behavior
Build package without errors
To Reproduce
- install termux on android 8.0 version with arm64 architecture
- install python and node (pkg add node python)
- move
~/../usr/bin/pkgelsewhere - run
npm -g install pkg - run
MAKE_JOB_COUNT=1 pkg -t node-v14.20.0-android-arm64 -o ./server ./{any-js-source}.js--debug --compress Brotli`
any workaround welcome , because it does not support installed node version (node 17) , so I had to define older one. Building from docker drops with other error:
> Error! Error: spawnSync make ENOENT at Object.spawnSync (internal/child_process.js:1067:20) at spawnSync (child_process.js:602:24) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:148:51 at step (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:33:23) at Object.next (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:14:53) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:8:71 at new Promise (<anonymous>) at __awaiter (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:4:12) at spawn (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:145:12) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/build.js:306:60
maybe there is a case to feed prebuilt node without checking in pkg defined location ?
Building from balenalib/armv7hf-alpine-node node 14
`> Applying patches
Error! Error: spawnSync patch ENOENT at Object.spawnSync (node:internal/child_process:1109:20) at spawnSync (node:child_process:803:24) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:148:51 at step (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:33:23) at Object.next (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:14:53) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:8:71 at new Promise (
) at __awaiter (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:4:12) at spawn (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:145:12) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/build.js:221:60 `
Building from balenalib/armv7hf-alpine-node node 18
> Error! Error: spawnSync patch ENOENT at Object.spawnSync (node:internal/child_process:1109:20) at spawnSync (node:child_process:803:24) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:148:51 at step (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:33:23) at Object.next (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:14:53) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:8:71 at new Promise (<anonymous>) at __awaiter (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:4:12) at spawn (/usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/utils.js:145:12) at /usr/local/lib/node_modules/pkg/node_modules/pkg-fetch/lib-es5/build.js:221:60
ARM v8 qemu not found at all
suggesting workaround:
you could install ubuntu 20.04 on termux(from fdroid) using Andronix(from playstore). then apt install node and npm then npm install pkg. Do this all on the ubuntu environment in termux (aka after u ./start-ubuntu20.sh in the home directory of termux). Bear in mind that the node version in the ubuntu repo is kinda outdated, apt install nodejs in ubuntu environment got me node10. or u could just curl the links of newer repositories https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04.
After that, pkg your app with nodeversion-linux-arm64 target
This issue is stale because it has been open 90 days with no activity. Remove the stale label or comment or this will be closed in 5 days. To ignore this issue entirely you can add the no-stale label
This issue is now closed due to inactivity, you can of course reopen or reference this issue if you see fit.