Subject: Re: bug#63043: texlive-font-maps.drv build failure when profiles lacks texlive-* packages

From: Ludovic Courtès <[email-masked]>
Date: Sun, 30 Apr 2023 22:51:37 +0200

Hi,

Maxim Cournoyer <[email-masked]> skribis:

>> There were cases (like GDK pixbuf, GLib schemas, and all that) where the idea
>> was to take whichever glib/GDK we’d find in the dependency graph, and
>> pick the command we need from it.  That way, we wouldn’t introduce any
>> additional dependency.  That was the reasoning.
>>
>> Thinking about, this particular case might be easier: we can make things
>> consistent like so:

[...]

>> +    (if (and texlive-base (pair? texlive-inputs))
>>          (gexp->derivation "texlive-font-maps" build
>>                            #:substitutable? #f
>>                            #:local-build? #t
>>
>>
>> That way, the hook only fire if we have ‘texlive-base’ (somewhere in the
>> graph) *and* we have texlive-* packages in the manifest.
>
> That is equivalent, but it doesn't address the core problem in my
> opinion.  There's no use to run hooks for things which aren't propagated
> at the level of the profile, I think.  If texlive-base in is the
> profile, the person wants to use tex and friends.  But if it's wrapped
> by some package deep down, we shouldn't care.
>
> I see it the same way as when using libraries and compilers in a
> profile; the compiler (consumer) needs to be present else no search path
> is created.
>
> Does it make sense?

I agree with the reasoning; I think it doesn’t apply to the GLib schemas
and GDK pixbuf caches though.

For TeX Live font maps, maybe it applies, though I’m not entirely sure
(I wouldn’t be surprised if things other than ‘texlive-base’ are
consumers of font maps).  Plus, since the patch I proposed is simple,
I’m inclined to just do that.

Thoughts?

Ludo’.