Hey Ludo! > What if, instead, we removed those “canonical” packages entirely from > the reference graph? Do you think that’s an option? It seems to be a better option! So, as I did remove most of the explicit references to 'canonical-packages' the only references left are implicit. A good example is "isc-dhcp", that refers to implicit canonical inputs "coreutils" and "sed" in the "dhclient-script". The attached patch fixes it. I could do the same for a few other packages and it should fix the issue. The problem is that approach is not very long-term. Maybe we should take a step back. Would it be an option to add all the canonical-packages as disallowed-references? Or could we use implicit inputs that are not rooted in the bootstrap chain? >> My idea is to define something like: >> >> (define (canonical-package* package) >> (let ((canonical >> (module-ref (resolve-interface '(gnu packages base)) >> 'canonical-package))) >> (let-system (system target) >> (if target >> package >> (canonical package))))) > > Aren’t there pieces of code that expect these things to be > records? Yes, but I was planning to change that, not a good idea after all. > Bah yes, that’s why initially I didn’t push ‘let-system’: > > https://issues.guix.gnu.org/29296#4 > > Perhaps we could avoid the expander = #f special case. Ok, I will try to fix it then. Thanks, Mathieu