diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index a854b708..a55bb847 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -4,11 +4,11 @@ ARG SDK=acap-native-sdk ARG UBUNTU_VERSION=24.04 # Keep in sync with `install-sdk.sh`. ARG VERSION=12.1.0 -ARG BASE_IMAGE=debian:bookworm-20240423 +ARG BASE_IMAGE=debian:trixie-20260223 -FROM --platform=linux/amd64 ${REPO}/${SDK}:${VERSION}-aarch64-ubuntu${UBUNTU_VERSION} AS sdk-aarch64 -FROM --platform=linux/amd64 ${REPO}/${SDK}:${VERSION}-armv7hf-ubuntu${UBUNTU_VERSION} AS sdk-armv7hf -FROM --platform=linux/amd64 ${BASE_IMAGE} +FROM ${REPO}/${SDK}:${VERSION}-aarch64-ubuntu${UBUNTU_VERSION} AS sdk-aarch64 +FROM ${REPO}/${SDK}:${VERSION}-armv7hf-ubuntu${UBUNTU_VERSION} AS sdk-armv7hf +FROM ${BASE_IMAGE} COPY --from=sdk-aarch64 /opt/axis/acapsdk/axis-acap-manifest-tools /opt/axis/acapsdk/axis-acap-manifest-tools COPY --from=sdk-aarch64 /opt/axis/acapsdk/environment-setup-cortexa53-crypto-poky-linux /opt/axis/acapsdk/environment-setup-cortexa53-crypto-poky-linux diff --git a/.devhost/install-rust.sh b/.devhost/install-rust.sh index c0b7baf8..18bacfe8 100755 --- a/.devhost/install-rust.sh +++ b/.devhost/install-rust.sh @@ -1,12 +1,24 @@ #!/usr/bin/env sh set -eux -curl \ - --output /tmp/rustup-init \ - "https://static.rust-lang.org/rustup/archive/1.26.0/x86_64-unknown-linux-gnu/rustup-init" +ARCH=$(uname -m) +case "$ARCH" in + x86_64) + URL="https://static.rust-lang.org/rustup/archive/1.26.0/x86_64-unknown-linux-gnu/rustup-init" + SHA256="0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db" + ;; + aarch64) + URL="https://static.rust-lang.org/rustup/archive/1.26.0/aarch64-unknown-linux-gnu/rustup-init" + SHA256="673e336c81c65e6b16dcdede33f4cc9ed0f08bde1dbe7a935f113605292dc800" + ;; + *) + echo "Unsupported architecture: $ARCH" >&2 + exit 1 + ;; +esac -echo "0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db /tmp/rustup-init" \ -| sha256sum -c - +curl --output /tmp/rustup-init "$URL" +echo "$SHA256 /tmp/rustup-init" | sha256sum -c - chmod +x /tmp/rustup-init diff --git a/README.md b/README.md index 5000de7e..63948057 100644 --- a/README.md +++ b/README.md @@ -57,14 +57,19 @@ app can be built using only `docker`: ```sh -docker build --file .devcontainer/Dockerfile --tag acap-rs . +docker build \ + --file .devcontainer/Dockerfile \ + --platform linux/amd64 \ + --tag acap-rs \ + . docker run \ --interactive \ --rm \ --tty \ + --platform linux/amd64 \ --user $(id -u):$(id -g) \ - --volume $(pwd):$(pwd) \ - --workdir $(pwd) \ + --volume $(pwd):/workspaces/acap-rs \ + --workdir /workspaces/acap-rs \ acap-rs \ make build AXIS_PACKAGE=hello_world ``` diff --git a/apps-aarch64.checksum b/apps-aarch64.checksum index b03fa947..1148aaf9 100644 --- a/apps-aarch64.checksum +++ b/apps-aarch64.checksum @@ -1,18 +1,18 @@ -8fff02275de11d5f3aba0e4aba4ab162a489200c target-aarch64/acap/Challenge_Build_Tools_1_0_0_all.eap -a21721df06c91115d99f718353586ee8eaa0356e target-aarch64/acap/axoverlay_example_0_0_0_aarch64.eap -bfc22269e9bf53b6a2526009413e0e8c281b3d5b target-aarch64/acap/axparameter_example_0_0_0_aarch64.eap -ff26e764367290e803fbe96f32d2f89c613aad30 target-aarch64/acap/axstorage_example_0_0_0_aarch64.eap -fa337bdd8d797f9b66602630b5ce7675c3d1350f target-aarch64/acap/bounding_box_example_0_0_0_aarch64.eap -cb773a1f92cbf3b18a3869ec386c6794d2daf57b target-aarch64/acap/consume_analytics_metadata_0_0_0_aarch64.eap -16310c12bb50db85d69c744d13c93ebf0c628953 target-aarch64/acap/embedded_web_page_0_0_0_aarch64.eap -f037f30b1459ae4db14336a51618db3bb5f2ff89 target-aarch64/acap/event_subscribe_1_0_0_aarch64.eap -60d4574e576c4762d1b51bdbe53f416d4a36f093 target-aarch64/acap/hello_world_0_0_0_aarch64.eap -c8d98b2b6478a073a8f1893fcf8698fb204180b1 target-aarch64/acap/inspect_env_0_0_0_aarch64.eap -bfb74d7d675b6adcd48fb0be3e542fcfdb0c888e target-aarch64/acap/licensekey_handler_0_0_0_aarch64.eap -6fe4c136fb1ee7c3ec9fbd82240505402e7d4e60 target-aarch64/acap/object_detection_1_0_0_aarch64.eap -0c0711cbf6c20699909d712175ef4a806df3720b target-aarch64/acap/reverse_proxy_0_0_0_aarch64.eap -1cb74047887821a199fe18fb146475f73c67d29e target-aarch64/acap/send_event_1_0_0_aarch64.eap -e01115210714bb7b83d89fd5f645d997b6bcae1d target-aarch64/acap/subscribe_to_event_1_0_0_aarch64.eap -9df8dead66b245aa19d3aafa758871118b8cc25f target-aarch64/acap/using_a_build_script_0_0_0_aarch64.eap -2d373306d132d68f7c3755bb93eb45b906347ae2 target-aarch64/acap/vapix_access_0_0_0_aarch64.eap -3cdc345e9a3db8c78a6866e80ced733a61f8307f target-aarch64/acap/vdoencodeclient_1_0_0_aarch64.eap +27c2f1c9ccb02741fd7c412793ced13550fd0ee3 target-aarch64/acap/Challenge_Build_Tools_1_0_0_all.eap +5250ef2bd726138fc5f242596587156eab5e64f4 target-aarch64/acap/axoverlay_example_0_0_0_aarch64.eap +36bb02351514cdab558e2dff77762bf8a9080590 target-aarch64/acap/axparameter_example_0_0_0_aarch64.eap +4ab515a362d34c42a1723bfedfbab583c5ebe2fc target-aarch64/acap/axstorage_example_0_0_0_aarch64.eap +7d29034492ff57f3b46e876618090b7ef6de1c2f target-aarch64/acap/bounding_box_example_0_0_0_aarch64.eap +09946b3dd2a772c7be146b121b99343c550f3789 target-aarch64/acap/consume_analytics_metadata_0_0_0_aarch64.eap +e2cab11965f638c6c2409bdbc835b12cf6d84aef target-aarch64/acap/embedded_web_page_0_0_0_aarch64.eap +2d49a1c142043b300c9ce21b45aeb58356166d7f target-aarch64/acap/event_subscribe_1_0_0_aarch64.eap +a12f184fdcacfaf4c1d3b9f11f2dddc64ec21f14 target-aarch64/acap/hello_world_0_0_0_aarch64.eap +d4d351038d3af3d995ac5137f070afe7b56763ef target-aarch64/acap/inspect_env_0_0_0_aarch64.eap +babe2fd2009f796efe6529d240e8e81368c1982a target-aarch64/acap/licensekey_handler_0_0_0_aarch64.eap +387a1b17f14ec4103a582956ced1a9fe12fd0b91 target-aarch64/acap/object_detection_1_0_0_aarch64.eap +ee33a597448238ce7e483d590aad51945dd92637 target-aarch64/acap/reverse_proxy_0_0_0_aarch64.eap +e2f518d019878a90fd75e0fa5c381cd076e7a850 target-aarch64/acap/send_event_1_0_0_aarch64.eap +031e059b2b3d8a528b04befc557d7978fca4587b target-aarch64/acap/subscribe_to_event_1_0_0_aarch64.eap +a6e0ee05e0ea5b0e76308b6d91b06b61fb2d9029 target-aarch64/acap/using_a_build_script_0_0_0_aarch64.eap +61c0f96d5388ebb6a46a80f0fd2f57b86143a2f6 target-aarch64/acap/vapix_access_0_0_0_aarch64.eap +8f9dea1da7a39c1c37b99d6ab1a33d0abe0d643f target-aarch64/acap/vdoencodeclient_1_0_0_aarch64.eap diff --git a/apps-aarch64.filesize b/apps-aarch64.filesize index b7d79e05..0c20c747 100644 --- a/apps-aarch64.filesize +++ b/apps-aarch64.filesize @@ -2,17 +2,17 @@ 3215 target-aarch64/acap/axoverlay_example_0_0_0_aarch64.eap 2865 target-aarch64/acap/axparameter_example_0_0_0_aarch64.eap 2937 target-aarch64/acap/axstorage_example_0_0_0_aarch64.eap -1597 target-aarch64/acap/bounding_box_example_0_0_0_aarch64.eap -1480 target-aarch64/acap/consume_analytics_metadata_0_0_0_aarch64.eap +1598 target-aarch64/acap/bounding_box_example_0_0_0_aarch64.eap +1481 target-aarch64/acap/consume_analytics_metadata_0_0_0_aarch64.eap 899 target-aarch64/acap/embedded_web_page_0_0_0_aarch64.eap -3543 target-aarch64/acap/event_subscribe_1_0_0_aarch64.eap +3544 target-aarch64/acap/event_subscribe_1_0_0_aarch64.eap 1406 target-aarch64/acap/hello_world_0_0_0_aarch64.eap -1440 target-aarch64/acap/inspect_env_0_0_0_aarch64.eap +1441 target-aarch64/acap/inspect_env_0_0_0_aarch64.eap 1430 target-aarch64/acap/licensekey_handler_0_0_0_aarch64.eap 1408 target-aarch64/acap/object_detection_1_0_0_aarch64.eap 10315 target-aarch64/acap/reverse_proxy_0_0_0_aarch64.eap 3437 target-aarch64/acap/send_event_1_0_0_aarch64.eap -3417 target-aarch64/acap/subscribe_to_event_1_0_0_aarch64.eap +3418 target-aarch64/acap/subscribe_to_event_1_0_0_aarch64.eap 899 target-aarch64/acap/using_a_build_script_0_0_0_aarch64.eap -11327 target-aarch64/acap/vapix_access_0_0_0_aarch64.eap +11330 target-aarch64/acap/vapix_access_0_0_0_aarch64.eap 1407 target-aarch64/acap/vdoencodeclient_1_0_0_aarch64.eap