This repository was archived by the owner on Apr 7, 2026. It is now read-only.
Releases: abitofhelp/dev_container_ada
Releases · abitofhelp/dev_container_ada
v2.2.3
v2.2.2
Fixed
- Added empty
libiconv.astub in Dockerfile to satisfy-liconvat link
time. On glibc systems (Ubuntu), iconv is built into libc and there is no
separatelibiconvpackage, but GNATCOLL iconv links-liconvexplicitly. - Added
binutilspackage to Dockerfile forarcommand used to create the stub.
v2.2.1
Added
- "Embedded Board Support" section in README with board table and two
readiness tables (Alire image vs System image) showing Ada compiler and
C cross-compiler availability per target. alr/gprbuildconfiguration examples in USER_GUIDE §0.4 for all four
target/image combinations (desktop Alire, desktop System, Cortex-M7
bare-metal, Cortex-A7 Linux).
Fixed
- README badges placed on a single line for correct inline rendering.
v2.2.0
What's New
Added embedded development toolchain to both images, supporting bare-metal ARM Cortex-M and Linux ARM Cortex-A development.
Added
- ARM Cortex-M bare-metal cross-compiler (
gcc-arm-none-eabi,libnewlib-arm-none-eabi) for STM32F769I and similar boards. - ARM Cortex-A Linux cross-compiler (
gcc-arm-linux-gnueabihf,libc6-dev-armhf-cross) for STM32MP135F and similar boards. - Hardware tools:
openocd,stlink-tools,gdb-multiarch. - Embedded board support table in README and USER_GUIDE §0.4.
Embedded Board Support
| Board | SoC | Core | Runtime | Cross-compiler |
|---|---|---|---|---|
| STM32F769I Discovery | STM32F769NI | Cortex-M7 | Bare metal | arm-none-eabi-gcc |
| STM32MP135F Discovery | STM32MP135F | Cortex-A7 | Linux | arm-linux-gnueabihf-gcc |
v2.1.2
Added
- Makefile convenience aliases:
docker-pull,docker-pull-system,
podman-pull,podman-pull-system.
make docker-pull-system # pull from GHCR with docker
make docker-run-system # run itv2.1.1
Added
- Makefile
pullandpull-systemtargets that pull from GHCR and tag for
local use, somake run/make run-systemwork without building locally.
make pull-system # pulls from GHCR, tags locally
make run-system # just worksv2.1.0
Multi-Architecture Support
The system toolchain image (Dockerfile.system) now builds for both
linux/amd64 and linux/arm64 (Apple Silicon). Docker pulls the native
variant automatically.
Architecture Compatibility
| Image | Base | alr (amd64) |
alr (arm64) |
GNAT (amd64) | GNAT (arm64) |
|---|---|---|---|---|---|
Dockerfile |
Ubuntu 22.04 | Works | Fails (glibc 2.38) | Alire-managed | Not available |
Dockerfile.system |
Ubuntu 24.04 | Works | Works | gnat-13 |
gnat-13 |
Verified Test Matrix
| Image | Ubuntu VM (amd64) | macOS Intel (amd64) | MacBook Pro (arm64) |
|---|---|---|---|
dev-container-ada |
Passed | Passed | N/A (amd64 only) |
dev-container-ada-system |
Passed | Passed | Passed |
Other Changes
- Makefile: full system image target parity (run-root-system, save-system, tag-system, etc.)
- Makefile: help text reorganized by image variant with architecture info
- CI: QEMU + buildx with per-matrix platform selection
- Docs: architecture tables in README, USER_GUIDE references README
See CHANGELOG.md for the complete list.
v2.0.1
Summary
Code review fixes and polish for v2.0.0.
Fixed
- Moved
# syntax=docker/dockerfile:1.7to line 1 in both Dockerfiles so BuildKit uses the specified frontend. - Added
entrypoint.shto build context file lists in Dockerfile headers. - Removed orphan
examples/hello_ada/hello_ada.adb; added copyright header tosrc/copy. - Reject
HOST_USER=rootandHOST_UID=0in entrypoint to prevent root account modification. - Added logging to
fixup_symlinks()for toolchain relink visibility. - Fixed
alire.tomlauthor, maintainer, login, website, and "tdb" typo. - Fixed USER_GUIDE version mismatch (2.1 → 2.0.0).
Added
- Makefile targets
test-system,test-docker-system,test-podman-systemfor system-image testing. make -fusage note in README explainingCURDIRbind-mount behavior.
Changed
- Unified CI build steps into a single matrix-driven step.
- CI smoke test now matches Makefile test scripts.
Full Changelog: v2.0.0...v2.0.1
v2.0.0
What's New
Two-Dockerfile split: ship both an Alire-managed toolchain image and a system-packaged toolchain image.
Added
Dockerfile.systemfor Ubuntu 24.04 with system-packaged GNAT and GPRBuild.- Makefile targets:
build-system,build-system-no-cache,run-system. - CI matrix build for both Dockerfile variants in
docker-build.yml. - Two-job publish workflow (
publish-alire+publish-system) indocker-publish.yml. - USER_GUIDE §0 "Choosing a Dockerfile" with rationale and guidance.
- Alire configured with
gnat_externalin system image soalr builduses the system compiler without downloading toolchains.
Changed
- BREAKING: Default
Dockerfilebase image from Ubuntu 24.04 to Ubuntu 22.04, matching the platform Alire's GNAT toolchains are built on. - GitHub Actions pinned by SHA digest for supply-chain security.
- Documentation updated throughout for dual-Dockerfile structure.
Container Images
| Image | Base | Toolchain |
|---|---|---|
ghcr.io/abitofhelp/dev-container-ada:latest |
Ubuntu 22.04 | Alire-managed GNAT 15.2.1 + GPRBuild 25.0.1 |
ghcr.io/abitofhelp/dev-container-ada-system:latest |
Ubuntu 24.04 | System gnat-13 + gprbuild |
Full Changelog: v1.0.2...v2.0.0
v1.0.2
v1.0.2 — macOS UID Compatibility
Fixed
- Suppressed
useraddwarning for macOS UIDs below 1000 (e.g., UID 501). Added-K UID_MIN=100 -K UID_MAX=65534touseraddand-K GID_MIN=100 -K GID_MAX=65534togroupaddin the entrypoint.
Container Images
ghcr.io/abitofhelp/dev-container-ada:latest
ghcr.io/abitofhelp/dev-container-ada:gnat-15.2.1
ghcr.io/abitofhelp/dev-container-ada:gnat-15.2.1-gprbuild-25.0.1
ghcr.io/abitofhelp/dev-container-ada:v1.0.2