IRC channel logs

2020-05-27.log

back to list of logs

<marusich>I'm reading the commencement.scm code and it seems to me that there is a circular dependency, but I know there must not be, or Guix wouldn't work, so I am wondering if somebody can explain to me what I am missing.
<marusich>Consider glibc-final. It appears to inherit glibc (provided by (gnu packages base)), which seems to mean it will be using gnu-build-system, which seems to mean it that the %final-inputs will be implicitly added when the package is (converted to a bag and) built. However, how can this be? The %final-inputs contains glibc-final itself, which seems circular. I must be missing something.
<marusich>Looking at the list of inputs produced by (bag-direct-inputs (package->bag glibc-final)), I see that various inputs appear to have been overridden which would otherwise have been implicit inputs of gnu-build-system (such as "gcc"), so I suppose that is why there is no circular dependency, but I cannot see how this comes to be.
<marusich>I can see how the use of helper procedures like package-with-explicit-inputs (or the procedures that use it, such as with-boot0) might cause a package like glibc-final to use a different set of inputs instead of the usual %final-inputs. However, I don't see any code that makes it obvious that package-with-explicit-inputs is being used on glibc-final. What am I missing?
<marusich>I would also understand what's going on, I think, if glibc-final explicitly declared #:implicit-inputs? #f in its package arguments, but it doesn't.
<marusich>If someone knows the answer, I'd really appreciate it if you could email me at cmmarusich@gmail.com, since it's eating me alive that I can't figure it out!
<janneke>marusich: ah, it's coded a bit implicitly...look
<janneke>glibc-final has:
<janneke>(arguments
<janneke> ...
<janneke> ,@(package-arguments glibc-final-with-bootstrap-bash)))))
<janneke>and glibc-final-with-bootstrap-bash has: (arguments `(#:guile ,%bootstrap-guile #:implicit-inputs? #f ...
<janneke>
*janneke mails this to them too
<janneke>thanks for worrying about this, marusich!
***tazjin is now known as benry
***benry is now known as tazjin