Information from an arm64 system:
| $ uname -m
| aarch64
| $ dpkg --print-architecture
| arm64
Puppet's facter tool (providing us the ${::architecture} variable)
doesn't know anything about Debian's arm64 architecture though:
| $ facter | grep -e aarch -e arm
| kernelrelease => 4.19.0-8-arm64
| architecture => "aarch64",
| hardware => "aarch64",
| platform => "aarch64-linux-gnu",
When setting up a Jenkins job with an architecture axes set to "aarch64",
this fails with:
| [...]
| + sudo DIST= ARCH=aarch64 cowbuilder --create --basepath /var/cache/pbuilder/base-buster-aarch64.cow --distribution buster --debootstrap qemu-debootstrap --architecture aarch64 --debootstrapopts --arch --debootstrapopts aarch64 --debootstrapopts --variant=buildd --configfile=/tmp/tmp.Q4PvmyzOJB --hookdir /usr/share/jenkins-debian-glue/pbuilder-hookdir/
| I: Invoking pbuilder
| I: forking: pbuilder create --debootstrap qemu-debootstrap --debootstrapopts --arch --debootstrapopts aarch64 --debootstrapopts --variant=buildd --configfile /tmp/tmp.Q4PvmyzOJB --hookdir /usr/share/jenkins-debian-glue/pbuilder-hookdir/ --buildplace /var/cache/pbuilder/base-buster-aarch64.cow --mirror http://cdn-aws.deb.debian.org/debian --architecture aarch64 --distribution buster --no-targz --extrapackages ' eatmydata cowdancer'
| W: /root/.pbuilderrc does not exist
| I: Running in no-targz mode
| I: Distribution is buster.
| I: Current time: Tue Apr 14 09:17:13 UTC 2020
| I: pbuilder-time-stamp: 1586855833
| I: Building the build environment
| I: running qemu-debootstrap
| /usr/sbin/qemu-debootstrap
| E: Sorry, I don't know how to support arch
| E: qemu-debootstrap failed
| [...]
Instead we need to have an architecture axes being set to "arm64".
Same problem obviously exists with other archs, like mips64el vs mips64
(as reported in https://github.com/mika/jenkins-debian-glue/issues/208).
By adding our own fact we can set up the appropriate architecture
variable as needed by our build toolchain.
Closes: https://github.com/mika/jenkins-debian-glue/issues/208