[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Canonical-packages restoration.
From: |
Mathieu Othacehe |
Subject: |
Re: Canonical-packages restoration. |
Date: |
Wed, 10 Jun 2020 11:35:49 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
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 <package>
> 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
patch
Description: Binary data