Skip to content

Commit 4307bca

Browse files
committed
fix: make canonical app build deterministic
1 parent 317fac0 commit 4307bca

3 files changed

Lines changed: 13 additions & 5 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
/target
2+
.env
3+
.env.fish
24
sequencer.db
35
sequencer.db-shm
46
sequencer.db-wal

examples/canonical-app/Dockerfile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,13 @@ RUN echo "${TOOLS_SHA512} /tmp/tools.deb" | sha512sum -c - \
1616
# alpine:3.22.2 (riscv64/alpine)
1717
FROM riscv64/alpine@sha256:372839ff152f938e12282226fb5f9ddaef72f9662dcadbf9dd0de5ce287c694e
1818

19+
ARG ALPINE_MAIN_REPOSITORY=https://dl-cdn.alpinelinux.org/alpine/v3.22/main
20+
ARG LIBGCC_VERSION=14.2.0-r6
21+
1922
# Add libgcc for Rust
20-
RUN apk add --no-cache libgcc
23+
RUN apk add --no-cache \
24+
--repository="${ALPINE_MAIN_REPOSITORY}" \
25+
"libgcc=${LIBGCC_VERSION}"
2126

2227
# Copy `cartesi-init`
2328
COPY --from=extractor --chmod=755 /tmp/out/usr/sbin/cartesi-init /usr/sbin/cartesi-init

examples/canonical-app/justfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
set shell := ["bash", "-euo", "pipefail", "-c"]
22

33
out_dir := "out"
4+
source_date_epoch := "0"
45
linux_kernel := out_dir + "/linux.bin"
56
rootfs_tar := out_dir + "/canonical-rootfs.tar"
67
rootfs_ext2 := out_dir + "/canonical-rootfs.ext2"
@@ -18,21 +19,21 @@ build-dapp: build-dapp-devnet
1819

1920
build-dapp-devnet:
2021
mkdir -p {{out_dir}}
21-
CROSS_CONFIG=Cross.toml DOCKER_DEFAULT_PLATFORM=linux/amd64 cross build --package canonical-app --bin canonical-app-devnet --target riscv64gc-unknown-linux-musl --release
22+
SOURCE_DATE_EPOCH={{source_date_epoch}} CROSS_CONFIG=Cross.toml DOCKER_DEFAULT_PLATFORM=linux/amd64 cross build --package canonical-app --bin canonical-app-devnet --target riscv64gc-unknown-linux-musl --release
2223
cp ../../target/riscv64gc-unknown-linux-musl/release/canonical-app-devnet {{dapp_binary_devnet}}
2324
cp {{dapp_binary_devnet}} {{dapp_binary}}
2425

2526
build-dapp-sepolia:
2627
mkdir -p {{out_dir}}
27-
CROSS_CONFIG=Cross.toml DOCKER_DEFAULT_PLATFORM=linux/amd64 cross build --package canonical-app --bin canonical-app-sepolia --target riscv64gc-unknown-linux-musl --release
28+
SOURCE_DATE_EPOCH={{source_date_epoch}} CROSS_CONFIG=Cross.toml DOCKER_DEFAULT_PLATFORM=linux/amd64 cross build --package canonical-app --bin canonical-app-sepolia --target riscv64gc-unknown-linux-musl --release
2829
cp ../../target/riscv64gc-unknown-linux-musl/release/canonical-app-sepolia {{dapp_binary_sepolia}}
2930
cp {{dapp_binary_sepolia}} {{dapp_binary}}
3031

3132
build-rootfs: build-rootfs-devnet
3233

3334
build-rootfs-devnet: build-dapp-devnet
3435
mkdir -p {{out_dir}}
35-
docker buildx build \
36+
SOURCE_DATE_EPOCH={{source_date_epoch}} docker buildx build \
3637
--platform linux/riscv64 \
3738
--output type=tar,dest={{rootfs_tar}} \
3839
--file Dockerfile \
@@ -41,7 +42,7 @@ build-rootfs-devnet: build-dapp-devnet
4142

4243
build-rootfs-sepolia: build-dapp-sepolia
4344
mkdir -p {{out_dir}}
44-
docker buildx build \
45+
SOURCE_DATE_EPOCH={{source_date_epoch}} docker buildx build \
4546
--platform linux/riscv64 \
4647
--output type=tar,dest={{rootfs_tar}} \
4748
--file Dockerfile \

0 commit comments

Comments
 (0)