diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 81839a3..401c501 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -37,7 +37,6 @@ confinement: strict platforms: amd64: arm64: - riscv64: apps: ecrou: @@ -86,17 +85,25 @@ parts: libkrunfw: plugin: nil - # libkrunfw5 ships only in stonking universe today, - # not in any LTS base, so the .deb comes straight from the pool. - # The library embeds its kernel and has no external symbols, so - # it runs on the base's older glibc. + # libkrunfw5 ships only in stonking universe today, not in any LTS + # base, so the .deb comes straight from the pool — one flavor per + # target arch. The library embeds its kernel and has no external + # symbols, so it runs on the base's older glibc. The pool carries + # no riscv64 build, and libkrun does not target riscv64, so the + # snap builds for amd64 and arm64 only. build-packages: [curl] override-pull: | + arch="$CRAFT_ARCH_BUILD_FOR" + case "$arch" in + amd64) digest="924cd545080aaf5da66740d12a51b7a5cbd9a5c0b502d21cbef9bc82bf1c8b6b" ;; + arm64) digest="9570e82feac79fd41a6a9674cc02a9b2f09948ac30ad480d05fc73a957843e56" ;; + *) echo "no libkrunfw5 build for $arch in the Ubuntu pool" >&2; exit 1 ;; + esac curl -fL -o libkrunfw5.deb \ - https://archive.ubuntu.com/ubuntu/pool/universe/libk/libkrunfw/libkrunfw5_5.5.0+ds-1_amd64.deb - echo "924cd545080aaf5da66740d12a51b7a5cbd9a5c0b502d21cbef9bc82bf1c8b6b libkrunfw5.deb" | sha256sum -c + "https://archive.ubuntu.com/ubuntu/pool/universe/libk/libkrunfw/libkrunfw5_5.5.0+ds-1_${arch}.deb" + echo "$digest libkrunfw5.deb" | sha256sum -c override-build: | dpkg -x libkrunfw5.deb unpack - install -Dm755 unpack/usr/lib/x86_64-linux-gnu/libkrunfw.so.5.5.0 \ + install -Dm755 "unpack/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libkrunfw.so.5.5.0" \ "$CRAFT_PART_INSTALL/lib/libkrunfw.so.5.5.0" ln -s libkrunfw.so.5.5.0 "$CRAFT_PART_INSTALL/lib/libkrunfw.so.5"