docker-pkg-build is a toolset that wraps sbuild and gbp inside Docker containers to build
Debian packages for ARM64 targets with a one-liner, without requiring the user to understand
chroots, schroot, or sbuild internals.
docker_deb_build.py # Main entry-point script (the "one-liner" wrapper)
create_data_tar.py # Helper used internally
color_logger.py # Logging utilities
Dockerfiles/
Dockerfile.arm64.<os>.<distro> # One Dockerfile per target distro
base-packages.txt # Packages installed in the Docker image layer
extra-packages.txt # Packages installed inside the build chroot
keyrings/
qsc-deb-releases.asc # Qualcomm APT repo PGP public key
sources/
<distro>/qsc-deb-releases.sources # Pre-configured Qualcomm APT source entry per distro
| Suite | OS | sbuild backend | Chroot format |
|---|---|---|---|
| noble | Ubuntu | schroot | /srv/chroot/noble (sbuild-createchroot) |
| questing | Ubuntu | schroot | /srv/chroot/questing (sbuild-createchroot) |
| resolute | Ubuntu | unshare | /root/.cache/sbuild/resolute-arm64.tar (mmdebstrap) |
| trixie | Debian | schroot | /srv/chroot/trixie (sbuild-createchroot) |
| sid | Debian | unshare | /root/.cache/sbuild/sid-arm64.tar (mmdebstrap) |
- schroot vs. unshare: Newer sbuild versions (resolute, sid) default to the unshare backend,
which expects a tarball at
/root/.cache/sbuild/<distro>-<arch>.tar, not a/srv/chroot/directory. Dockerfiles must usemmdebstrap --format=tarfor these distros. - CA certificates in chroot: The chroot tarball must include
ca-certificatesandopensslso that HTTPS APT repositories work inside the chroot at build time. - Qualcomm APT key: All chroots have the Qualcomm PGP key pre-installed at
/etc/apt/keyrings/qsc-deb-releases.ascand a matching.sourcesfile so that packages fromqartifactory-edge.qualcomm.comare available withouttrusted=yesor--extra-repo.
# Build a package for a specific distro
docker_deb_build.py -s <source-dir> -o <output-dir> -d <distro>
# Rebuild the Docker images (after changing a Dockerfile)
docker_deb_build.py -d <distro> --rebuild
# Pass an additional APT repo at build time
docker_deb_build.py -s <source-dir> -o <output-dir> -d <distro> \
-e "deb [arch=arm64 signed-by=/etc/apt/keyrings/qsc-deb-releases.asc] https://... <suite> main"- Changes to
base-packages.txtorextra-packages.txtaffect all distros. - Changes to
keyrings/orsources/affect all distros — check every.sourcesfile if updating suite names. - After any Dockerfile change, the corresponding Docker image must be rebuilt with
--rebuild. - resolute and sid: any change to the chroot content requires updating the
mmdebstrap--customize-hookor--includeflags — not a post-buildcpinto/srv/chroot/.