nodejs / unofficial-builds

Unofficial binaries for Node.js
https://unofficial-builds.nodejs.org
242 stars 50 forks source link

new armv6l recipe for Node.js 16 and later #33

Closed richardlau closed 3 years ago

richardlau commented 3 years ago

Node.js 16 has raised the minimum version of some of the build toolchain (Python 3.6+ is now required and gcc/g++ 8) and the existing recipe for armv6l fails to build Node.js 16 as it doesn't have a new enough version of Python: https://unofficial-builds.nodejs.org/logs/202104220522-v16.0.0/armv6l.log

Moved the existing recipe to armv6l-old and added a should-build.sh script to stop it running on Node.js 16 and later. Add a new armv6l recipe, based on the existing arm6vl recipe, but using Ubuntu 18.04 and gcc/g++ 8 to match what we're using for the official armv7l builds.

richardlau commented 3 years ago

Refs: https://github.com/nodejs/node/discussions/38496

rvagg commented 3 years ago

I think old is going to become a problem into the future and we should be more specific. I think something like pre16 (or something along those lines) would be a better differentiator and will scale as we have to do more of this. Otherwise this LGTM I think, it'd be good to test it out on old and new once merged to verify.

richardlau commented 3 years ago

Renamed the "old" recipe to armv6l-pre16.

richardlau commented 3 years ago

I queued v15.10.0-rc.0 as a pre-16 build and it's currently running: https://unofficial-builds.nodejs.org/logs/202105041004-v15.10.0-rc.0/ There should be a new 16 release later today (https://github.com/nodejs/node/pull/38522).

richardlau commented 3 years ago

Oops, missed that build.sh has a list of recipes to build that needs to be updated: https://github.com/nodejs/unofficial-builds/pull/34

richardlau commented 3 years ago

16.1.0 build on the new recipe failed due to a missing package -- added the fix to https://github.com/nodejs/unofficial-builds/pull/34: https://unofficial-builds.nodejs.org/logs/202105041543-v16.1.0/armv6l.log

python3 ./configure \
    --prefix=/ \
    --dest-cpu=arm \
    --tag= \
    --release-urlbase=https://unofficial-builds.nodejs.org/download/release/ \
     --download=all --with-intl=full-icu
Traceback (most recent call last):
  File "./configure", line 18, in <module>
    from distutils.spawn import find_executable
ModuleNotFoundError: No module named 'distutils.spawn'