[dotnet core] build for linux-musl-arm64 (#1174)

* Adding aarch64 build

* Removing workflow_dispatch

* Re-adding x64

* Disable libgcrypt hash - #1173

* Adding sudo to gcrypt disable - #1173

* Remove sudo, put gcrypt disable before building source list - #1173

* Adding linux-musl-arm64 build to NuGet package - #1174

* Explain the gcrypt configuration hack
This commit is contained in:
bfren 2022-08-15 15:46:14 +01:00 committed by Frank Denis
parent 1cfba584db
commit a0503b5c24
2 changed files with 37 additions and 0 deletions

View File

@ -163,6 +163,31 @@ jobs:
name: build-linux-musl-x64 name: build-linux-musl-x64
path: .libsodium-build/lib/libsodium.so path: .libsodium-build/lib/libsodium.so
build-linux-musl-arm64:
runs-on: ubuntu-latest
container:
image: alpine:3.15
steps:
- name: Set up build environment
run: |
apk update
apk add alpine-sdk ca-certificates
- uses: actions/checkout@v1
- name: configure
run: ./configure --disable-dependency-tracking --prefix=$PWD/.libsodium-build --host=aarch64-linux-gnu
- name: make
run: make
- name: make check
run: make check
- name: make install
run: make install
- name: strip
run: strip --strip-all .libsodium-build/lib/libsodium.so
- uses: actions/upload-artifact@v2
with:
name: build-linux-musl-arm64
path: .libsodium-build/lib/libsodium.so
build-macos-x64: build-macos-x64:
runs-on: macos-11 runs-on: macos-11
steps: steps:
@ -203,6 +228,7 @@ jobs:
- build-linux-glibc-arm - build-linux-glibc-arm
- build-linux-glibc-arm64 - build-linux-glibc-arm64
- build-linux-musl - build-linux-musl
- build-linux-musl-arm64
- build-macos-x64 - build-macos-x64
- build-macos-arm64 - build-macos-arm64
container: container:
@ -237,6 +263,10 @@ jobs:
with: with:
name: build-linux-musl-x64 name: build-linux-musl-x64
path: .libsodium-pack/runtimes/linux-musl-x64/native/ path: .libsodium-pack/runtimes/linux-musl-x64/native/
- uses: actions/download-artifact@v2
with:
name: build-linux-musl-arm64
path: .libsodium-pack/runtimes/linux-musl-arm64/native/
- uses: actions/download-artifact@v2 - uses: actions/download-artifact@v2
with: with:
name: build-osx-x64 name: build-osx-x64
@ -332,6 +362,12 @@ jobs:
run: | run: |
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
# On virtualization systems such as the one used by WSL2, the ARM crypto extensions
# don't work as expected. As a result, installing Ubuntu 20.04 fails during integrity
# checks. As a workaround, the following command disables hardware acceleration for
# gcrypt, which the apt-get command relies on.
mkdir -p /etc/gcrypt && echo all >> /etc/gcrypt/hwf.deny
cat <<-EOF | sudo tee /etc/apt/sources.list.d/multiarch.list >/dev/null cat <<-EOF | sudo tee /etc/apt/sources.list.d/multiarch.list >/dev/null
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal main restricted deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal main restricted
deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates main restricted deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates main restricted

View File

@ -31,6 +31,7 @@
<Content Include="runtimes/linux-arm64/native/libsodium.so" PackagePath="runtimes/linux-arm64/native/" /> <Content Include="runtimes/linux-arm64/native/libsodium.so" PackagePath="runtimes/linux-arm64/native/" />
<Content Include="runtimes/linux-arm/native/libsodium.so" PackagePath="runtimes/linux-arm/native/" /> <Content Include="runtimes/linux-arm/native/libsodium.so" PackagePath="runtimes/linux-arm/native/" />
<Content Include="runtimes/linux-musl-x64/native/libsodium.so" PackagePath="runtimes/linux-musl-x64/native/" /> <Content Include="runtimes/linux-musl-x64/native/libsodium.so" PackagePath="runtimes/linux-musl-x64/native/" />
<Content Include="runtimes/linux-musl-arm64/native/libsodium.so" PackagePath="runtimes/linux-musl-arm64/native/" />
<Content Include="runtimes/osx-x64/native/libsodium.dylib" PackagePath="runtimes/osx-x64/native/" /> <Content Include="runtimes/osx-x64/native/libsodium.dylib" PackagePath="runtimes/osx-x64/native/" />
<Content Include="runtimes/osx-arm64/native/libsodium.dylib" PackagePath="runtimes/osx-arm64/native/" /> <Content Include="runtimes/osx-arm64/native/libsodium.dylib" PackagePath="runtimes/osx-arm64/native/" />
</ItemGroup> </ItemGroup>