unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] profiles: Add gtk-icon-themes hook.
@ 2015-05-13  9:12 宋文武
  2015-05-21 16:33 ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: 宋文武 @ 2015-05-13  9:12 UTC (permalink / raw)
  To: guix-devel

* guix/profiles.scm (gtk-icon-themes): New function.
  (%default-profile-hooks): Add it.
---
 guix/profiles.scm | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 78 insertions(+), 1 deletion(-)

diff --git a/guix/profiles.scm b/guix/profiles.scm
index 11d9bf0..33cdb28 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -573,12 +574,88 @@ MANIFEST.  Single-file bundles are required by programs such as Git and Lynx."
                     #:modules '((guix build utils))
                     #:local-build? #t))
 
+(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 icon theme."
+  (define (entry-lookup-gtk+ store entry)
+    "Return the GTK+ package or store path referenced by the manifest ENTRY, or
+#f if not referenced."
+    ;; Find GTK+ in a list of packages.
+    (define (by-packages packages)
+      (find (lambda (package)
+              (equal? "gtk+" (package-name package)))
+            packages))
+
+    ;; Find GTK+ in a list of store paths.
+    (define (by-paths paths)
+      (find (lambda (path)
+              (equal? "gtk+"
+                      (package-name->name+version
+                       (store-path-package-name path))))
+            paths))
+
+    (match (manifest-entry-item entry)
+      ((? package? package)
+       (by-packages (delete-duplicates
+                     (map cadr (package-transitive-inputs package)))))
+      ((? string? path)
+       (by-paths (references store path)))))
+
+  (define (manifest-lookup-gtk+ store manifest)
+    "Return the first GTK+ package or store path referenced by MANIFEST entries,
+or #f if not referenced by any entry."
+    (any (cut entry-lookup-gtk+ store <>) (manifest-entries manifest)))
+
+  (define gtk+
+    (with-store store
+      (manifest-lookup-gtk+ store manifest)))
+
+  (define build
+    #~(begin
+        (use-modules (guix build utils)
+                     (guix build union)
+                     (srfi srfi-26)
+                     (ice-9 ftw))
+        (let* ((destdir  (string-append #$output "/share/icons"))
+               (icons    (filter file-exists?
+                                 (map (cut string-append <> "/share/icons")
+                                      '#$(manifest-inputs manifest))))
+               (update-icon-cache (string-append
+                                   #+gtk+ "/bin/gtk-update-icon-cache")))
+
+          ;; XXX: Should move to (guix build utils).
+          (define ensure-writable-directory
+            (@@ (guix build profiles) ensure-writable-directory))
+
+          ;; Union all the icons.
+          (mkdir-p (string-append #$output "/share"))
+          (union-build destdir icons)
+          ;; Update the 'icon-theme.cache' file for each icon theme.
+          (for-each
+           (lambda (theme)
+             (let ((dir (string-append #$output "/share/icons/" theme)))
+               (ensure-writable-directory dir)
+               (system* update-icon-cache "-t" dir)))
+           (scandir destdir (negate (cut member <> '("." ".."))))))))
+
+  ;; Don't run the hook when there's nothing to do.
+  (if gtk+
+      (gexp->derivation "gtk-icon-themes" build
+                        #:modules '((guix build utils)
+                                    (guix build union)
+                                    (guix build profiles)
+                                    (guix search-paths)
+                                    (guix records))
+                        #:local-build? #t)
+      #f))
+
 (define %default-profile-hooks
   ;; This is the list of derivation-returning procedures that are called by
   ;; default when making a non-empty profile.
   (list info-dir-file
         ghc-package-cache-file
-        ca-certificate-bundle))
+        ca-certificate-bundle
+        gtk-icon-themes))
 
 (define* (profile-derivation manifest
                              #:key
-- 
2.2.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] profiles: Add gtk-icon-themes hook.
  2015-05-13  9:12 [PATCH] profiles: Add gtk-icon-themes hook 宋文武
@ 2015-05-21 16:33 ` Ludovic Courtès
  2015-05-22  6:43   ` 宋文武
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2015-05-21 16:33 UTC (permalink / raw)
  To: 宋文武; +Cc: guix-devel

宋文武 <iyzsong@gmail.com> skribis:

> * guix/profiles.scm (gtk-icon-themes): New function.
>   (%default-profile-hooks): Add it.

[...]

> +(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 icon theme."
> +  (define (entry-lookup-gtk+ store entry)
> +    "Return the GTK+ package or store path referenced by the manifest ENTRY, or
> +#f if not referenced."

Please use a comment rather than a docstring for inner defines.

> +    ;; Find GTK+ in a list of packages.
> +    (define (by-packages packages)
> +      (find (lambda (package)
> +              (equal? "gtk+" (package-name package)))
> +            packages))
> +
> +    ;; Find GTK+ in a list of store paths.
> +    (define (by-paths paths)
> +      (find (lambda (path)
> +              (equal? "gtk+"
> +                      (package-name->name+version
> +                       (store-path-package-name path))))
> +            paths))
> +
> +    (match (manifest-entry-item entry)
> +      ((? package? package)
> +       (by-packages (delete-duplicates
> +                     (map cadr (package-transitive-inputs package)))))
> +      ((? string? path)
> +       (by-paths (references store path)))))

This procedure must be turned into a monadic procedure along these
lines (note: by-packages -> find-among-packages, and by-paths ->
find-among-store-items):

  (define (lookup-gtk+ entry)
    (define (find-among-packages ...) ...)
    (define (find-among-store-items ...) ...)

    (with-monad %store-monad
      (match (manifest-entry-item entry)
        ((? package? package)
         (match (package-transitive-inputs package)
           (((labels packages . _) ...)
            (return (find-among-packages packages)))))
        ((? string? item)
         (mlet %store-monad ((refs (references* item)))
           (return (find-among-store-items refs)))))))

> +  (define (manifest-lookup-gtk+ store manifest)
> +    "Return the first GTK+ package or store path referenced by MANIFEST entries,
> +or #f if not referenced by any entry."
> +    (any (cut entry-lookup-gtk+ store <>) (manifest-entries manifest)))

This becomes:

  (anym %store-monad
        (cut entry-lookup-gtk+ store <>)
        (manifest-entries manifest))

> +  (define gtk+
> +    (with-store store
> +      (manifest-lookup-gtk+ store manifest)))

Opening an extra connection like this is Very Bad.  ;-)
This is addressed by the above.

So this becomes:


  (mlet %store-monad ((gtk+ (lookup-gtk+ manifest)))
    (define build
      #~(...))

    ...)

Could you send an updated patch?

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] profiles: Add gtk-icon-themes hook.
  2015-05-21 16:33 ` Ludovic Courtès
@ 2015-05-22  6:43   ` 宋文武
  2015-05-27  7:50     ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: 宋文武 @ 2015-05-22  6:43 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 3118 bytes --]

Ludovic Courtès <ludo@gnu.org> writes:

> 宋文武 <iyzsong@gmail.com> skribis:
>
>> * guix/profiles.scm (gtk-icon-themes): New function.
>>   (%default-profile-hooks): Add it.
>
> [...]
>
>> +(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 icon theme."
>> +  (define (entry-lookup-gtk+ store entry)
>> +    "Return the GTK+ package or store path referenced by the manifest ENTRY, or
>> +#f if not referenced."
>
> Please use a comment rather than a docstring for inner defines.
OK.
>
>> +    ;; Find GTK+ in a list of packages.
>> +    (define (by-packages packages)
>> +      (find (lambda (package)
>> +              (equal? "gtk+" (package-name package)))
>> +            packages))
>> +
>> +    ;; Find GTK+ in a list of store paths.
>> +    (define (by-paths paths)
>> +      (find (lambda (path)
>> +              (equal? "gtk+"
>> +                      (package-name->name+version
>> +                       (store-path-package-name path))))
>> +            paths))
>> +
>> +    (match (manifest-entry-item entry)
>> +      ((? package? package)
>> +       (by-packages (delete-duplicates
>> +                     (map cadr (package-transitive-inputs package)))))
>> +      ((? string? path)
>> +       (by-paths (references store path)))))
>
> This procedure must be turned into a monadic procedure along these
> lines (note: by-packages -> find-among-packages, and by-paths ->
> find-among-store-items):
>
>   (define (lookup-gtk+ entry)
>     (define (find-among-packages ...) ...)
>     (define (find-among-store-items ...) ...)
>
>     (with-monad %store-monad
>       (match (manifest-entry-item entry)
>         ((? package? package)
>          (match (package-transitive-inputs package)
>            (((labels packages . _) ...)
>             (return (find-among-packages packages)))))
>         ((? string? item)
>          (mlet %store-monad ((refs (references* item)))
>            (return (find-among-store-items refs)))))))
>
DONE.
>> +  (define (manifest-lookup-gtk+ store manifest)
>> +    "Return the first GTK+ package or store path referenced by MANIFEST entries,
>> +or #f if not referenced by any entry."
>> +    (any (cut entry-lookup-gtk+ store <>) (manifest-entries manifest)))
>
> This becomes:
>
>   (anym %store-monad
>         (cut entry-lookup-gtk+ store <>)
>         (manifest-entries manifest))
This doesn't work, 'anym' need a list of monadic values, I endup with:

  (anym %store-monad
        (lambda (x) x) ; any better idea?
        (map entry-lookup-gtk+ (manifest-entries manifest)))
>
>> +  (define gtk+
>> +    (with-store store
>> +      (manifest-lookup-gtk+ store manifest)))
>
> Opening an extra connection like this is Very Bad.  ;-)
> This is addressed by the above.
>
> So this becomes:
>
>
>   (mlet %store-monad ((gtk+ (lookup-gtk+ manifest)))
>     (define build
>       #~(...))
>
>     ...)
>
> Could you send an updated patch?
Here it is:

[-- Attachment #2: 0001-profiles-Add-gtk-icon-themes-hook.patch --]
[-- Type: text/x-patch, Size: 5230 bytes --]

From 96381da9c8680e2060e1c13c59698c635498094b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
Date: Sat, 9 May 2015 12:45:39 +0800
Subject: [PATCH] profiles: Add gtk-icon-themes hook.

* guix/profiles.scm (gtk-icon-themes): New function.
  (%default-profile-hooks): Add it.
---
 guix/profiles.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 80 insertions(+), 2 deletions(-)

diff --git a/guix/profiles.scm b/guix/profiles.scm
index 9cb226e..d386d80 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -586,12 +587,89 @@ MANIFEST.  Single-file bundles are required by programs such as Git and Lynx."
                     #:modules '((guix build utils))
                     #:local-build? #t))
 
+(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 icon theme."
+  ;; Return as a monadic value the GTK+ package or store path referenced by the
+  ;; manifest ENTRY, or #f if not referenced.
+  (define (entry-lookup-gtk+ entry)
+    (define (find-among-packages packages)
+      (find (lambda (package)
+              (equal? "gtk+" (package-name package)))
+            packages))
+
+    (define (find-among-store-items items)
+      (find (lambda (item)
+              (equal? "gtk+"
+                      (package-name->name+version
+                       (store-path-package-name item))))
+            items))
+
+    ;; XXX: put into (guix store).
+    (define references*
+      (store-lift references))
+
+    (with-monad %store-monad
+      (match (manifest-entry-item entry)
+        ((? package? package)
+         (match (package-transitive-inputs package)
+           (((labels packages . _) ...)
+            (return (find-among-packages packages)))))
+        ((? string? item)
+         (mlet %store-monad ((refs (references* item)))
+           (return (find-among-store-items refs)))))))
+
+  (define (manifest-lookup-gtk+ manifest)
+    (anym %store-monad
+          (lambda (x) x)
+          (map entry-lookup-gtk+ (manifest-entries manifest))))
+
+  (mlet %store-monad ((gtk+ (manifest-lookup-gtk+ manifest)))
+    (define build
+      #~(begin
+          (use-modules (guix build utils)
+                       (guix build union)
+                       (srfi srfi-26)
+                       (ice-9 ftw))
+          (let* ((destdir  (string-append #$output "/share/icons"))
+                 (icondirs (filter file-exists?
+                                   (map (cut string-append <> "/share/icons")
+                                        '#$(manifest-inputs manifest))))
+                 (update-icon-cache (string-append
+                                     #+gtk+ "/bin/gtk-update-icon-cache")))
+            ;; XXX: Should move to (guix build utils).
+            (define ensure-writable-directory
+              (@@ (guix build profiles) ensure-writable-directory))
+
+            ;; Union all the icons.
+            (mkdir-p (string-append #$output "/share"))
+            (union-build destdir icondirs)
+            ;; Update the 'icon-theme.cache' file for each icon theme.
+            (for-each
+             (lambda (theme)
+               (let ((dir (string-append #$output "/share/icons/" theme)))
+                 (ensure-writable-directory dir)
+                 (system* update-icon-cache "-t" dir)))
+             (scandir destdir (negate (cut member <> '("." ".."))))))))
+
+    ;; Don't run the hook when there's nothing to do.
+    (if gtk+
+        (gexp->derivation "gtk-icon-themes" build
+                          #:modules '((guix build utils)
+                                      (guix build union)
+                                      (guix build profiles)
+                                      (guix search-paths)
+                                      (guix records))
+                          #:local-build? #t)
+        (return #f))))
+
 (define %default-profile-hooks
   ;; This is the list of derivation-returning procedures that are called by
   ;; default when making a non-empty profile.
   (list info-dir-file
         ghc-package-cache-file
-        ca-certificate-bundle))
+        ca-certificate-bundle
+        gtk-icon-themes))
 
 (define* (profile-derivation manifest
                              #:key
@@ -606,7 +684,7 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc."
                                                           (hook manifest))
                                                         hooks)))))
     (define inputs
-      (append (map gexp-input extras)
+      (append (map gexp-input (filter (lambda (x) x) extras))
               (manifest-inputs manifest)))
 
     (define builder
-- 
2.2.1


[-- Attachment #3: Type: text/plain, Size: 152 bytes --]


And I have to modify 'profile-derivation' to do an extra filter for
'extras', because 'gtk-icon-themes' could return a monadic '#f'.
Any better idea?


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] profiles: Add gtk-icon-themes hook.
  2015-05-22  6:43   ` 宋文武
@ 2015-05-27  7:50     ` Ludovic Courtès
  2015-05-27 13:11       ` 宋文武
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2015-05-27  7:50 UTC (permalink / raw)
  To: 宋文武; +Cc: guix-devel

宋文武 <iyzsong@gmail.com> skribis:

[...]

>>> +  (define (manifest-lookup-gtk+ store manifest)
>>> +    "Return the first GTK+ package or store path referenced by MANIFEST entries,
>>> +or #f if not referenced by any entry."
>>> +    (any (cut entry-lookup-gtk+ store <>) (manifest-entries manifest)))
>>
>> This becomes:
>>
>>   (anym %store-monad
>>         (cut entry-lookup-gtk+ store <>)
>>         (manifest-entries manifest))
> This doesn't work, 'anym' need a list of monadic values, I endup with:
>
>   (anym %store-monad
>         (lambda (x) x) ; any better idea?
>         (map entry-lookup-gtk+ (manifest-entries manifest)))

Hmm...  Indeed, ‘anym’, ‘mapm’, and ‘foldm’ had the “wrong” signature:
they took a list of monadic values instead of a list of regular values
as one would normally expect (see
<http://members.chello.nl/hjgtuyl/tourdemonad.html> for instance.)
Fixed in b734996.

So now you can really write:

  (anym %store-monad entry-lookup-gtk+ (manifest-entries manifest))

> From 96381da9c8680e2060e1c13c59698c635498094b Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
> Date: Sat, 9 May 2015 12:45:39 +0800
> Subject: [PATCH] profiles: Add gtk-icon-themes hook.
>
> * guix/profiles.scm (gtk-icon-themes): New function.
>   (%default-profile-hooks): Add it.

[...]

> @@ -606,7 +684,7 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc."
>                                                            (hook manifest))
>                                                          hooks)))))
>      (define inputs
> -      (append (map gexp-input extras)
> +      (append (map gexp-input (filter (lambda (x) x) extras))
>                (manifest-inputs manifest)))

The fact that HOOK could return either a monadic value or a regular
value was indeed bad style.  I’ve fixed it in 07eaecf, so now this part
of the patch is no longer needed.

OK to push with these two updates.

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] profiles: Add gtk-icon-themes hook.
  2015-05-27  7:50     ` Ludovic Courtès
@ 2015-05-27 13:11       ` 宋文武
  2015-05-27 15:25         ` Ludovic Courtès
  2015-05-28  3:25         ` Mark H Weaver
  0 siblings, 2 replies; 8+ messages in thread
From: 宋文武 @ 2015-05-27 13:11 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Ludovic Courtès <ludo@gnu.org> writes:

[...]
> The fact that HOOK could return either a monadic value or a regular
> value was indeed bad style.  I’ve fixed it in 07eaecf, so now this part
> of the patch is no longer needed.
Use 'gexp?' to filter hooks do not work, I fix it to use 'derivation?'.
>
> OK to push with these two updates.
Done, thanks!

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] profiles: Add gtk-icon-themes hook.
  2015-05-27 13:11       ` 宋文武
@ 2015-05-27 15:25         ` Ludovic Courtès
  2015-05-28  3:25         ` Mark H Weaver
  1 sibling, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2015-05-27 15:25 UTC (permalink / raw)
  To: 宋文武; +Cc: guix-devel

宋文武 <iyzsong@gmail.com> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
> [...]
>> The fact that HOOK could return either a monadic value or a regular
>> value was indeed bad style.  I’ve fixed it in 07eaecf, so now this part
>> of the patch is no longer needed.
> Use 'gexp?' to filter hooks do not work, I fix it to use 'derivation?'.

Oops, indeed.

>> OK to push with these two updates.
> Done, thanks!

Thank you,
Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] profiles: Add gtk-icon-themes hook.
  2015-05-27 13:11       ` 宋文武
  2015-05-27 15:25         ` Ludovic Courtès
@ 2015-05-28  3:25         ` Mark H Weaver
  2015-05-28 12:42           ` Ludovic Courtès
  1 sibling, 1 reply; 8+ messages in thread
From: Mark H Weaver @ 2015-05-28  3:25 UTC (permalink / raw)
  To: 宋文武; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 20256 bytes --]

I'm no longer able to build my user profile, apparently due to a problem
in the gtk-icon-themes hook.  Using guix from commit 6a669bda51acb,
built after 'make clean', here's what I get with "guix package -u":

--8<---------------cut here---------------start------------->8---
warning: collision encountered: /gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/icon-theme.cache /gnu/store/bnc2g372kzjwral03ppvs1jxk6qxawag-transmission-2.84/share/icons/hicolor/icon-theme.cache /gnu/store/9632alpzmgd7kplm70gmz4ir4wwjlrqb-evince-3.6.1/share/icons/hicolor/icon-theme.cache /gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/hicolor/icon-theme.cache /gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/icon-theme.cache /gnu/store/frzyzz6yax9ijqkmsvi2s4y9q8icvp0x-inkscape-0.91/share/icons/hicolor/icon-theme.cache 
warning: arbitrarily choosing /gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/icon-theme.cache
`/gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/icon-theme.cache' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/icon-theme.cache'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/128x128/apps/vlc.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/128x128/apps/vlc.png'
`/gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/128x128/apps/emacs.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/128x128/apps/emacs.png'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/128x128/apps/vlc-xmas.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/128x128/apps/vlc-xmas.png'
`/gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/hicolor/64x64' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/64x64'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/22x22/apps/gtk3-widget-factory.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/gtk3-widget-factory.png'
`/gnu/store/bnc2g372kzjwral03ppvs1jxk6qxawag-transmission-2.84/share/icons/hicolor/22x22/apps/transmission.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/transmission.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/22x22/apps/gtk3-demo.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/gtk3-demo.png'
`/gnu/store/frzyzz6yax9ijqkmsvi2s4y9q8icvp0x-inkscape-0.91/share/icons/hicolor/22x22/apps/inkscape.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/inkscape.png'
`/gnu/store/a3ny0d9m9krrs0k3l7rbl40m7aqxm627-gimp-2.8.14/share/icons/hicolor/22x22/apps/gimp.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/gimp.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/22x22/apps/gtk3-demo-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/gtk3-demo-symbolic.symbolic.png'
`/gnu/store/9632alpzmgd7kplm70gmz4ir4wwjlrqb-evince-3.6.1/share/icons/hicolor/22x22/apps/evince.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/evince.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/22x22/apps/gtk3-widget-factory-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/gtk3-widget-factory-symbolic.symbolic.png'
`/gnu/store/vb2cwz2br522y9kl6q046b2njrmpipc4-audacity-2.1.0/share/icons/hicolor/22x22/apps/audacity.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/audacity.png'
`/gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/hicolor/22x22/apps/dconf-editor.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/22x22/apps/dconf-editor.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/48x48/apps/gtk3-widget-factory.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/gtk3-widget-factory.png'
`/gnu/store/bnc2g372kzjwral03ppvs1jxk6qxawag-transmission-2.84/share/icons/hicolor/48x48/apps/transmission.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/transmission.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/48x48/apps/gtk3-demo.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/gtk3-demo.png'
`/gnu/store/frzyzz6yax9ijqkmsvi2s4y9q8icvp0x-inkscape-0.91/share/icons/hicolor/48x48/apps/inkscape.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/inkscape.png'
`/gnu/store/a3ny0d9m9krrs0k3l7rbl40m7aqxm627-gimp-2.8.14/share/icons/hicolor/48x48/apps/gimp.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/gimp.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/48x48/apps/gtk3-demo-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/gtk3-demo-symbolic.symbolic.png'
`/gnu/store/9632alpzmgd7kplm70gmz4ir4wwjlrqb-evince-3.6.1/share/icons/hicolor/48x48/apps/evince.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/evince.png'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/48x48/apps/vlc.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/vlc.png'
`/gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/48x48/apps/emacs.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/emacs.png'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/48x48/apps/vlc-xmas.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/vlc-xmas.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/48x48/apps/gtk3-widget-factory-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/gtk3-widget-factory-symbolic.symbolic.png'
`/gnu/store/vb2cwz2br522y9kl6q046b2njrmpipc4-audacity-2.1.0/share/icons/hicolor/48x48/apps/audacity.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/audacity.png'
`/gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/hicolor/48x48/apps/dconf-editor.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/48x48/apps/dconf-editor.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/32x32/apps/gtk3-widget-factory.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/gtk3-widget-factory.png'
`/gnu/store/bnc2g372kzjwral03ppvs1jxk6qxawag-transmission-2.84/share/icons/hicolor/32x32/apps/transmission.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/transmission.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/32x32/apps/gtk3-demo.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/gtk3-demo.png'
`/gnu/store/frzyzz6yax9ijqkmsvi2s4y9q8icvp0x-inkscape-0.91/share/icons/hicolor/32x32/apps/inkscape.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/inkscape.png'
`/gnu/store/a3ny0d9m9krrs0k3l7rbl40m7aqxm627-gimp-2.8.14/share/icons/hicolor/32x32/apps/gimp.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/gimp.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/32x32/apps/gtk3-demo-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/gtk3-demo-symbolic.symbolic.png'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/32x32/apps/vlc.xpm' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/vlc.xpm'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/32x32/apps/vlc.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/vlc.png'
`/gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/32x32/apps/emacs.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/emacs.png'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/32x32/apps/vlc-xmas.xpm' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/vlc-xmas.xpm'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/32x32/apps/gtk3-widget-factory-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/gtk3-widget-factory-symbolic.symbolic.png'
`/gnu/store/vb2cwz2br522y9kl6q046b2njrmpipc4-audacity-2.1.0/share/icons/hicolor/32x32/apps/audacity.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/audacity.png'
`/gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/hicolor/32x32/apps/dconf-editor.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/32x32/apps/dconf-editor.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/24x24/apps/gtk3-widget-factory.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/gtk3-widget-factory.png'
`/gnu/store/bnc2g372kzjwral03ppvs1jxk6qxawag-transmission-2.84/share/icons/hicolor/24x24/apps/transmission.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/transmission.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/24x24/apps/gtk3-demo.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/gtk3-demo.png'
`/gnu/store/frzyzz6yax9ijqkmsvi2s4y9q8icvp0x-inkscape-0.91/share/icons/hicolor/24x24/apps/inkscape.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/inkscape.png'
`/gnu/store/a3ny0d9m9krrs0k3l7rbl40m7aqxm627-gimp-2.8.14/share/icons/hicolor/24x24/apps/gimp.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/gimp.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/24x24/apps/gtk3-demo-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/gtk3-demo-symbolic.symbolic.png'
`/gnu/store/9632alpzmgd7kplm70gmz4ir4wwjlrqb-evince-3.6.1/share/icons/hicolor/24x24/apps/evince.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/evince.png'
`/gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/24x24/apps/emacs.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/emacs.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/24x24/apps/gtk3-widget-factory-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/gtk3-widget-factory-symbolic.symbolic.png'
`/gnu/store/vb2cwz2br522y9kl6q046b2njrmpipc4-audacity-2.1.0/share/icons/hicolor/24x24/apps/audacity.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/audacity.png'
`/gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/hicolor/24x24/apps/dconf-editor.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/24x24/apps/dconf-editor.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/16x16/apps/gtk3-widget-factory.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/gtk3-widget-factory.png'
`/gnu/store/bnc2g372kzjwral03ppvs1jxk6qxawag-transmission-2.84/share/icons/hicolor/16x16/apps/transmission.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/transmission.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/16x16/apps/gtk3-demo.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/gtk3-demo.png'
`/gnu/store/frzyzz6yax9ijqkmsvi2s4y9q8icvp0x-inkscape-0.91/share/icons/hicolor/16x16/apps/inkscape.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/inkscape.png'
`/gnu/store/a3ny0d9m9krrs0k3l7rbl40m7aqxm627-gimp-2.8.14/share/icons/hicolor/16x16/apps/gimp.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/gimp.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/16x16/apps/gtk3-demo-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/gtk3-demo-symbolic.symbolic.png'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/16x16/apps/vlc.xpm' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/vlc.xpm'
`/gnu/store/9632alpzmgd7kplm70gmz4ir4wwjlrqb-evince-3.6.1/share/icons/hicolor/16x16/apps/evince.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/evince.png'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/16x16/apps/vlc.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/vlc.png'
`/gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/16x16/apps/emacs.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/emacs.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/16x16/apps/gtk3-widget-factory-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/gtk3-widget-factory-symbolic.symbolic.png'
`/gnu/store/vb2cwz2br522y9kl6q046b2njrmpipc4-audacity-2.1.0/share/icons/hicolor/16x16/apps/audacity.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/audacity.png'
`/gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/hicolor/16x16/apps/dconf-editor.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/16x16/apps/dconf-editor.png'
`/gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/scalable/mimetypes' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/scalable/mimetypes'
`/gnu/store/bnc2g372kzjwral03ppvs1jxk6qxawag-transmission-2.84/share/icons/hicolor/scalable/apps/transmission.svg' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/scalable/apps/transmission.svg'
`/gnu/store/c1a7k1jk85iz6a0mzfg0y1mk2cwc41dg-emacs-24.5/share/icons/hicolor/scalable/apps/emacs.svg' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/scalable/apps/emacs.svg'
`/gnu/store/vb2cwz2br522y9kl6q046b2njrmpipc4-audacity-2.1.0/share/icons/hicolor/scalable/apps/audacity.svg' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/scalable/apps/audacity.svg'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/256x256/apps/gtk3-widget-factory.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/gtk3-widget-factory.png'
`/gnu/store/bnc2g372kzjwral03ppvs1jxk6qxawag-transmission-2.84/share/icons/hicolor/256x256/apps/transmission.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/transmission.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/256x256/apps/gtk3-demo.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/gtk3-demo.png'
`/gnu/store/frzyzz6yax9ijqkmsvi2s4y9q8icvp0x-inkscape-0.91/share/icons/hicolor/256x256/apps/inkscape.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/inkscape.png'
`/gnu/store/a3ny0d9m9krrs0k3l7rbl40m7aqxm627-gimp-2.8.14/share/icons/hicolor/256x256/apps/gimp.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/gimp.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/256x256/apps/gtk3-demo-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/gtk3-demo-symbolic.symbolic.png'
`/gnu/store/9632alpzmgd7kplm70gmz4ir4wwjlrqb-evince-3.6.1/share/icons/hicolor/256x256/apps/evince.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/evince.png'
`/gnu/store/pwagwsp4rkkb9z2m8lz3y4frva1c06r8-vlc-2.2.0/share/icons/hicolor/256x256/apps/vlc.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/vlc.png'
`/gnu/store/98i5q9xbzyjmlgbz7zii9pnl5ysqisrq-gtk+-3.16.3/share/icons/hicolor/256x256/apps/gtk3-widget-factory-symbolic.symbolic.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/gtk3-widget-factory-symbolic.symbolic.png'
`/gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/hicolor/256x256/apps/dconf-editor.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/hicolor/256x256/apps/dconf-editor.png'
`/gnu/store/hd4vv8bi5c068avg12fsd80ivhdlddll-dconf-0.22.0/share/icons/HighContrast' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/HighContrast'
`/gnu/store/084b2y8cnm0xwqkcbrq9h56cpiw1wl7g-abiword-2.8.6/share/icons/abiword_48.png' ~> `/gnu/store/jzqx85n6wnxs8h43vlqp0dfa0p551hsr-gtk-icon-themes/share/icons/abiword_48.png'
gtk-update-icon-cache: Cache file created successfully.
Backtrace:
In ice-9/boot-9.scm:
 157: 11 [catch #t #<catch-closure 8ca580> ...]
In unknown file:
   ?: 10 [apply-smob/1 #<catch-closure 8ca580>]
In ice-9/boot-9.scm:
  63: 9 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 8 [eval # #]
In ice-9/boot-9.scm:
2401: 7 [save-module-excursion #<procedure 8e7800 at ice-9/boot-9.scm:4045:3 ()>]
4050: 6 [#<procedure 8e7800 at ice-9/boot-9.scm:4045:3 ()>]
1724: 5 [%start-stack load-stack #<procedure 8fa600 at ice-9/boot-9.scm:4041:10 ()>]
1729: 4 [#<procedure 8fd9c0 ()>]
In unknown file:
   ?: 3 [primitive-load "/gnu/store/lzw4b84kd5fm8j4cgl3jlb5k38v93ql4-gtk-icon-themes-builder"]
In ice-9/boot-9.scm:
 775: 2 [for-each #<procedure 1105300 at ice-9/eval.scm:416:20 (a)> #]
In ice-9/eval.scm:
 432: 1 [eval # #]
In unknown file:
   ?: 0 [scm-error wrong-type-arg "for-each" "Not a list: ~S" (#f) #f]

ERROR: In procedure scm-error:
ERROR: In procedure for-each: Not a list: #f
builder for `/gnu/store/1bdkfkr9g76ibvhxisr5cw5xs9mqq5qg-gtk-icon-themes.drv' failed with exit code 1
cannot build derivation `/gnu/store/d8mysjhb66kmbwfdvicv5gzvhrr49xxl-profile.drv': 1 dependencies couldn't be built
guix package: error: build failed: build of `/gnu/store/d8mysjhb66kmbwfdvicv5gzvhrr49xxl-profile.drv' failed
--8<---------------cut here---------------end--------------->8---

I've also attached a copy of ~/.guix-profile/manifest before running
this update command.

Any idea what's going wrong here?

      Mark



[-- Attachment #2: Guix manifest before failed "guix package -u" attempt --]
[-- Type: application/x-gzip, Size: 7043 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] profiles: Add gtk-icon-themes hook.
  2015-05-28  3:25         ` Mark H Weaver
@ 2015-05-28 12:42           ` Ludovic Courtès
  0 siblings, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2015-05-28 12:42 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guix-devel

Mark H Weaver <mhw@netris.org> skribis:

>    ?: 3 [primitive-load "/gnu/store/lzw4b84kd5fm8j4cgl3jlb5k38v93ql4-gtk-icon-themes-builder"]
> In ice-9/boot-9.scm:
>  775: 2 [for-each #<procedure 1105300 at ice-9/eval.scm:416:20 (a)> #]
> In ice-9/eval.scm:
>  432: 1 [eval # #]
> In unknown file:
>    ?: 0 [scm-error wrong-type-arg "for-each" "Not a list: ~S" (#f) #f]
>
> ERROR: In procedure scm-error:
> ERROR: In procedure for-each: Not a list: #f

Indeed, I had the same issue.  Fixed by 1ba4796.

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-05-28 12:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-13  9:12 [PATCH] profiles: Add gtk-icon-themes hook 宋文武
2015-05-21 16:33 ` Ludovic Courtès
2015-05-22  6:43   ` 宋文武
2015-05-27  7:50     ` Ludovic Courtès
2015-05-27 13:11       ` 宋文武
2015-05-27 15:25         ` Ludovic Courtès
2015-05-28  3:25         ` Mark H Weaver
2015-05-28 12:42           ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).