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.