all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: 51428@debbugs.gnu.org
Cc: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Subject: [bug#51428] [PATCH core-update-frozen 17/20] profiles: Add a gdk-pixbuf-loaders-cache-file hook.
Date: Wed, 27 Oct 2021 00:51:48 -0400	[thread overview]
Message-ID: <20211027045151.9889-17-maxim.cournoyer@gmail.com> (raw)
In-Reply-To: <20211027045151.9889-1-maxim.cournoyer@gmail.com>

This paves the way toward properly fixing https://issues.guix.gnu.org/50957.

* guix/profiles.scm (gdk-pixbuf-loaders-cache-file): Add procedure...
(%default-profile-hooks): ... and register it as a profile hook.
---
 guix/profiles.scm | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/guix/profiles.scm b/guix/profiles.scm
index 9494684228..bdc0d52626 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com>
-;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2017, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
@@ -1161,6 +1161,32 @@ (define build
                     `((type . profile-hook)
                       (hook . emacs-subdirs))))
 
+(define (gdk-pixbuf-loaders-cache-file manifest)
+  "Return a derivation that produces a loaders cache file for every gdk-pixbuf
+loaders discovered in MANIFEST."
+  (define gdk-pixbuf                    ;lazy reference
+    (module-ref (resolve-interface '(gnu packages gtk)) 'gdk-pixbuf))
+
+  (mlet %store-monad ((%gdk-pixbuf (manifest-lookup-package
+                                    manifest "gdk-pixbuf"))
+                      (gdk-pixbuf-bin -> (file-append gdk-pixbuf "/bin")))
+    (define build
+      (with-imported-modules (source-module-closure
+                              '((guix build glib-or-gtk-build-system)))
+        #~(begin
+            (use-modules (guix build glib-or-gtk-build-system))
+            (setenv "PATH" (string-append #$gdk-pixbuf-bin ":" (getenv "PATH")))
+            (generate-gdk-pixbuf-loaders-cache '#$(manifest-inputs manifest)
+                                               (list #$output)))))
+    (if %gdk-pixbuf
+        (gexp->derivation "gdk-pixbuf-loaders-cache-file" build
+                          #:local-build? #t
+                          #:substitutable? #f
+                          #:properties
+                          '((type . profile-hook)
+                            (hook . gdk-pixbuf-loaders-cache-file)))
+        (return #f))))
+
 (define (glib-schemas manifest)
   "Return a derivation that unions all schemas from manifest entries and
 creates the Glib 'gschemas.compiled' file."
@@ -1672,6 +1698,7 @@ (define %default-profile-hooks
         ghc-package-cache-file
         ca-certificate-bundle
         emacs-subdirs
+        gdk-pixbuf-loaders-cache-file
         glib-schemas
         gtk-icon-themes
         gtk-im-modules
-- 
2.33.1





  parent reply	other threads:[~2021-10-27  4:56 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-27  4:04 [bug#51428] core-updates-frozen-batched-changes built and ready to merge Maxim Cournoyer
2021-10-27  4:51 ` [bug#51428] [PATCH core-update-frozen 01/13] build: glib-or-gtk-build-system: Simplify the wrap-all-programs phase Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 02/13] build: glib-or-gtk-build-system: Fix indentation Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 03/13] gnu: at-spi2-core: Reverse inheritance relationship with minimal variant Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 04/13] gnu: at-spi2-atk: Break a dependency cycle between GTK+ and Inkscape Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 05/13] gnu: lsof: Disable the LTlock test Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 06/13] gnu: lsof: Fix indentation Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 07/13] gnu: json-glib-minimal: Introduce minimal variant Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 08/13] gnu: Add docbook-xsl-ns Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 09/13] gnu: colord-minimal: Introduce minimal variant Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 10/13] gnu: libcloudproviders-minimal: " Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 11/13] gnu: gusb-minimal: " Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 12/13] gnu: rest: Use libsoup-minimal Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 13/13] gnu: inkscape: Remove the legacy 0.92 version Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 14/20] gnu: ungoogled-chromium: Use the new lld-as-ld-wrapper Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 15/20] gnu: gtk: Add the generate-gdk-pixbuf-loaders-cache-file phase Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 16/20] build: glib-or-gtk: Generate the gdk-pixbuf-loaders cache file in a phase Maxim Cournoyer
2021-10-27 14:48     ` [bug#51428] core-updates-frozen-batched-changes built and ready to merge Ludovic Courtès
2021-10-27 18:00       ` Maxim Cournoyer
2021-10-27  4:51   ` Maxim Cournoyer [this message]
2021-10-27 14:45     ` Ludovic Courtès
2021-10-27 17:51       ` Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 18/20] gnu: gdk-pixbuf: Add a search path for the loaders cache file Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 19/20] gnu: gtk: Replace gdk-pixbuf+svg by librsvg Maxim Cournoyer
2021-10-27  4:51   ` [bug#51428] [PATCH core-update-frozen 20/20] gnu: librsvg: Preserve the loaders.cache file Maxim Cournoyer
2021-10-27 14:51 ` [bug#51428] core-updates-frozen-batched-changes built and ready to merge Ludovic Courtès
2021-10-27 14:52 ` Thiago Jung Bauermann via Guix-patches via
2021-10-27 15:37   ` Maxim Cournoyer
2021-10-27 16:26     ` Thiago Jung Bauermann via Guix-patches via
2021-10-29  4:26       ` Thiago Jung Bauermann via Guix-patches via
2021-10-29 20:10         ` Maxim Cournoyer
2021-10-29 21:18           ` Thiago Jung Bauermann via Guix-patches via
2021-11-03  2:37           ` Thiago Jung Bauermann via Guix-patches via
2021-11-05  5:06             ` Maxim Cournoyer
2021-11-12  0:35               ` Thiago Jung Bauermann via Guix-patches via
2021-11-12  5:29                 ` bug#51428: " Maxim Cournoyer
2021-10-31 16:30 ` [bug#51428] " Guillaume Le Vaillant
2021-10-31 21:11   ` Maxim Cournoyer
2021-11-03 10:24 ` zimoun
2021-11-03 13:38   ` Thiago Jung Bauermann via Guix-patches via
2021-11-05  4:57     ` Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211027045151.9889-17-maxim.cournoyer@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=51428@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.