Source
FROM stagex/pallet-gcc-cmake-busybox AS build
ARG VERSION
ARG CANOKEY_CORE_SOURCE
ARG CANOKEY_CRYPTO_SOURCE
ARG MBEDTLS_SOURCE
ARG LITTLEFS_SOURCE
ARG TINYCBOR_SOURCE
COPY --from=stagex/core-openssl . /
COPY --from=stagex/core-make . /
COPY --from=stagex/core-zlib . /
ADD fetch/${VERSION}.tar.gz .
RUN mv canokey-qemu* canokey-qemu
ADD fetch/${CANOKEY_CORE_SOURCE} .
RUN rm -rf canokey-qemu/canokey-core
RUN mv canokey-core* canokey-qemu/canokey-core
ADD fetch/${CANOKEY_CRYPTO_SOURCE} .
RUN rm -rf canokey-qemu/canokey-core/canokey-crypto
RUN mv canokey-crypto* canokey-qemu/canokey-core/canokey-crypto
ADD fetch/${MBEDTLS_SOURCE} .
RUN rm -rf canokey-qemu/canokey-core/canokey-crypto/mbedtls
RUN mv mbedtls* canokey-qemu/canokey-core/canokey-crypto/mbedtls
ADD fetch/${LITTLEFS_SOURCE} .
RUN rm -rf canokey-qemu/canokey-core/littlefs
RUN mv littlefs* canokey-qemu/canokey-core/littlefs
ADD fetch/${TINYCBOR_SOURCE} .
RUN rm -rf canokey-qemu/canokey-core/tinycbor
RUN mv tinycbor* canokey-qemu/canokey-core/tinycbor
COPY <<-EOF /usr/bin/git
#!/bin/sh
echo ${VERSION}
EOF
RUN chmod +x /usr/bin/git
RUN --network=none <<-EOF
set -eux
cd canokey-qemu
mkdir build/
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib ..
make -j "$(nproc)"
make DESTDIR=/rootfs install
EOF
FROM stagex/core-filesystem AS package
COPY --from=build /rootfs/ /