diff --git a/docker/build-all.sh b/docker/build-all.sh index 87e63e023..999d6ef26 100755 --- a/docker/build-all.sh +++ b/docker/build-all.sh @@ -1,6 +1,6 @@ #!/bin/bash -for os in archlinux debian-12-bookworm debian-12-bookworm-arm64 debian-12-bookworm-armhf debian-13-trixie debian-14-forky fedora-41 fedora-42 fedora-43 homebrew kali opensuse-leap opensuse-tumbleweed parrot-core-latest ubuntu-24.04 ubuntu-24.10 ubuntu-25.04; do +for os in archlinux debian-13-trixie debian-13-trixie-arm64 debian-13-trixie-armhf debian-14-forky fedora-41 fedora-42 fedora-43 homebrew kali opensuse-leap opensuse-tumbleweed parrot-core-latest ubuntu-24.04 ubuntu-24.10 ubuntu-25.04; do echo -e "\n\n================= Building for $os ======================\n" ( cd $os && ../build.sh ) done diff --git a/docker/debian-13-trixie-arm64/Dockerfile b/docker/debian-13-trixie-arm64/Dockerfile new file mode 100644 index 000000000..e65dd9fab --- /dev/null +++ b/docker/debian-13-trixie-arm64/Dockerfile @@ -0,0 +1,33 @@ +FROM arm64v8/debian:trixie-slim + +ENV LANG=C +ENV DEBIAN_FRONTEND=noninteractive +# qtbase5-dev skipped +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get dist-upgrade -y && \ + apt-get install -y --no-install-recommends git ca-certificates build-essential cmake pkg-config libreadline-dev gcc-arm-none-eabi libnewlib-dev libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev sudo && \ + apt-get clean + +RUN apt-get install -y opencl-dev && \ + apt-get clean + +# uv +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ + +# Create rrg user +RUN useradd -ms /bin/bash rrg +RUN passwd -d rrg +ARG UART_GID +# dialout group may already exist on another numeric ID than on host +RUN if [ -n "${UART_GID}" ]; then \ + groupadd -g ${UART_GID} mydialout || true; \ + usermod -aG ${UART_GID} rrg; \ + fi +RUN printf 'rrg ALL=(ALL) ALL\n' | tee -a /etc/sudoers + +# switch to user rrg within the docker image... +USER root +WORKDIR "/home/rrg" + +CMD ["/bin/bash"] diff --git a/docker/debian-13-trixie-arm64/README.md b/docker/debian-13-trixie-arm64/README.md new file mode 100644 index 000000000..f1a21e9c9 --- /dev/null +++ b/docker/debian-13-trixie-arm64/README.md @@ -0,0 +1,20 @@ +# Notes to install corss-platform support +``` +sudo apt install qemu-user qemu-user-binfmt binfmt-support +``` +# Notes to run tests + +The script is to be run in proxmark root folder inside the docker env. + +``` +docker/debian-13-trixie-arm64/run_tests.sh; +``` + +Or if you want to run single test, + +``` +sudo apt update && sudo apt upgrade -y +git config --global --add safe.directory /home/rrg/proxmark3 +make clean; make -j +tools/pm3_tests.sh --long +``` diff --git a/docker/debian-13-trixie-arm64/docker_conf.inc b/docker/debian-13-trixie-arm64/docker_conf.inc new file mode 100644 index 000000000..b785494aa --- /dev/null +++ b/docker/debian-13-trixie-arm64/docker_conf.inc @@ -0,0 +1,2 @@ +DOCKER_IMAGE=pm3-debian-trixie-arm64:1.0 +DOCKER_PLATFORM="--platform linux/arm64" diff --git a/docker/debian-13-trixie-arm64/run_tests.sh b/docker/debian-13-trixie-arm64/run_tests.sh new file mode 100755 index 000000000..b73d51a11 --- /dev/null +++ b/docker/debian-13-trixie-arm64/run_tests.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# This script is to be run from proxmark root folder inside the docker env +# docker/debian-13-trixie-arm64/run_tests.sh; + +# Check that we are not running as root +if [ "$EUID" -eq 0 ]; then + echo "Error: This script should not be run as root" >&2 + exit 1 +fi + +# sudo not supported in this docker image, update packages before running as rrg user +# sudo apt update && sudo apt upgrade -y +git config --global --add safe.directory /home/rrg/proxmark3 +tools/release_tests.sh diff --git a/docker/debian-13-trixie-armhf/Dockerfile b/docker/debian-13-trixie-armhf/Dockerfile new file mode 100644 index 000000000..a69bdec5c --- /dev/null +++ b/docker/debian-13-trixie-armhf/Dockerfile @@ -0,0 +1,38 @@ +FROM arm32v7/debian:trixie-slim + +ENV LANG=C +ENV DEBIAN_FRONTEND=noninteractive +# qtbase5-dev skipped +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get dist-upgrade -y && \ + apt-get install -y --no-install-recommends git ca-certificates build-essential cmake pkg-config libreadline-dev gcc-arm-none-eabi libnewlib-dev libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev sudo && \ + apt-get clean + +RUN apt-get install -y opencl-dev && \ + apt-get clean + +# uv not available +#COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ +RUN apt-get install -y pipx && \ + apt-get clean + +# Create rrg user +RUN useradd -ms /bin/bash rrg +RUN passwd -d rrg +ARG UART_GID +# dialout group may already exist on another numeric ID than on host +RUN if [ -n "${UART_GID}" ]; then \ + groupadd -g ${UART_GID} mydialout || true; \ + usermod -aG ${UART_GID} rrg; \ + fi +RUN printf 'rrg ALL=(ALL) ALL\n' | tee -a /etc/sudoers + +USER rrg +WORKDIR "/home/rrg" +RUN pipx install uv + +# switch to user rrg within the docker image... +USER root + +CMD ["/bin/bash"] diff --git a/docker/debian-13-trixie-armhf/README.md b/docker/debian-13-trixie-armhf/README.md new file mode 100644 index 000000000..0eab1c9c9 --- /dev/null +++ b/docker/debian-13-trixie-armhf/README.md @@ -0,0 +1,20 @@ +# Notes to install corss-platform support +``` +sudo apt install qemu-user qemu-user-binfmt binfmt-support +``` +# Notes to run tests + +The script is to be run in proxmark root folder inside the docker env. + +``` +docker/debian-13-trixie-armhf/run_tests.sh; +``` + +Or if you want to run single test, + +``` +sudo apt update && sudo apt upgrade -y +git config --global --add safe.directory /home/rrg/proxmark3 +make clean; make -j +tools/pm3_tests.sh --long +``` diff --git a/docker/debian-13-trixie-armhf/docker_conf.inc b/docker/debian-13-trixie-armhf/docker_conf.inc new file mode 100644 index 000000000..f44700643 --- /dev/null +++ b/docker/debian-13-trixie-armhf/docker_conf.inc @@ -0,0 +1,2 @@ +DOCKER_IMAGE=pm3-debian-trixie-armhf:1.0 +DOCKER_PLATFORM="--platform linux/arm/v7" diff --git a/docker/debian-13-trixie-armhf/run_tests.sh b/docker/debian-13-trixie-armhf/run_tests.sh new file mode 100755 index 000000000..7c45cdc0d --- /dev/null +++ b/docker/debian-13-trixie-armhf/run_tests.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# This script is to be run from proxmark root folder inside the docker env +# docker/debian-13-trixie-armhf/run_tests.sh; + +# Check that we are not running as root +if [ "$EUID" -eq 0 ]; then + echo "Error: This script should not be run as root" >&2 + exit 1 +fi + +# sudo not supported in this docker image, update packages before running as rrg user +# sudo apt update && sudo apt upgrade -y + +git config --global --add safe.directory /home/rrg/proxmark3 +tools/release_tests.sh