From d546b115de6e1bba4374975a726d5fbbd98529b6 Mon Sep 17 00:00:00 2001 From: fossdd Date: Fri, 15 Nov 2024 08:57:32 +0100 Subject: [PATCH 1/4] Add support for linux riscv64 musl --- .github/workflows/build-and-tests.yml | 10 ++++++++++ native.js | 2 +- npm/linux-riscv64-musl/README.md | 3 +++ npm/linux-riscv64-musl/package.json | 22 ++++++++++++++++++++++ package.json | 1 + 5 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 npm/linux-riscv64-musl/README.md create mode 100644 npm/linux-riscv64-musl/package.json diff --git a/.github/workflows/build-and-tests.yml b/.github/workflows/build-and-tests.yml index 01a7ec3258e..23780bafb76 100644 --- a/.github/workflows/build-and-tests.yml +++ b/.github/workflows/build-and-tests.yml @@ -183,6 +183,16 @@ jobs: set -e && rustup target add riscv64gc-unknown-linux-gnu && npm run build:napi -- --release --target riscv64gc-unknown-linux-gnu + - host: ubuntu-latest + target: riscv64gc-unknown-linux-musl + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + setup: | + sudo apt-get update + sudo apt-get install gcc-riscv64-linux-musl -y + build: >- + set -e && + rustup target add riscv64gc-unknown-linux-musl && + npm run build:napi -- --release --target riscv64gc-unknown-linux-\musl - host: ubuntu-latest target: powerpc64le-unknown-linux-gnu setup: | diff --git a/native.js b/native.js index 68a0e1e7a54..09a4bffb6f3 100644 --- a/native.js +++ b/native.js @@ -22,7 +22,7 @@ const bindingsByPlatformAndArch = { arm64: { base: 'linux-arm64-gnu', musl: 'linux-arm64-musl' }, loong64: { base: 'linux-loongarch64-gnu', musl: null }, ppc64: { base: 'linux-powerpc64le-gnu', musl: null }, - riscv64: { base: 'linux-riscv64-gnu', musl: null }, + riscv64: { base: 'linux-riscv64-gnu', musl: 'linux-riscv64-musl' }, s390x: { base: 'linux-s390x-gnu', musl: null }, x64: { base: 'linux-x64-gnu', musl: 'linux-x64-musl' } }, diff --git a/npm/linux-riscv64-musl/README.md b/npm/linux-riscv64-musl/README.md new file mode 100644 index 00000000000..55e4c1a1127 --- /dev/null +++ b/npm/linux-riscv64-musl/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-linux-riscv64-musl` + +This is the **riscv64gc-unknown-linux-musl** binary for `rollup` diff --git a/npm/linux-riscv64-musl/package.json b/npm/linux-riscv64-musl/package.json new file mode 100644 index 00000000000..487cb1eef63 --- /dev/null +++ b/npm/linux-riscv64-musl/package.json @@ -0,0 +1,22 @@ +{ + "name": "@rollup/rollup-linux-riscv64-musl", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "riscv64" + ], + "files": [ + "rollup.linux-riscv64-musl.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "libc": [ + "musl" + ], + "main": "./rollup.linux-riscv64-musl.node" +} diff --git a/package.json b/package.json index 0c4968a038c..73b01220247 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "i686-pc-windows-msvc", "loongarch64-unknown-linux-gnu", "riscv64gc-unknown-linux-gnu", + "riscv64gc-unknown-linux-musl", "powerpc64le-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", From 5424b92ecd620dd708e0c873aa7c0ea7cd24bc5f Mon Sep 17 00:00:00 2001 From: fossdd Date: Fri, 15 Nov 2024 11:16:43 +0100 Subject: [PATCH 2/4] Fix CI --- .github/workflows/build-and-tests.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build-and-tests.yml b/.github/workflows/build-and-tests.yml index 23780bafb76..1c4498d2e00 100644 --- a/.github/workflows/build-and-tests.yml +++ b/.github/workflows/build-and-tests.yml @@ -186,13 +186,10 @@ jobs: - host: ubuntu-latest target: riscv64gc-unknown-linux-musl docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine - setup: | - sudo apt-get update - sudo apt-get install gcc-riscv64-linux-musl -y build: >- set -e && rustup target add riscv64gc-unknown-linux-musl && - npm run build:napi -- --release --target riscv64gc-unknown-linux-\musl + npm run build:napi -- --release --target riscv64gc-unknown-linux-musl - host: ubuntu-latest target: powerpc64le-unknown-linux-gnu setup: | From 20b34f51b680e5a05f3ed8f7567a286601f37565 Mon Sep 17 00:00:00 2001 From: leso-kn Date: Tue, 11 Mar 2025 17:47:31 +0100 Subject: [PATCH 3/4] Setup cross-build env for linux riscv64 musl --- .github/workflows/build-and-tests.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/build-and-tests.yml b/.github/workflows/build-and-tests.yml index 1c4498d2e00..86c00f47295 100644 --- a/.github/workflows/build-and-tests.yml +++ b/.github/workflows/build-and-tests.yml @@ -188,6 +188,15 @@ jobs: docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine build: >- set -e && + apk add binutils-riscv64 && + mkdir -p /sysroot-riscv64/etc/apk && + echo 'https://dl-cdn.alpinelinux.org/alpine/edge/main' > /sysroot-riscv64/etc/apk/repositories && + apk add -U --initdb --allow-untrusted --arch riscv64 --root /sysroot-riscv64 gcc musl-dev && + export RUSTFLAGS=" + -C link-args=-L$(echo /sysroot-riscv64/usr/lib/gcc/riscv64-alpine-linux-musl/*) + -C link-args=-L/sysroot-riscv64/usr/lib + -C linker=riscv64-alpine-linux-musl-ld + " && rustup target add riscv64gc-unknown-linux-musl && npm run build:napi -- --release --target riscv64gc-unknown-linux-musl - host: ubuntu-latest From d12ae31ecd41a79de1176a4836f5db37d87ccd76 Mon Sep 17 00:00:00 2001 From: leso-kn Date: Thu, 13 Mar 2025 11:11:30 +0100 Subject: [PATCH 4/4] Fix npm audit --- package-lock.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3d3b62bdc2c..178eef1cf4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -564,7 +564,6 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.26.9", "@babel/types": "^7.26.10" @@ -638,7 +637,6 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -4790,7 +4788,6 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz", "integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==", "dev": true, - "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0",