From 54bf95cece7c8f78d3af4501edc37634eafb1b4b Mon Sep 17 00:00:00 2001 From: Niccolo Zapponi Date: Wed, 9 Feb 2022 19:34:08 +0100 Subject: [PATCH 1/2] Added support for armv7l arch (Raspberry Pi 32bit) --- .github/workflows/ci.yml | 6 ++++-- docker/armv7l-cross-compile/Dockerfile | 29 ++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 docker/armv7l-cross-compile/Dockerfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d75fdf2f..4db49da1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,9 +92,11 @@ jobs: docker build -t node-keytar/i386 docker/i386 docker run --rm -v ${PWD}:/project node-keytar/i386 /bin/bash -c "cd /project && npm run prebuild-napi-ia32 && rm -rf build" docker build -t node-keytar/arm64-cross-compile docker/arm64-cross-compile - docker run --rm -v ${PWD}:/project node-keytar/arm64-cross-compile /bin/bash -c "cd /project && npm run prebuild-napi-arm64" + docker run --rm -v ${PWD}:/project node-keytar/arm64-cross-compile /bin/bash -c "cd /project && npm run prebuild-napi-arm64 && rm -rf build" + docker build -t node-keytar/armv7l-cross-compile docker/armv7l-cross-compile + docker run --rm -v ${PWD}:/project node-keytar/armv7l-cross-compile /bin/bash -c "cd /project && npm run prebuild-napi-armv7l" if: ${{ matrix.os == 'ubuntu-20.04' }} - name: Prebuild (Linux x86 + ARM64) + name: Prebuild (Linux x86 + ARM64 + ARMV7L) - run: | ls prebuilds/ diff --git a/docker/armv7l-cross-compile/Dockerfile b/docker/armv7l-cross-compile/Dockerfile new file mode 100644 index 00000000..dc7ec09c --- /dev/null +++ b/docker/armv7l-cross-compile/Dockerfile @@ -0,0 +1,29 @@ +FROM debian:buster + +RUN dpkg --add-architecture armhf +RUN apt-get update && apt-get install -y --no-install-recommends \ + crossbuild-essential-armhf \ + python \ + git \ + pkg-config \ + fakeroot \ + rpm \ + ca-certificates \ + libx11-dev:armhf \ + libx11-xcb-dev:armhf \ + libxkbfile-dev:armhf \ + libsecret-1-dev:armhf \ + curl + +ENV AS=/usr/bin/arm-linux-gnu-as \ + STRIP=/usr/bin/arm-linux-gnu-strip \ + AR=/usr/bin/arm-linux-gnu-ar \ + CC=/usr/bin/arm-linux-gnu-gcc \ + CPP=/usr/bin/arm-linux-gnu-cpp \ + CXX=/usr/bin/arm-linux-gnu-g++ \ + LD=/usr/bin/arm-linux-gnu-ld \ + FC=/usr/bin/arm-linux-gnu-gfortran \ + PKG_CONFIG_PATH=/usr/lib/arm-linux-gnu/pkgconfig + +RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - +RUN apt-get install -y nodejs diff --git a/package.json b/package.json index 32f651e3..00a2f753 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "prebuild-napi-x64": "prebuild -t 3 -r napi -a x64 --strip", "prebuild-napi-ia32": "prebuild -t 3 -r napi -a ia32 --strip", "prebuild-napi-arm64": "prebuild -t 3 -r napi -a arm64 --strip", + "prebuild-napi-armv7l": "prebuild -t 3 -r napi -a armv7l --strip", "upload": "node ./script/upload.js" }, "devDependencies": { From c28bf9f6edb6bbf89a43a0fb867f94f263cef4a6 Mon Sep 17 00:00:00 2001 From: Niccolo Zapponi Date: Fri, 11 Feb 2022 12:58:59 +0100 Subject: [PATCH 2/2] Corrected armv7l binary locations --- docker/armv7l-cross-compile/Dockerfile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docker/armv7l-cross-compile/Dockerfile b/docker/armv7l-cross-compile/Dockerfile index dc7ec09c..243f195e 100644 --- a/docker/armv7l-cross-compile/Dockerfile +++ b/docker/armv7l-cross-compile/Dockerfile @@ -15,15 +15,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libsecret-1-dev:armhf \ curl -ENV AS=/usr/bin/arm-linux-gnu-as \ - STRIP=/usr/bin/arm-linux-gnu-strip \ - AR=/usr/bin/arm-linux-gnu-ar \ - CC=/usr/bin/arm-linux-gnu-gcc \ - CPP=/usr/bin/arm-linux-gnu-cpp \ - CXX=/usr/bin/arm-linux-gnu-g++ \ - LD=/usr/bin/arm-linux-gnu-ld \ - FC=/usr/bin/arm-linux-gnu-gfortran \ - PKG_CONFIG_PATH=/usr/lib/arm-linux-gnu/pkgconfig +ENV AS=/usr/bin/arm-linux-gnueabihf-as \ + STRIP=/usr/bin/arm-linux-gnueabihf-strip \ + AR=/usr/bin/arm-linux-gnueabihf-ar \ + CC=/usr/bin/arm-linux-gnueabihf-gcc \ + CPP=/usr/bin/arm-linux-gnueabihf-cpp \ + CXX=/usr/bin/arm-linux-gnueabihf-g++ \ + LD=/usr/bin/arm-linux-gnueabihf-ld \ + FC=/usr/bin/arm-linux-gnueabihf-gfortran \ + PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - RUN apt-get install -y nodejs