canokey-qemu

Source

FROM stagex/pallet-clang-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-perl . /
COPY --from=stagex/core-make . /
COPY --from=stagex/core-zlib . /
COPY --from=stagex/user-py-jsonschema . /
COPY --from=stagex/user-py-attrs . /
COPY --from=stagex/user-py-pyrsistent . /
COPY --from=stagex/user-py-jinja2 . /
COPY --from=stagex/user-py-markupsafe . /
ADD fetch/${VERSION}.tar.gz .
COPY <<-EOF /usr/bin/git
    #!/bin/sh
    echo ${VERSION}
EOF
ADD fetch/${CANOKEY_CORE_SOURCE} .
ADD fetch/${CANOKEY_CRYPTO_SOURCE} .
ADD fetch/${MBEDTLS_SOURCE} .
ADD fetch/${LITTLEFS_SOURCE} .
ADD fetch/${TINYCBOR_SOURCE} .
RUN --network=none <<-EOF
	export CFLAGS="-fPIC -Wno-implicit-function-declaration"
	chmod +x /usr/bin/git
	mv canokey-qemu* canokey-qemu
	rm -rf canokey-qemu/canokey-core
	mv canokey-core* canokey-qemu/canokey-core
	rm -rf canokey-qemu/canokey-core/canokey-crypto
	mv canokey-crypto* canokey-qemu/canokey-core/canokey-crypto
	rm -rf canokey-qemu/canokey-core/canokey-crypto/mbedtls
	mv mbedtls* canokey-qemu/canokey-core/canokey-crypto/mbedtls
	rm -rf canokey-qemu/canokey-core/littlefs
	mv ../littlefs* canokey-qemu/canokey-core/littlefs
	rm -rf canokey-qemu/canokey-core/tinycbor
	mv tinycbor* canokey-qemu/canokey-core/tinycbor
	cd canokey-qemu
	find . -name "CMakeLists.txt" -exec sed -i 's/^cmake_minimum_required.*/cmake_minimum_required\(VERSION 4.1.2\)/g' {} \;
	sed 's/-Wdocumentation//g' -i canokey-core/canokey-crypto/mbedtls/library/CMakeLists.txt
	sed 's/-Wunused-but-set-parameter//g' -i canokey-core/canokey-crypto/mbedtls/library/CMakeLists.txt
	echo 'set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-but-set-variable -Wno-unused-but-set-parameter")' >> canokey-core/canokey-crypto/mbedtls/library/CMakeLists.txt
	cmake \
		-B build \
		-G Ninja \
		-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
		-DCMAKE_C_STANDARD=23 \
		-DCMAKE_CXX_STANDARD=17 \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib
	cmake --build build
	DESTDIR="/rootfs" cmake --install build
EOF
FROM stagex/core-filesystem AS package
COPY --from=build /rootfs/ /
Copied to clipboard!