Dig / dnsutils missing from arm core snap

In our Rocket.Chat snap we have a check that runs on configure that makes sure the domain you provided actually has DNS records before proceeding. This mostly just aids the end user. Preventing them from running into the letsencrypt rate limit.

The problem is when we brought this change to armhf and arm64 the core snap seems to be missing the dnsutils package. The dig command specifically is available in the amd64 package but not the armhf / arm64.

One of the beauties of snap is that if I develop based on the core I can count on the dependencies in the core to be available everywhere. So I have a very stable base.

Is this an intentional lack of dnsutils being installed in the core snap for the arm architecture? Or is this a problem we can rectify?

I think someone from @store could answer this.

Sounds like a bug in core. I’ll point the right people at this.

Actually, no: there is no dig in core for amd64:

~$ snap download --arch=amd64 core
Fetching snap "core"
Fetching assertions for "core"
Install the snap with:
   snap ack core_7917.assert
   snap install core_7917.snap
~$ unsquashfs -ls core_7917.snap | grep bin/dig
~$

Further, after snap download --arch=armfh core to get core_7919.snap,

~$ diff <( unsquashfs -ls core_7917.snap | grep /bin/ ) <( unsquashfs -ls core_7919.snap | grep /bin/ )
247d246
< squashfs-root/usr/bin/grub-editenv
252d250
< squashfs-root/usr/bin/i386
398d395
< squashfs-root/usr/bin/resizecons
528d524
< squashfs-root/usr/bin/x86_64

i.e. the only binaries that are different between armhf and amd64 are architecture-specific ones. (the output with 7920, the arm64 core, is identical).

Finally, note that in both amd64 and armhf versions of rocketchat-server you are shipping dig:

~$ unsquashfs -l rocketchat-server_1416.snap | grep bin/dig
squashfs-root/usr/bin/dig
~$ unsquashfs -l rocketchat-server_1375.snap | grep bin/dig
squashfs-root/usr/bin/dig

so I’m not sure exactly what you’re seeing that has led you to believe what you stated.