>> Your chroot is broken. perl-base is marked as essential, so it can not >> be missing:
I see - it's not missing in the policy sense - it's missing in my chroot. The disconnect here is around what Essential: yes actually means in terms of dependency declaration. The Debian policy manual 3.8 states, "Packages may assume that functionality provided by essential packages is always available without declaring explicit dependencies". So rather than declaring the dep in DEBIAN/control, the Essential flag is the dependency declaration. It's an implicit dep enforced at a different level (ie policy level rather than package level). It feels like a dependency gap because the failure is not obvious and only surfaces at trigger time. But the answer to "why doesn't the dependency graph pull in perl-base?" is that Essential packages are intentionally excluded from the dependency graph because they are always assumed to exist, i.e. Debian relies on additional tooling to fulfil the Essential dependencies for all systems, rather than the individual package metadata. Since, mmdebstrap's custom variant explicitly opts out of the Essential guarantee, it places the responsibility of specifying all packages on the user. I did not realise the full extent of the concept of 'policy level reliance on dependencies', but now I do. -- Matt

