Mark H Weaver <m...@netris.org> writes:

> 宋文武 <iyzs...@gmail.com> writes:
>
>> * guix/profiles.scm (gtk-icon-themes): Use 'gtk-update-icon-cacnhe' from
>> the "bin" output of gtk+ package.
>> ---
>>  guix/profiles.scm | 21 +++++++++++++++------
>>  1 file changed, 15 insertions(+), 6 deletions(-)
>>
>> diff --git a/guix/profiles.scm b/guix/profiles.scm
>> index db807a8..9c2dbba 100644
>> --- a/guix/profiles.scm
>> +++ b/guix/profiles.scm
>> @@ -642,7 +642,18 @@ MANIFEST.  Single-file bundles are required by programs 
>> such as Git and Lynx."
>>  (define (gtk-icon-themes manifest)
>>    "Return a derivation that unions all icon themes from manifest entries and
>>  creates the GTK+ 'icon-theme.cache' file for each theme."
>> -  (mlet %store-monad ((gtk+ (manifest-lookup-package manifest "gtk+")))
>> +  (define gtk+  ; lazy reference
>> +    (module-ref (resolve-interface '(gnu packages gtk)) 'gtk+))
>> +
>> +  (mlet %store-monad ((%gtk+ (manifest-lookup-package manifest "gtk+"))
>> +                      ;; XXX: Can't use gtk-update-icon-cache corresponding
>> +                      ;; to the gtk+ referenced by 'manifest'.  Because
>> +                      ;; '%gtk+' can be either a package or store path, and
>> +                      ;; there's no way to get the "bin" output for the 
>> later.
>> +                      (gtk-update-icon-cache
>> +                       -> #~(string-append #+gtk+:bin
>> +                                           "/bin/gtk-update-icon-cache")))
>
> Hmm.  Would this cause 'gtk+' to become a dependency for building any
> profile, even if it contains no graphical programs?

No, it does only run when the profile contains gtk+ (with or without
this patch).  But with this patch, it will use the latest deployed
gtk+:bin instead of the gtk+ referenced by the profile.

Reply via email to