core-updates-frozen-batched-changes built and ready to merge

DoneSubmitted by Maxim Cournoyer.
Details
5 participants
  • Thiago Jung Bauermann
  • Guillaume Le Vaillant
  • Ludovic Courtès
  • Maxim Cournoyer
  • zimoun
Owner
unassigned
Severity
normal
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:04
(name . guix-patches)(address . guix-patches@gnu.org)
87v91jcdvy.fsf@gmail.com
Hello,

I've experimented quite a bit with core-updates-frozen-batched-changes
in the last weeks, and it seems to be in a decent shape, good enough to
merge into core-updates-frozen, I think.

I'd like to bring attention to some non-trivial changes that I included
in the branch:

1. merging of the staging branch -- quite a few conflicts had to be
resolved.

2. Replacement of inkscape@0.92 by inkscape@1.1, which required solving
some dependency cycles.

3. Fix for https://issues.guix.gnu.org/50957via a new search path
specification on gdk-pixbuf and accompanying build phase and profile
hook.

I'll send the corresponding patches for review, which can also be
consulted directly on the core-updates-frozen-batched-changes branch,
which I've manually built on Berlin for things such as Rust and
ungoogled-chromium.

I'd like to merge it into core-updates-frozen by the beginning of
November, unless there are problems you can spot :-).

Thank you,

Maxim
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 01/13] build: glib-or-gtk-build-system: Simplify the wrap-all-programs phase.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-1-maxim.cournoyer@gmail.com
* guix/build/glib-or-gtk-build-system.scm (wrap-all-programs)
<handle-output>: Precisely build the list of variable specifications, rather
than relying on a bunch of conditionals.
---
guix/build/glib-or-gtk-build-system.scm | 59 ++++++-------------------
1 file changed, 13 insertions(+), 46 deletions(-)

Toggle diff (72 lines)
diff --git a/guix/build/glib-or-gtk-build-system.scm b/guix/build/glib-or-gtk-build-system.scm
index 9f4cc09eeb..655f20cd12 100644
--- a/guix/build/glib-or-gtk-build-system.scm
+++ b/guix/build/glib-or-gtk-build-system.scm
@@ -169,52 +169,19 @@ (define handle-output
                               (alist-cons output directory inputs)))
                (gio-mod-dirs (gio-module-directories
                               (alist-cons output directory inputs)))
-               (data-env-var
-                (if (not (null? datadirs))
-                    `("XDG_DATA_DIRS" ":" prefix ,datadirs)
-                    #f))
-               (gtk-mod-env-var
-                (if (not (null? gtk-mod-dirs))
-                    `("GTK_PATH" ":" prefix ,gtk-mod-dirs)
-                    #f))
-               (gio-mod-env-var 
-                (if (not (null? gio-mod-dirs))
-                    `("GIO_EXTRA_MODULES" ":" prefix ,gio-mod-dirs)
-                    #f)))
-          (cond
-           ((and data-env-var gtk-mod-env-var gio-mod-env-var)
-            (for-each (cut wrap-program <> #:sh (sh)
-                           data-env-var
-                           gtk-mod-env-var
-                           gio-mod-env-var)
-                      bin-list))
-           ((and data-env-var gtk-mod-env-var (not gio-mod-env-var))
-            (for-each (cut wrap-program <> #:sh (sh)
-                           data-env-var
-                           gtk-mod-env-var)
-                      bin-list))
-           ((and data-env-var (not gtk-mod-env-var) gio-mod-env-var)
-            (for-each (cut wrap-program <> #:sh (sh)
-                           data-env-var
-                           gio-mod-env-var)
-                      bin-list))
-           ((and (not data-env-var) gtk-mod-env-var gio-mod-env-var)
-            (for-each (cut wrap-program <> #:sh (sh)
-                           gio-mod-env-var
-                           gtk-mod-env-var)
-                      bin-list))
-           ((and data-env-var (not gtk-mod-env-var) (not gio-mod-env-var))
-            (for-each (cut wrap-program <> #:sh (sh)
-                           data-env-var)
-                      bin-list))
-           ((and (not data-env-var) gtk-mod-env-var (not gio-mod-env-var))
-            (for-each (cut wrap-program <> #:sh (sh)
-                           gtk-mod-env-var)
-                      bin-list))
-           ((and (not data-env-var) (not gtk-mod-env-var) gio-mod-env-var)
-            (for-each (cut wrap-program <> #:sh (sh)
-                           gio-mod-env-var)
-                      bin-list))))))))
+               (env-vars `(,@(if (not (null? datadirs))
+                                 (list `("XDG_DATA_DIRS" ":" prefix ,datadirs))
+                                 '())
+                           ,@(if (not (null? gtk-mod-dirs))
+                                 (list `("GTK_PATH" ":" prefix ,gtk-mod-dirs))
+                                 '())
+                           ,@(if (not (null? gio-mod-dirs))
+                                 (list `("GIO_EXTRA_MODULES" ":"
+                                         prefix ,gio-mod-dirs))
+                                 '()))))
+          (for-each (lambda (program)
+                      (apply wrap-program program #:sh (sh) env-vars))
+                    bin-list))))))
 
   (for-each handle-output outputs)
   #t)
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 02/13] build: glib-or-gtk-build-system: Fix indentation.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-2-maxim.cournoyer@gmail.com
* guix/build/glib-or-gtk-build-system.scm (gtk-module-directories)
(wrap-all-programs): Fix indentation.
---
guix/build/glib-or-gtk-build-system.scm | 58 ++++++++++++-------------
1 file changed, 29 insertions(+), 29 deletions(-)

Toggle diff (78 lines)
diff --git a/guix/build/glib-or-gtk-build-system.scm b/guix/build/glib-or-gtk-build-system.scm
index 655f20cd12..c2f814eaeb 100644
--- a/guix/build/glib-or-gtk-build-system.scm
+++ b/guix/build/glib-or-gtk-build-system.scm
@@ -63,9 +63,9 @@ (define (gtk-module-directories inputs)
                               ""))
             "3.0")
            ((string-match "gtk\\+-2"
-                           (or (assoc-ref inputs "gtk+")
-                               (assoc-ref inputs "source")
-                               ""))
+                          (or (assoc-ref inputs "gtk+")
+                              (assoc-ref inputs "source")
+                              ""))
             "2.0")
            (else
             "4.0"))) ; We default to version 4.0.
@@ -156,32 +156,32 @@ (define %sh (delay (search-input-file inputs "bin/bash")))
   (define (sh) (force %sh))
   (define handle-output
     (match-lambda
-     ((output . directory)
-      (unless (member output glib-or-gtk-wrap-excluded-outputs)
-        (let* ((bindir       (string-append directory "/bin"))
-               (libexecdir   (string-append directory "/libexec"))
-               (bin-list     (filter (negate wrapped-program?)
-                                     (append (find-files bindir ".*")
-                                             (find-files libexecdir ".*"))))
-               (datadirs     (data-directories
-                              (alist-cons output directory inputs)))
-               (gtk-mod-dirs (gtk-module-directories
-                              (alist-cons output directory inputs)))
-               (gio-mod-dirs (gio-module-directories
-                              (alist-cons output directory inputs)))
-               (env-vars `(,@(if (not (null? datadirs))
-                                 (list `("XDG_DATA_DIRS" ":" prefix ,datadirs))
-                                 '())
-                           ,@(if (not (null? gtk-mod-dirs))
-                                 (list `("GTK_PATH" ":" prefix ,gtk-mod-dirs))
-                                 '())
-                           ,@(if (not (null? gio-mod-dirs))
-                                 (list `("GIO_EXTRA_MODULES" ":"
-                                         prefix ,gio-mod-dirs))
-                                 '()))))
-          (for-each (lambda (program)
-                      (apply wrap-program program #:sh (sh) env-vars))
-                    bin-list))))))
+      ((output . directory)
+       (unless (member output glib-or-gtk-wrap-excluded-outputs)
+         (let* ((bindir       (string-append directory "/bin"))
+                (libexecdir   (string-append directory "/libexec"))
+                (bin-list     (filter (negate wrapped-program?)
+                                      (append (find-files bindir ".*")
+                                          (find-files libexecdir ".*"))))
+                (datadirs     (data-directories
+                               (alist-cons output directory inputs)))
+                (gtk-mod-dirs (gtk-module-directories
+                               (alist-cons output directory inputs)))
+                (gio-mod-dirs (gio-module-directories
+                               (alist-cons output directory inputs)))
+                (env-vars `(,@(if (not (null? datadirs))
+                                  (list `("XDG_DATA_DIRS" ":" prefix ,datadirs))
+                                  '())
+                            ,@(if (not (null? gtk-mod-dirs))
+                                  (list `("GTK_PATH" ":" prefix ,gtk-mod-dirs))
+                                  '())
+                            ,@(if (not (null? gio-mod-dirs))
+                                  (list `("GIO_EXTRA_MODULES" ":"
+                                          prefix ,gio-mod-dirs))
+                                  '()))))
+           (for-each (lambda (program)
+                       (apply wrap-program program #:sh (sh) env-vars))
+                     bin-list))))))
 
   (for-each handle-output outputs)
   #t)
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 03/13] gnu: at-spi2-core: Reverse inheritance relationship with minimal variant.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-3-maxim.cournoyer@gmail.com
Since the minimal variant is here to stay, this should make things easier to
maintain.

* gnu/packages/gtk.scm (at-spi2-core-minimal): Rewrite after removing
inheritance, making it the base minimal package, with no documentation-related
inputs or build phases.
(at-spi2-core): Rewrite definition, inherit from the above minimal variant,
adding the documentation-related inputs and build phases.
---
gnu/packages/gtk.scm | 195 +++++++++++++++++++------------------------
1 file changed, 85 insertions(+), 110 deletions(-)

Toggle diff (214 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 5dfdaae7e4..c38fd3e907 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -740,122 +740,97 @@ (define-public gdk-pixbuf+svg
                       loaders))))))))
     (synopsis "Image loading library, with SVG support")))
 
-(define-public at-spi2-core
-  (package
-    (name "at-spi2-core")
-    (version "2.40.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0a9l6cfxynjn6jcp29d72i75xbkrzs1l5kmqcwmfal801b9sg5j1"))))
-    (build-system meson-build-system)
-    (outputs '("out" "doc"))
-    (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags
-       ;; Generating documentation requires running binaries for the host
-       ;; on the build machine.
-       (list ,(if (%current-target-system)
-                  "-Ddocs=false"
-                  "-Ddocs=true"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-documentation-path
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Ensure that the cross-references point to the "doc" output.
-             (substitute* "doc/libatspi/meson.build"
-               (("docpath =.*")
-                (string-append "docpath = '" (assoc-ref outputs "doc") "/share/gtk-doc/html'\n")))
-             #t))
-         (add-before 'install 'prepare-doc-directory
-           (lambda* (#:key outputs #:allow-other-keys)
-             (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))
-             #t))
-         ;; TODO(core-updates): Unconditionally use (or native-inputs inputs)
-         (add-after 'unpack 'patch-docbook-sgml
-           (lambda* (#:key ,@(if (%current-target-system)
-                                 '(native-inputs)
-                                 '()) inputs #:allow-other-keys)
-             (let* ((xmldoc
-                     (string-append (assoc-ref ,(if (%current-target-system)
-                                                    '(or native-inputs inputs)
-                                                    'inputs)
-                                               "docbook-xml")
-                                    "/xml/dtd/docbook")))
-               (substitute* "doc/libatspi/libatspi-docs.sgml"
-                 (("http://.*/docbookx\\.dtd")
-                  (string-append xmldoc "/docbookx.dtd")))
-               #t)))
-         ,@(if (%current-target-system)
-               '()
-               '((add-after 'install 'move-documentation
-                   (lambda* (#:key outputs #:allow-other-keys)
-                     (let ((out (assoc-ref outputs "out"))
-                           (doc (assoc-ref outputs "doc")))
-                       (copy-recursively
-                        (string-append out "/share/gtk-doc")
-                        (string-append doc "/share/gtk-doc"))
-                       (delete-file-recursively
-                        (string-append out "/share/gtk-doc")))
-                     #t))))
-         (add-after 'install 'check
-           (lambda _
-             (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
-             ;; Run test-suite under a dbus session.
-             (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
-                     (string-append %output "/share"))
-             ;; Don't fail on missing  '/etc/machine-id'.
-             (setenv "DBUS_FATAL_WARNINGS" "0") ;
-             (invoke "dbus-launch" "ninja" "test")))
-         (delete 'check))))
-    (inputs
-     ;; TODO(core-updates): Make this input unconditional.
-     (if (%current-target-system)
-         `(("bash-minimal" ,bash-minimal))
-         '()))
-    (propagated-inputs
-     ;; atspi-2.pc refers to all these.
-     `(("dbus" ,dbus)
-       ("glib" ,glib)
-       ("libx11" ,libx11)
-       ("libxi" ,libxi)
-       ("libxtst" ,libxtst)))
-    (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.3)
-       ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)))
-    (synopsis "Assistive Technology Service Provider Interface, core components")
-    (description
-     "The Assistive Technology Service Provider Interface, core components,
+;;; A minimal variant used to prevent a cycle with Inkscape.
+(define-public at-spi2-core-minimal
+  (hidden-package
+   (package
+     (name "at-spi2-core")
+     (version "2.40.0")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://gnome/sources/" name "/"
+                                   (version-major+minor version)  "/"
+                                   name "-" version ".tar.xz"))
+               (sha256
+                (base32
+                 "0a9l6cfxynjn6jcp29d72i75xbkrzs1l5kmqcwmfal801b9sg5j1"))))
+     (build-system meson-build-system)
+     (arguments
+      '(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'install 'check
+            (lambda _
+              (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
+              ;; Run test-suite under a dbus session.
+              (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
+                      (string-append %output "/share"))
+              ;; Don't fail on missing  '/etc/machine-id'.
+              (setenv "DBUS_FATAL_WARNINGS" "0") ;
+              (invoke "dbus-launch" "ninja" "test")))
+          (delete 'check))))
+     (inputs
+      `(("bash-minimal" ,bash-minimal)))
+     (propagated-inputs
+      ;; atspi-2.pc refers to all these.
+      `(("dbus" ,dbus)
+        ("glib" ,glib)
+        ("libx11" ,libx11)
+        ("libxi" ,libxi)
+        ("libxtst" ,libxtst)))
+     (native-inputs
+      `(("gettext" ,gettext-minimal)
+        ("glib" ,glib "bin")
+        ("gobject-introspection" ,gobject-introspection)
+        ("pkg-config" ,pkg-config)
+        ("python" ,python-wrapper)))
+     (synopsis "Assistive Technology Service Provider Interface, core components")
+     (description
+      "The Assistive Technology Service Provider Interface, core components,
 is part of the GNOME accessibility project.")
-    (license license:lgpl2.1+)
-    (home-page "https://wiki.gnome.org/Accessibility/")))
+     (license license:lgpl2.1+)
+     (home-page "https://wiki.gnome.org/Accessibility/"))))
 
-;;; A minimal variant used to prevent a cycle with Inkscape.
-(define at-spi2-core-minimal
-  (package
-    (inherit at-spi2-core)
-    (name "at-spi2-core-minimal")
-    (outputs (delete "doc" (package-outputs at-spi2-core)))
+(define-public at-spi2-core
+  (package/inherit at-spi2-core-minimal
+    (outputs (cons "doc" (package-outputs at-spi2-core-minimal)))
     (arguments
-     (substitute-keyword-arguments (package-arguments at-spi2-core)
-       ((#:configure-flags configure-flags)
-        `(delete "-Ddocs=true" ,configure-flags))
+     (substitute-keyword-arguments (package-arguments at-spi2-core-minimal)
+       ((#:configure-flags flags ''())
+        `(cons ,(if (%current-target-system)
+                    "-Ddocs=false"
+                    "-Ddocs=true")
+               ,flags))
        ((#:phases phases)
         `(modify-phases ,phases
-           (delete 'set-documentation-path)
-           (delete 'prepare-doc-directory)
-           (delete 'move-documentation)))))
+           (add-after 'unpack 'set-documentation-path
+             (lambda* (#:key outputs #:allow-other-keys)
+               ;; Ensure that the cross-references point to the "doc" output.
+               (substitute* "doc/libatspi/meson.build"
+                 (("docpath =.*")
+                  (string-append "docpath = '" (assoc-ref outputs "doc")
+                                 "/share/gtk-doc/html'\n")))))
+           (add-before 'install 'prepare-doc-directory
+             (lambda* (#:key outputs #:allow-other-keys)
+               (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))))
+           ,@(if (%current-target-system)
+                 '()
+                 '((add-after 'install 'move-documentation
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (let ((out (assoc-ref outputs "out"))
+                             (doc (assoc-ref outputs "doc")))
+                         (copy-recursively
+                          (string-append out "/share/gtk-doc")
+                          (string-append doc "/share/gtk-doc"))
+                         (delete-file-recursively
+                          (string-append out "/share/gtk-doc")))))))))))
     (native-inputs
-     (alist-delete "gtk-doc" (package-native-inputs at-spi2-core)))))
+     (append `(("docbook-xml" ,docbook-xml-4.3)
+               ("gtk-doc" ,gtk-doc/stable)
+               ("libxml2" ,libxml2))    ;for XML_CATALOG_FILES
+         (package-native-inputs at-spi2-core-minimal)))
+    (properties (alist-delete 'hidden?
+                              (package-properties at-spi2-core-minimal)))))
 
 (define-public at-spi2-atk
   (package
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 04/13] gnu: at-spi2-atk: Break a dependency cycle between GTK+ and Inkscape.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-4-maxim.cournoyer@gmail.com
* gnu/packages/gtk.scm (at-spi2-atk)
[propagated-inputs]: Replace at-spi2-core with at-spi2-core-minimal.
---
gnu/packages/gtk.scm | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

Toggle diff (17 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index c38fd3e907..b67af8c051 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -859,9 +859,7 @@ (define-public at-spi2-atk
              (setenv "DBUS_FATAL_WARNINGS" "0")
              (invoke "dbus-launch" "meson" "test"))))))
     (propagated-inputs
-     ;; TODO: Replace by at-spi2-core-minimal in the next staging window, or
-     ;; when Inkscape 0.92 is upgraded to 1.0 to avoid a cycle.
-     `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
+     `(("at-spi2-core" ,at-spi2-core-minimal))) ; required by atk-bridge-2.0.pc
     (inputs
      `(("atk" ,atk)
        ("glib" ,glib)))
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 05/13] gnu: lsof: Disable the LTlock test.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-5-maxim.cournoyer@gmail.com

* gnu/packages/lsof.scm (lsof)[phases]: Remove trailing #t.
{disable-failing-tests}: Disable the LTlock test.
---
gnu/packages/lsof.scm | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)

Toggle diff (66 lines)
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
index b317902ee7..7ded6ee726 100644
--- a/gnu/packages/lsof.scm
+++ b/gnu/packages/lsof.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,26 +62,25 @@ (define-public lsof
                     (string-append "GNU/" (utsname:sysname (uname))
                                    " (GNU Guix)"))
 
-            (invoke "./Configure" "linux")
-            #t))
+            (invoke "./Configure" "linux")))
         (add-after 'configure 'patch-timestamps
           (lambda _
             (substitute* "Makefile"
-              (("`date`") "`date --date=@1`"))
-            #t))
+              (("`date`") "`date --date=@1`"))))
         (add-after 'build 'build-man-page
           (lambda _
             (with-output-to-file "lsof.8"
-              (lambda _ (invoke "soelim" "Lsof.8")))
-            #t))
+              (lambda _ (invoke "soelim" "Lsof.8")))))
         (add-before 'check 'disable-failing-tests
           (lambda _
             (substitute* "tests/Makefile"
               ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
               (("(STDTST=.*) LTsock" _ prefix) prefix)
-              ;; Fails without access to a remote NFS server.
-              (("(OPTTST=.*) LTnfs"  _ prefix) prefix))
-            #t))
+              ;; LTnfs fails without access to a remote NFS server, and LTlock
+              ;; fails when run on a Btrfs file system (see:
+              ;; https://github.com/lsof-org/lsof/issues/152).
+              (("OPTTST=[[:space:]]*LTbigf LTdnlc LTlock LTnfs")
+               "OPTTST = LTbigf LTdnlc"))))
         (replace 'check
           (lambda* (#:key tests? #:allow-other-keys)
             (when tests?
@@ -90,14 +90,12 @@ (define-public lsof
                 (invoke "./Add2TestDB")
 
                 ;; The ‘standard’ tests suggest running ‘optional’ ones as well.
-                (invoke "make" "standard" "optional")))
-            #t))
+                (invoke "make" "standard" "optional")))))
         (replace 'install
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (install-file "lsof" (string-append out "/bin"))
-              (install-file "lsof.8" (string-append out "/share/man/man8")))
-            #t)))))
+              (install-file "lsof.8" (string-append out "/share/man/man8"))))))))
    (synopsis "Display information about open files")
    (description
     "Lsof stands for LiSt Open Files, and it does just that.
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 06/13] gnu: lsof: Fix indentation.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-6-maxim.cournoyer@gmail.com
* gnu/packages/lsof.scm (lsof): Fix indentation.
---
gnu/packages/lsof.scm | 136 +++++++++++++++++++++---------------------
1 file changed, 68 insertions(+), 68 deletions(-)

Toggle diff (151 lines)
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
index 7ded6ee726..04c1d80b52 100644
--- a/gnu/packages/lsof.scm
+++ b/gnu/packages/lsof.scm
@@ -32,76 +32,76 @@ (define-module (gnu packages lsof)
 
 (define-public lsof
   (package
-   (name "lsof")
-   (version "4.94.0")
-   (source
-    (origin
-      (method git-fetch)
-      (uri (git-reference
-            (url "https://github.com/lsof-org/lsof")
-            (commit version)))
-      (file-name (git-file-name name version))
-      (sha256
-       (base32 "0yxv2jg6rnzys49lyrz9yjb4knamah4xvlqj596y6ix3vm4k3chp"))
-      (patches (search-patches "lsof-fatal-test-failures.patch"))))
-   (build-system gnu-build-system)
-   (native-inputs
-    `(("groff" ,groff)                  ; for soelim
-      ("perl" ,perl)))
-   (arguments
-    `(#:phases
-      (modify-phases %standard-phases
-        (replace 'configure
-          (lambda _
-            (setenv "LSOF_CC" ,(cc-for-target))
-            (setenv "LSOF_MAKE" "make")
+    (name "lsof")
+    (version "4.94.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lsof-org/lsof")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0yxv2jg6rnzys49lyrz9yjb4knamah4xvlqj596y6ix3vm4k3chp"))
+       (patches (search-patches "lsof-fatal-test-failures.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("groff" ,groff)                 ; for soelim
+       ("perl" ,perl)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (setenv "LSOF_CC" ,(cc-for-target))
+             (setenv "LSOF_MAKE" "make")
 
-            ;; By default, the makefile captures the output of 'uname -a'.
-            ;; Provide a fixed output instead to make builds reproducible.
-            (setenv "LSOF_SYSINFO"
-                    (string-append "GNU/" (utsname:sysname (uname))
-                                   " (GNU Guix)"))
+             ;; By default, the makefile captures the output of 'uname -a'.
+             ;; Provide a fixed output instead to make builds reproducible.
+             (setenv "LSOF_SYSINFO"
+                     (string-append "GNU/" (utsname:sysname (uname))
+                                    " (GNU Guix)"))
 
-            (invoke "./Configure" "linux")))
-        (add-after 'configure 'patch-timestamps
-          (lambda _
-            (substitute* "Makefile"
-              (("`date`") "`date --date=@1`"))))
-        (add-after 'build 'build-man-page
-          (lambda _
-            (with-output-to-file "lsof.8"
-              (lambda _ (invoke "soelim" "Lsof.8")))))
-        (add-before 'check 'disable-failing-tests
-          (lambda _
-            (substitute* "tests/Makefile"
-              ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
-              (("(STDTST=.*) LTsock" _ prefix) prefix)
-              ;; LTnfs fails without access to a remote NFS server, and LTlock
-              ;; fails when run on a Btrfs file system (see:
-              ;; https://github.com/lsof-org/lsof/issues/152).
-              (("OPTTST=[[:space:]]*LTbigf LTdnlc LTlock LTnfs")
-               "OPTTST = LTbigf LTdnlc"))))
-        (replace 'check
-          (lambda* (#:key tests? #:allow-other-keys)
-            (when tests?
-              (with-directory-excursion "tests"
-                ;; Tests refuse to run on ‘unvalidated’ platforms.
-                (make-file-writable "TestDB")
-                (invoke "./Add2TestDB")
+             (invoke "./Configure" "linux")))
+         (add-after 'configure 'patch-timestamps
+           (lambda _
+             (substitute* "Makefile"
+               (("`date`") "`date --date=@1`"))))
+         (add-after 'build 'build-man-page
+           (lambda _
+             (with-output-to-file "lsof.8"
+               (lambda _ (invoke "soelim" "Lsof.8")))))
+         (add-before 'check 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/Makefile"
+               ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
+               (("(STDTST=.*) LTsock" _ prefix) prefix)
+               ;; LTnfs fails without access to a remote NFS server, and LTlock
+               ;; fails when run on a Btrfs file system (see:
+               ;; https://github.com/lsof-org/lsof/issues/152).
+               (("OPTTST=[[:space:]]*LTbigf LTdnlc LTlock LTnfs")
+                "OPTTST = LTbigf LTdnlc"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "tests"
+                 ;; Tests refuse to run on ‘unvalidated’ platforms.
+                 (make-file-writable "TestDB")
+                 (invoke "./Add2TestDB")
 
-                ;; The ‘standard’ tests suggest running ‘optional’ ones as well.
-                (invoke "make" "standard" "optional")))))
-        (replace 'install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out")))
-              (install-file "lsof" (string-append out "/bin"))
-              (install-file "lsof.8" (string-append out "/share/man/man8"))))))))
-   (synopsis "Display information about open files")
-   (description
-    "Lsof stands for LiSt Open Files, and it does just that.
+                 ;; The ‘standard’ tests suggest running ‘optional’ ones as well.
+                 (invoke "make" "standard" "optional")))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "lsof" (string-append out "/bin"))
+               (install-file "lsof.8" (string-append out "/share/man/man8"))))))))
+    (synopsis "Display information about open files")
+    (description
+     "Lsof stands for LiSt Open Files, and it does just that.
 It lists information about files that are open by the processes running
 on the system.")
-   (license (license:fsf-free
-             "file://00FAQ"
-             "License inspired by zlib, see point 1.9 of 00FAQ in the distribution."))
-   (home-page "https://people.freebsd.org/~abe/")))
+    (license (license:fsf-free
+              "file://00FAQ"
+              "License inspired by zlib, see point 1.9 of 00FAQ in the distribution."))
+    (home-page "https://people.freebsd.org/~abe/")))
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 07/13] gnu: json-glib-minimal: Introduce minimal variant.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-7-maxim.cournoyer@gmail.com
* gnu/packages/gnome.scm (json-glib-minimal): New variable.
[source]: Adjust URI.
[outputs]: Move doc output to...
(json-glib)[outputs]: ... here. Rewrite in terms of json-glib-minimal.
* gnu/packages/gtk.scm (gtk+): Use json-glib-minimal to break a cycle with
Inkscape.
---
gnu/packages/gnome.scm | 134 ++++++++++++++++++++---------------------
gnu/packages/gtk.scm | 2 +-
2 files changed, 66 insertions(+), 70 deletions(-)

Toggle diff (178 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9532717d89..fc486a4d1e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4590,86 +4590,27 @@ (define-public dconf
 configuration storage systems.")
     (license license:lgpl2.1+)))
 
-(define-public json-glib
+(define-public json-glib-minimal
   (package
-    (name "json-glib")
+    (name "json-glib-minimal")
     (version "1.6.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+              (uri (string-append "mirror://gnome/sources/json-glib/"
+                                  (version-major+minor version)
+                                  "/json-glib-" version ".tar.xz"))
               (sha256
                (base32
                 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
     (build-system meson-build-system)
-    (outputs '("out" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags
-       (list
-        "-Ddocs=true"
-        "-Dman=true"
-        ,@(if (%current-target-system)
-              ;; If enabled, gtkdoc-scangobj will try to execute a
-              ;; cross-compiled binary.
-              '("-Dgtk_doc=disabled"
-                ;; Trying to build introspection data when cross-compiling
-                ;; causes errors during linking.
-                "-Dintrospection=disabled")
-              '()))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-docbook
-           ;; TODO(core-updates): Use (or native-inputs inputs)
-           ;; unconditionally.
-           (lambda* (#:key ,@(if (%current-target-system)
-                                 '(native-inputs)
-                                 '()) inputs #:allow-other-keys)
-             (with-directory-excursion "doc"
-               (substitute* (find-files "." "\\.xml$")
-                 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
-                  (string-append (assoc-ref ,(if (%current-target-system)
-                                                 '(or native-inputs inputs)
-                                                 'inputs)
-                                            "docbook-xml")
-                                 "/xml/dtd/docbook/")))
-               (substitute* "meson.build"
-                 (("http://docbook.sourceforge.net/release/xsl/current/")
-                  (string-append (assoc-ref ,(if (%current-target-system)
-                                                 '(or native-inputs inputs)
-                                                 'inputs) "docbook-xsl")
-                                 "/xml/xsl/docbook-xsl-1.79.2/"))))
-             #t))
-         ;; When cross-compiling, there are no docs to move.
-         ,(if (%current-target-system)
-              '(add-after 'install 'stub-docs
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   ;; The daemon doesn't like empty output paths.
-                   (mkdir (assoc-ref outputs "doc"))))
-              '(add-after 'install 'move-docs
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   (let* ((out (assoc-ref outputs "out"))
-                          (doc (assoc-ref outputs "doc")))
-                     (mkdir-p (string-append doc "/share"))
-                     (rename-file
-                      (string-append out "/share/gtk-doc")
-                      (string-append doc "/share/gtk-doc"))
-                     #t)))))))
+     `(#:glib-or-gtk? #t))           ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.3)
-       ("docbook-xsl" ,docbook-xsl)
-       ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")      ;for glib-mkenums and glib-genmarshal
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)
-       ("xsltproc" ,libxslt)))
+     `(("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")             ;for glib-mkenums and glib-genmarshal
+       ("pkg-config" ,pkg-config)))
     (inputs
-     ;; TODO(core-updates): Make this input unconditional.
-     (if (%current-target-system)
-         `(("bash-minimal" ,bash-minimal))
-         '()))
+     `(("bash-minimal" ,bash-minimal)))
     (propagated-inputs
      `(("glib" ,glib)))                 ;according to json-glib-1.0.pc
     (home-page "https://wiki.gnome.org/Projects/JsonGlib")
@@ -4679,6 +4620,61 @@ (define-public json-glib
 GLib and GObject, and integrates JSON with GLib data types.")
     (license license:lgpl2.1+)))
 
+(define-public json-glib
+  (package/inherit json-glib-minimal
+    (name "json-glib")
+    (outputs (cons "doc" (package-outputs json-glib-minimal)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments json-glib-minimal)
+       ((#:configure-flags _)
+        `(list "-Ddocs=true"
+               "-Dman=true"
+               ,@(if (%current-target-system)
+                     ;; If enabled, gtkdoc-scangobj will try to execute a
+                     ;; cross-compiled binary.
+                     '("-Dgtk_doc=disabled"
+                       ;; Trying to build introspection data when cross-compiling
+                       ;; causes errors during linking.
+                       "-Dintrospection=disabled")
+                     '())))
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'patch-docbook
+             (lambda* (#:key native-inputs inputs #:allow-other-keys)
+               (with-directory-excursion "doc"
+                 (substitute* (find-files "." "\\.xml$")
+                   (("http://www.oasis-open.org/docbook/xml/4\\.3/")
+                    (string-append (assoc-ref (or native-inputs inputs)
+                                              "docbook-xml")
+                                   "/xml/dtd/docbook/")))
+                 (substitute* "meson.build"
+                   (("http://docbook.sourceforge.net/release/xsl/current/")
+                    (string-append (assoc-ref (or native-inputs inputs)
+                                              "docbook-xsl")
+                                   "/xml/xsl/docbook-xsl-1.79.2/"))))))
+           ;; When cross-compiling, there are no docs to move.
+           ,(if (%current-target-system)
+                '(add-after 'install 'stub-docs
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     ;; The daemon doesn't like empty output paths.
+                     (mkdir (assoc-ref outputs "doc"))))
+                '(add-after 'install 'move-docs
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     (let* ((out (assoc-ref outputs "out"))
+                            (doc (assoc-ref outputs "doc")))
+                       (mkdir-p (string-append doc "/share"))
+                       (rename-file
+                        (string-append out "/share/gtk-doc")
+                        (string-append doc "/share/gtk-doc"))))))))))
+    (native-inputs
+     (append
+         `(("docbook-xml" ,docbook-xml-4.3)
+           ("docbook-xsl" ,docbook-xsl)
+           ("gobject-introspection" ,gobject-introspection)
+           ("gtk-doc" ,gtk-doc)
+           ("xsltproc" ,libxslt))
+         (package-native-inputs json-glib-minimal)))))
+
 (define-public libxklavier
   (package
     (name "libxklavier")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index b67af8c051..1dd2c6c184 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1028,7 +1028,7 @@ (define-public gtk+
        ("graphene" ,graphene)
        ("harfbuzz" ,harfbuzz)
        ("iso-codes" ,iso-codes)
-       ("json-glib" ,json-glib)
+       ("json-glib" ,json-glib-minimal)
        ("libxml2" ,libxml2)
        ("rest" ,rest)))
     (native-inputs
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 08/13] gnu: Add docbook-xsl-ns.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-8-maxim.cournoyer@gmail.com
* gnu/packages/docbook.scm (docbook-xsl-ns): New variable.
---
gnu/packages/docbook.scm | 56 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)

Toggle diff (76 lines)
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index ee12f7edeb..92ca706c56 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -41,6 +41,7 @@ (define-module (gnu packages docbook)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module ((guix build utils) #:select (alist-replace))
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system python))
@@ -229,6 +230,61 @@ (define name-version
      "This package provides XSL style sheets for DocBook.")
     (license (license:x11-style "" "See 'COPYING' file."))))
 
+(define-public docbook-xsl-ns
+  (package
+    (name "docbook-xsl-ns")
+    (version "1.79.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/docbook/"
+                                  name "/" version "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin"))))
+    (build-system copy-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; XXX: The copy-build-system doesn't seem to allow installing to a
+         ;; different output.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (xml (string-append out "/xml/xsl/" ,name "-" ,version))
+                    (doc (string-append (assoc-ref %outputs "doc")
+                                        "/share/doc/" ,name "-" ,version))
+                    (select-rx (make-regexp
+                                "(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)")))
+               ;; Install catalog.
+               (install-file "catalog.xml" xml)
+               (install-file "VERSION.xsl" xml)
+               (substitute* (string-append xml "/catalog.xml")
+                 (("rewritePrefix=\"./")
+                  (string-append "rewritePrefix=\"file://" xml "/")))
+               ;; Install style sheets.
+               (for-each (lambda (dir)
+                           (for-each (lambda (f)
+                                       (install-file
+                                        f (string-append xml "/" (dirname f))))
+                                     (find-files dir select-rx)))
+                         '("assembly" "common" "eclipse" "epub" "epub3" "fo"
+                           "highlighting" "html" "htmlhelp" "javahelp" "lib"
+                           "manpages" "params" "profiling" "roundtrip"
+                           "template" "website"
+                           "xhtml" "xhtml-1_1" "xhtml5"))
+               ;; Install documentation.
+               (install-file "NEWS" doc)
+               (install-file "RELEASE-NOTES.html" doc)
+               (copy-recursively "slides" doc)
+               (copy-recursively "webhelp" doc)))))))
+    (home-page "https://docbook.org")
+    (synopsis "DocBook XSL namespaced style sheets for document authoring")
+    (description "This package provides the @emph{namespaced} XSL style sheets
+for DocBook.")
+    (license (license:x11-style "" "See 'COPYING' file."))))
+
 (define-public docbook-dsssl
   (package
     (name "docbook-dsssl")
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 09/13] gnu: colord-minimal: Introduce minimal variant.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-9-maxim.cournoyer@gmail.com
* gnu/packages/gnome.scm (colord-minimal): New minimal variant that doesn't
require Inkscape to be built (through gtk-doc). Remove trailing #t.
[configure-flags]: Disable docs and manpage generation. Sort order.
(colord): Rewrite in terms of colord-minimal.
[configure-flags]: Enable manpages and bash completion.
[phases]{fix-bash-completion-dir}: New phase.
[native-inputs]: Add bash_completion, docbook-xsl-ns and libxml2.
* gnu/packages/gtk.scm (gtk+)[inputs]{colord}: Use the colord-minimal variant
to prevent a cycle with Inkscape.
---
gnu/packages/gnome.scm | 65 +++++++++++++++++++++++++++++-------------
gnu/packages/gtk.scm | 2 +-
2 files changed, 46 insertions(+), 21 deletions(-)

Toggle diff (137 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fc486a4d1e..4b1adc2997 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5203,9 +5203,9 @@ (define-public gnome-terminal
 keyboard shortcuts.")
     (license license:gpl3+)))
 
-(define-public colord
+(define-public colord-minimal
   (package
-    (name "colord")
+    (name "colord-minimal")
     (version "1.4.5")
     (source
      (origin
@@ -5216,33 +5216,27 @@ (define-public colord
         (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
     (build-system meson-build-system)
     (arguments
-     '(;; FIXME: One test fails:
+     '( ;; FIXME: One test fails:
        ;; /colord/icc-store (in lib/colord/colord-self-test-private):
        ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
        ;; application/x-zerosize
        #:tests? #f
        #:glib-or-gtk? #t
-       #:configure-flags (list "-Dlocalstatedir=/var"
-                               ;; No dep on systemd.
-                               "-Dsystemd=false"
-                               ;; Wants to install to global completion dir;
-                               ;; punt.
+       #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread
                                "-Dbash_completion=false"
                                "-Ddaemon_user=colord"
+                               "-Ddocs=false"
+                               "-Dlocalstatedir=/var"
+                               "-Dman=false"
                                "-Dsane=true"
-                               "-Dvapi=true"
-                               ;; Requires spotread.
-                               "-Dargyllcms_sensor=false"
-                               ;; TODO: Requires docbook2x.
-                               "-Dman=false")
+                               "-Dsystemd=false") ;no systemd
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-build-system
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "rules/meson.build"
                (("udev.get_pkgconfig_variable\\('udevdir'\\)")
-                (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
-             #t))
+                (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))))
          (add-before 'configure 'set-sqlite3-file-name
            (lambda* (#:key inputs #:allow-other-keys)
              ;; "colormgr dump" works by invoking the "sqlite3" command.
@@ -5250,13 +5244,10 @@ (define-public colord
              (let ((sqlite (assoc-ref inputs "sqlite")))
                (substitute* "client/cd-util.c"
                  (("\"sqlite3\"")
-                  (string-append "\"" sqlite "/bin/sqlite3\"")))
-               #t))))))
+                  (string-append "\"" sqlite "/bin/sqlite3\"")))))))))
     (native-inputs
      `(("glib:bin" ,glib "bin")         ; for glib-compile-resources, etc.
        ("gettext" ,gettext-minimal)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (propagated-inputs
@@ -5266,7 +5257,8 @@ (define-public colord
        ("udev" ,eudev)))
     (inputs
      `(("dbus-glib" ,dbus-glib)
-       ("gusb" ,gusb)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gusb" ,gusb-minimal)
        ("libgudev" ,libgudev)
        ("libusb" ,libusb)
        ("polkit" ,polkit)
@@ -5280,6 +5272,39 @@ (define-public colord
 output devices.")
     (license license:gpl2+)))
 
+(define-public colord
+  (package/inherit colord-minimal
+    (name "colord")
+    (arguments
+     (substitute-keyword-arguments
+         (package-arguments colord-minimal)
+       ((#:configure-flags flags)
+        `(begin
+           (use-modules (srfi srfi-1))
+           (append '("-Dbash_completion=true"
+                     "-Ddocs=true"
+                     "-Dman=true")
+               (fold delete ,flags '("-Dbash_completion=false"
+                                     "-Ddocs=false"
+                                     "-Dman=false")))))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'fix-bash-completion-dir
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "data/meson.build"
+                 (("bash_completion.get_pkgconfig_variable\
+\\('completionsdir'\\)")
+                  (string-append "'" (assoc-ref outputs "out")
+                                 "/etc/bash_completion.d'")))))))))
+    (native-inputs
+     (append
+         `(("bash-completion" ,bash-completion)
+           ("docbook-xsl-ns" ,docbook-xsl-ns)
+           ("gtk-doc" ,gtk-doc/stable)
+           ("libxml2" ,libxml2)         ;for XML_CATALOG_FILES
+           ("libxslt" ,libxslt))
+         (package-native-inputs colord-minimal)))))
+
 (define-public geoclue
   (package
     (name "geoclue")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 1dd2c6c184..a515bca5ac 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1023,7 +1023,7 @@ (define-public gtk+
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)))
     (inputs
-     `(("colord" ,colord)
+     `(("colord" ,colord-minimal)       ;to prevent a cycle with inkscape
        ("cups" ,cups)
        ("graphene" ,graphene)
        ("harfbuzz" ,harfbuzz)
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 11/13] gnu: gusb-minimal: Introduce minimal variant.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-11-maxim.cournoyer@gmail.com
This is needed to prevent a dependency cycle between Inkscape and GTK+.

* gnu/packages/gnome.scm (gusb-minimal): New variable.
[configure-flags]: Disable docs.
[native-inputs]: Remove gtk-doc.
(gusb): Rewrite in terms of gusb-minimal.
[configure-flags]: Enable docs.
[native-inputs]: Add gtk-doc.
---
gnu/packages/gnome.scm | 42 +++++++++++++++++++++++++++---------------
1 file changed, 27 insertions(+), 15 deletions(-)

Toggle diff (79 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1c4f6a4c94..b79cf48199 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6587,38 +6587,38 @@ (define-public gvfs
 DAV, and others.")
     (license license:lgpl2.0+)))
 
-(define-public gusb
+(define-public gusb-minimal
   (package
-    (name "gusb")
+    (name "gusb-minimal")
     (version "0.3.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/hughsie/libgusb")
-                     (commit version)))
+                    (url "https://github.com/hughsie/libgusb")
+                    (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
                 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
     (build-system meson-build-system)
+    (arguments
+     `(#:tests? #f          ;libusb fails to initialize.  Wonder what that is.
+       #:configure-flags
+       (cons "-Ddocs=false"
+             (if ,(%current-target-system)
+                 ;; Introspection data cannot currently be cross-compiled.
+                 '("-Dintrospection=false"
+                   ;; Requires introspection data.
+                   "-Dvapi=false")
+                 '()))))
     (native-inputs
      `(("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
-       ("vala" ,vala)
-       ("gtk-doc" ,gtk-doc/stable)))
+       ("vala" ,vala)))
     (propagated-inputs
      ;; Both of these are required by gusb.pc.
      `(("glib" ,glib)
        ("libusb" ,libusb)))
-    (arguments
-     `(#:tests? #f ;libusb fails to initialize.  Wonder what that is.
-       #:configure-flags
-       ,(if (%current-target-system)
-            ;; Introspection data cannot currently be cross-compiled.
-            ''("-Dintrospection=false"
-               ;; Requires introspection data.
-               "-Dvapi=false")
-            ''())))
     (home-page "https://github.com/hughsie/libgusb")
     (synopsis "GLib binding for libusb1")
     (description
@@ -6628,6 +6628,18 @@ (define-public gusb
 USB transfers with your high-level application or system daemon.")
     (license license:lgpl2.1+)))
 
+(define-public gusb
+  (package/inherit gusb-minimal
+    (name "gusb")
+    (arguments
+     (substitute-keyword-arguments (package-arguments gusb-minimal)
+       ((#:configure-flags flags)
+        `(cons "-Ddocs=true"
+               (delete "-Ddocs=false" ,flags)))))
+    (native-inputs
+     (cons `("gtk-doc" ,gtk-doc/stable)
+           (package-native-inputs gusb-minimal)))))
+
 (define-public simple-scan
   (package
     (name "simple-scan")
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 10/13] gnu: libcloudproviders-minimal: Introduce minimal variant.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-10-maxim.cournoyer@gmail.com
* gnu/packages/gnome.scm (libcloudproviders-minimal): New minimal variant that
doesn't require Inkscape to be built (through gtk-doc).
[source]: Adjust URI.
[outputs]: Remove field.
[configure-flags]: Disable introspection, docs and vala bindings.
[phases]{move-doc}: Move phase to ...
(libcloudproviders)[phases]: ... here.
Rewrite in terms of libcloudproviders-minimal. The "doc" output is moved
here.
[configure-flags]: Clear inherited flags and enable doc.
* gnu/packages/gtk.scm (gtk+)[inputs]{libcloudproviders}: Use the minimal
variant to prevent a cycle with Inkscape.
---
gnu/packages/gnome.scm | 60 +++++++++++++++++++++++++-----------------
gnu/packages/gtk.scm | 2 +-
2 files changed, 37 insertions(+), 25 deletions(-)

Toggle diff (112 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4b1adc2997..1c4f6a4c94 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -39,7 +39,7 @@
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
-;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
@@ -338,41 +338,28 @@ (define-public brasero
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
-(define-public libcloudproviders
+;;; Minimal variant, used to break a cycle with Inkscape.
+(define-public libcloudproviders-minimal
   (package
-    (name "libcloudproviders")
+    (name "libcloudproviders-minimal")
     (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append "mirror://gnome/sources/" name "/"
-                       (version-major+minor version) "/"
-                       name "-" version ".tar.xz"))
+        (string-append "mirror://gnome/sources/libcloudproviders/"
+                       (version-major+minor version)
+                       "/libcloudproviders-" version ".tar.xz"))
        (sha256
         (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
     (build-system meson-build-system)
-    (outputs '("out" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags
-       (list
-        "-Denable-gtk-doc=true")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'move-doc
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file
-                (string-append out "/share/gtk-doc")
-                (string-append doc "/share/gtk-doc"))
-               #t))))))
+     `(#:glib-or-gtk? #t             ; To wrap binaries and/or compile schemas
+       #:configure-flags (list "-Dintrospection=false"
+                               "-Denable-gtk-doc=false"
+                               "-Dvapigen=false")))
     (native-inputs
      `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
@@ -386,6 +373,31 @@ (define-public libcloudproviders
     (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
     (license license:lgpl3+)))
 
+(define-public libcloudproviders
+  (package/inherit libcloudproviders-minimal
+    (name "libcloudproviders")
+    (version "0.3.1")
+    (outputs (cons "doc" (package-outputs libcloudproviders-minimal)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments libcloudproviders-minimal)
+       ((#:configure-flags _)
+        '("-Denable-gtk-doc=true"))     ;false by default
+       ((#:phases phases '%standard-phases)
+        `(modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share"))
+                 (rename-file
+                  (string-append out "/share/gtk-doc")
+                  (string-append doc "/share/gtk-doc")))))))))
+    (native-inputs
+     (append
+         `(("gobject-introspection" ,gobject-introspection)
+           ("gtk-doc" ,gtk-doc/stable))
+         (package-native-inputs libcloudproviders-minimal)))))
+
 (define-public libgrss
   (package
     (name "libgrss")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index a515bca5ac..e92c6b1398 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1005,7 +1005,7 @@ (define-public gtk+
                           gdk-pixbuf+svg
                           gdk-pixbuf))
        ("glib" ,glib)
-       ("libcloudproviders" ,libcloudproviders)
+       ("libcloudproviders" ,libcloudproviders-minimal)
        ("libepoxy" ,libepoxy)
        ("libx11" ,libx11)
        ("libxcomposite" ,libxcomposite)
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 12/13] gnu: rest: Use libsoup-minimal.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-12-maxim.cournoyer@gmail.com
This is needed to prevent a dependency cycle between Inkscape and GTK+.

* gnu/packages/gnome.scm (rest)[propagated-inputs]
{libsoup}: Use the minimal variant.
---
gnu/packages/gnome.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b79cf48199..804b3dfb7f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4826,7 +4826,7 @@ (define-public rest
     (propagated-inputs
      ;; rest-0.7.pc refers to all these.
      `(("glib"    ,glib)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal)
        ("libxml2" ,libxml2)))
     (home-page "https://www.gtk.org/")
     (synopsis "RESTful web api query library")
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 13/13] gnu: inkscape: Remove the legacy 0.92 version.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-13-maxim.cournoyer@gmail.com
The older 0.92 Inkscape package was previously kept because of problems
building lib2geom on the ARM architectures. As this no longer appears to be a
problem (tested on the overdrive1 machine), finally replace the older Inkscape
by the newer 1.1 release.

* gnu/packages/inkscape.scm (inkscape-1.1): Delete variable, moving the
package definition to...
(inkscape): ... the now single inkscape variable. Remove trailing #t.
[tests?]: Remove.
[phases]{generate-gdk-pixbuf-loaders-cache-file}: Add phase.
---
gnu/packages/inkscape.scm | 90 +++++----------------------------------
1 file changed, 11 insertions(+), 79 deletions(-)

Toggle diff (146 lines)
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 1fd328eb1c..e891a707c1 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Boris A. Dekshteyn <boris.dekshteyn@gmail.com>
 ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;;
@@ -53,71 +53,6 @@ (define-module (gnu packages inkscape)
   #:use-module (gnu packages pkg-config))
 
 (define-public inkscape
-  (package
-    (name "inkscape")
-    (version "0.92.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://media.inkscape.org/dl/"
-                                  "resources/file/"
-                                  "inkscape-" version ".tar.bz2"))
-              (patches (search-patches "inkscape-poppler-0.76.patch"))
-              (sha256
-               (base32
-                "0pjinhjibfsz1aywdpgpj3k23xrsszpj4a1ya5562dkv2yl2vv2p"))))
-    (build-system cmake-build-system)
-    (inputs
-     `(("aspell" ,aspell)
-       ("gtkmm" ,gtkmm-2)
-       ("gtk" ,gtk+-2)
-       ("gsl" ,gsl)
-       ("poppler" ,poppler)
-       ("libpng" ,libpng)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("libgc" ,libgc)
-       ("freetype" ,freetype)
-       ("popt" ,popt)
-       ("potrace" ,potrace)
-       ("python" ,python-wrapper)
-       ("lcms" ,lcms)
-       ("boost" ,boost)))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
-    ;; FIXME: tests require gmock
-    (arguments
-     `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-icon-cache-generator
-           (lambda _
-             (substitute* "share/icons/application/CMakeLists.txt"
-              (("gtk-update-icon-cache") "true"))
-             #t))
-         (add-after 'unpack 'adjust-for-new-poppler
-           (lambda _
-             (substitute* (find-files "src/extension/internal/pdfinput")
-               ;; Needed for Poppler 0.82.
-               (("Unicode \\*u") "Unicode const *u")
-               ;; Needed for Poppler 0.83.
-               (("\\(GfxPath") "(const GfxPath")
-               (("GfxSubpath") "const GfxSubpath")
-               (("new GlobalParams\\(\\)")
-                "std::unique_ptr<GlobalParams>(new GlobalParams())")
-               (("new GlobalParams\\(poppler_datadir\\)")
-                "std::unique_ptr<GlobalParams>(new GlobalParams(poppler_datadir))"))
-             #t)))))
-    (home-page "https://inkscape.org/")
-    (synopsis "Vector graphics editor")
-    (description "Inkscape is a vector graphics editor.  What sets Inkscape
-apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,
-as the native format.")
-    (license license:gpl2+)))
-
-(define-public inkscape-1.1
   (package
     (name "inkscape")
     (version "1.1")
@@ -211,12 +146,10 @@ (define-public inkscape-1.1
            ;; Lift the requirement on the double-conversion library, as
            ;; it is only needed by lib2geom, which is now unbundled.
            (substitute* "CMakeScripts/DefineDependsandFlags.cmake"
-             ((".*find_package\\(DoubleConversion.*") ""))
-           #t))))
+             ((".*find_package\\(DoubleConversion.*") ""))))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #t
-       #:test-target "check"            ;otherwise some test binaries are missing
+     `(#:test-target "check"            ;otherwise some test binaries are missing
        #:imported-modules (,@%cmake-build-system-modules
                            (guix build glib-or-gtk-build-system))
        #:modules ((guix build cmake-build-system)
@@ -224,11 +157,13 @@ (define-public inkscape-1.1
                   (guix build utils))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
+           (assoc-ref glib-or-gtk:%standard-phases
+                      'generate-gdk-pixbuf-loaders-cache-file))
          (add-after 'unpack 'patch-icon-cache-generator
            (lambda _
              (substitute* "share/icons/application/CMakeLists.txt"
-               (("gtk-update-icon-cache") "true"))
-             #t))
+               (("gtk-update-icon-cache") "true"))))
          (add-after 'unpack 'disable-latex-export-tests
            ;; FIXME: For some reason the test.pdf_tex file generated by the
            ;; "--export-latex" lacks "some text" in its content when run in
@@ -236,14 +171,11 @@ (define-public inkscape-1.1
            (lambda _
              (substitute* "testfiles/cli_tests/CMakeLists.txt"
                (("add_cli_test\\(export-latex")
-                "message(TEST_DISABLED: export-latex"))
-             #t))
+                "message(TEST_DISABLED: export-latex"))))
          (add-after 'unpack 'set-home
            ;; Mute Inkscape warnings during tests.
            (lambda _
-             (setenv "HOME" (getcwd))
-             (format #t "ARGS is set to: ~a" (getenv "ARGS"))
-             #t))
+             (setenv "HOME" (getcwd))))
          ;; Move the check phase after the install phase, as when run in the
          ;; tests, Inkscape relies on files that are not yet installed, such
          ;; as the "share/inkscape/ui/units.xml" file.
@@ -259,8 +191,8 @@ (define-public inkscape-1.1
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/inkscape")
-                 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))))
-             #t)))))
+                 `("GUIX_PYTHONPATH" ":" prefix
+                   (,(getenv "GUIX_PYTHONPATH"))))))))))
     (inputs
      `(("aspell" ,aspell)
        ("autotrace" ,autotrace)
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 14/20] gnu: ungoogled-chromium: Use the new lld-as-ld-wrapper.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-14-maxim.cournoyer@gmail.com
* gnu/packages/chromium.scm (make-lld-wrapper): Delete procedure.
(ungoogled-chromium)[native-inputs]: Replace its use by lld-as-ld-wrapper.
---
gnu/packages/chromium.scm | 27 +--------------------------
1 file changed, 1 insertion(+), 26 deletions(-)

Toggle diff (47 lines)
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 534b9a4ad9..2d67182e22 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -460,31 +460,6 @@ (define opus+custom
         `(cons "--enable-custom-modes"
                ,flags))))))
 
-;; 'make-ld-wrapper' can only work with an 'ld' executable, so we need
-;; this trick to make it wrap 'lld'.
-(define (make-lld-wrapper lld)
-  (define lld-as-ld
-    (computed-file "lld-ld"
-                   #~(begin
-                       (mkdir #$output)
-                       (mkdir (string-append #$output "/bin"))
-                       (symlink #$(file-append lld "/bin/lld")
-                                (string-append #$output "/bin/ld")))))
-
-  ;; Create a wrapper for LLD that inserts appropriate -rpath entries.
-  (define lld-wrapper
-    (make-ld-wrapper "lld-wrapper"
-                     #:binutils lld-as-ld))
-
-  ;; Clang looks for an 'ld.lld' executable, so we need to symlink it back.
-  (computed-file "lld-wrapped"
-                 #~(begin
-                     (mkdir #$output)
-                     (mkdir (string-append #$output "/bin"))
-                     (symlink #$(file-append lld-wrapper "/bin/ld")
-                              (string-append #$output "/bin/lld"))
-                     (symlink "lld" (string-append #$output "/bin/ld.lld")))))
-
 (define-public ungoogled-chromium
   (package
     (name "ungoogled-chromium")
@@ -848,7 +823,7 @@ (define-public ungoogled-chromium
        ("clang" ,clang-12)
        ("gn" ,gn)
        ("gperf" ,gperf)
-       ("ld-wrapper" ,(make-lld-wrapper lld))
+       ("ld-wrapper" ,lld-as-ld-wrapper)
        ("ninja" ,ninja)
        ("node" ,node-lts)
        ("pkg-config" ,pkg-config)
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 15/20] gnu: gtk: Add the generate-gdk-pixbuf-loaders-cache-file phase.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-15-maxim.cournoyer@gmail.com
* gnu/packages/gtk.scm (gtk+)[arguments]: Import the (guix build
glib-or-gtk-build-system) module and put it in scope.
[phases]{generate-gdk-pixbuf-loaders-cache-file}: New phase.
(gtk): Likewise.
---
gnu/packages/gtk.scm | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)

Toggle diff (54 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 8f57f660c4..22106c1185 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1039,7 +1039,12 @@ (define-public gtk+
        ("xorg-server" ,xorg-server-for-tests)
        ("xsltproc" ,libxslt)))
     (arguments
-     `(#:disallowed-references (,xorg-server-for-tests)
+     `(#:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%gnu-build-system-modules)
+       #:modules ((guix build utils)
+                  (guix build gnu-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
+       #:disallowed-references (,xorg-server-for-tests)
        ;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes
        ;; to "doc".
        #:configure-flags (list (string-append "--with-html-dir="
@@ -1055,6 +1060,9 @@ (define-public gtk+
                                "--enable-broadway-backend")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
+           (assoc-ref glib-or-gtk:%standard-phases
+                      'generate-gdk-pixbuf-loaders-cache-file))
          (add-after 'unpack 'disable-failing-tests
            (lambda _
              (substitute* "testsuite/gtk/Makefile.in"
@@ -1119,7 +1127,12 @@ (define-public gtk
     (build-system meson-build-system)
     (outputs '("out" "bin" "doc"))
     (arguments
-     `(#:configure-flags
+     `(#:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%gnu-build-system-modules)
+       #:modules ((guix build utils)
+                  (guix build gnu-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
+       #:configure-flags
        (list
         "-Dbroadway-backend=true"      ;for broadway display-backend
         "-Dcloudproviders=enabled"     ;for cloud-providers support
@@ -1133,6 +1146,9 @@ (define-public gtk
         "-Dman-pages=true")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
+           (assoc-ref glib-or-gtk:%standard-phases
+                      'generate-gdk-pixbuf-loaders-cache-file))
          (add-after 'unpack 'patch
            (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
              ;; Correct DTD resources of docbook.
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 16/20] build: glib-or-gtk: Generate the gdk-pixbuf-loaders cache file in a phase.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-16-maxim.cournoyer@gmail.com
Adding a profile hook to do so covers most use cases, but it is still
necessary to have the gdk-pixbuf loaders cache file computed at build time, as
software may expect to find loaders support at that time.

* guix/build/glib-or-gtk-build-system.scm: Delete trailing #t.
(%gdk-pixbuf-loaders-cache-file-prefix): New variable.
(generate-gdk-pixbuf-loaders-cache): New procedure.
(generate-gdk-pixbuf-loaders-cache-file): Add procedure...
(%standard-phases): ... and register it as a build phase.
---
guix/build-system/glib-or-gtk.scm | 5 ++-
guix/build/glib-or-gtk-build-system.scm | 55 +++++++++++++++++++++++--
2 files changed, 55 insertions(+), 5 deletions(-)

Toggle diff (115 lines)
diff --git a/guix/build-system/glib-or-gtk.scm b/guix/build-system/glib-or-gtk.scm
index 0c88f039d2..aa9703829b 100644
--- a/guix/build-system/glib-or-gtk.scm
+++ b/guix/build-system/glib-or-gtk.scm
@@ -26,6 +26,8 @@ (define-module (guix build-system glib-or-gtk)
   #:use-module (guix monads)
   #:use-module (guix derivations)
   #:use-module (guix search-paths)
+  #:use-module ((guix build glib-or-gtk-build-system)
+                #:select (%gdk-pixbuf-loaders-cache-file))
   #:use-module (guix build-system)
   #:use-module (guix build-system gnu)
   #:use-module (guix packages)
@@ -33,7 +35,8 @@ (define-module (guix build-system glib-or-gtk)
   #:export (%glib-or-gtk-build-system-modules
             glib-or-gtk-build
             glib-or-gtk-cross-build
-            glib-or-gtk-build-system))
+            glib-or-gtk-build-system)
+  #:re-export (%gdk-pixbuf-loaders-cache-file)) ;for convenience
 
 ;; Commentary:
 ;;
diff --git a/guix/build/glib-or-gtk-build-system.scm b/guix/build/glib-or-gtk-build-system.scm
index c2f814eaeb..785eb54fdc 100644
--- a/guix/build/glib-or-gtk-build-system.scm
+++ b/guix/build/glib-or-gtk-build-system.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,8 @@ (define-module (guix build glib-or-gtk-build-system)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (%standard-phases
+            %gdk-pixbuf-loaders-cache-file
+            generate-gdk-pixbuf-loaders-cache
             glib-or-gtk-build))
 
 ;; Commentary:
@@ -183,8 +186,7 @@ (define handle-output
                        (apply wrap-program program #:sh (sh) env-vars))
                      bin-list))))))
 
-  (for-each handle-output outputs)
-  #t)
+  (for-each handle-output outputs))
 
 (define* (compile-glib-schemas #:key outputs #:allow-other-keys)
   "Implement phase \"glib-or-gtk-compile-schemas\": compile \"glib\" schemas
@@ -197,11 +199,56 @@ (define* (compile-glib-schemas #:key outputs #:allow-other-keys)
                             (not (file-exists?
                                   (string-append schemasdir "/gschemas.compiled"))))
                    (invoke "glib-compile-schemas" schemasdir)))))
-            outputs)
-  #t)
+            outputs))
+
+(define %gdk-pixbuf-loaders-cache-file
+  "lib/gdk-pixbuf-2.0/2.10.0/loaders.cache")
+
+(define (generate-gdk-pixbuf-loaders-cache directories outputs)
+  "Generate the loaders.cache file used by gdk-pixbuf to locate the available
+loaders among DIRECTORIES, and set the GDK_PIXBUF_MODULE_FILE environment
+variable.  The cache file is installed under OUTPUTS.  Return the first cache
+file name if one was created else #f."
+  (let* ((loaders (append-map
+                   (cut find-files <> "^libpixbufloader-.*\\.so$")
+                   directories))
+         (outputs* (map (cut string-append <> "/"
+                             %gdk-pixbuf-loaders-cache-file)
+                        outputs))
+         (loaders.cache (first outputs*))
+         (loaders.cache-copies (cdr outputs*)))
+    (if (not (null? loaders))
+        (begin
+          (mkdir-p (dirname loaders.cache))
+          (setenv "GDK_PIXBUF_MODULE_FILE" loaders.cache)
+          (apply invoke "gdk-pixbuf-query-loaders" "--update-cache" loaders)
+          (for-each (lambda (f)
+                      (mkdir-p (dirname f))
+                      (copy-file loaders.cache f))
+                    loaders.cache-copies)
+          loaders.cache)
+        #f)))
+
+(define* (generate-gdk-pixbuf-loaders-cache-file #:key inputs outputs
+                                                 #:allow-other-keys)
+  "Build phase that Wraps the GENERATE-GDK-PIXBUF-LOADERS-CACHE procedure."
+  ;; Conditionally compute the cache file if the gdk-pixbuf command is
+  ;; available on PATH (it comes with gdk-pixbuf).
+  (when (which "gdk-pixbuf-query-loaders")
+    (let ((loaders.cache (generate-gdk-pixbuf-loaders-cache
+                          (map cdr inputs)
+                          (filter-map identity
+                                      (list
+                                       (assoc-ref outputs "out")
+                                       (assoc-ref outputs "bin")
+                                       (assoc-ref outputs "lib"))))))
+      (when loaders.cache
+        (format #t "GDK_PIXBUF_MODULE_FILE set to `~a'~%" loaders.cache)))))
 
 (define %standard-phases
   (modify-phases gnu:%standard-phases
+    (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
+      generate-gdk-pixbuf-loaders-cache-file)
     (add-after 'install 'glib-or-gtk-compile-schemas compile-glib-schemas)
     (add-after 'install 'glib-or-gtk-wrap wrap-all-programs)))
 
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 17/20] profiles: Add a gdk-pixbuf-loaders-cache-file hook.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-17-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(-)

Toggle diff (56 lines)
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
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 19/20] gnu: gtk: Replace gdk-pixbuf+svg by librsvg.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-19-maxim.cournoyer@gmail.com
With the addition of a profile hook for computing the gdk-pixbuf loaders cache
file, there is no longer a need for gdk-pixbuf+svg, and librsvg can propagate
gdk-pixbuf without fear, so replace the former for the latter.

The replacement was automated with the following command:

$ git grep -l ',gdk-pixbuf+svg)' \
| xargs sed 's/(".*" ,gdk-pixbuf+svg)/("librsvg" ,librsvg)/' -i

* gnu/packages/gtk.scm (gdk-pixbuf+svg): Delete package.
(gtk+-2)[propagated-inputs]: Replace gdk-pixbuf+svg with librsvg.
(gtk+)[propagated-inputs]: Likewise.
* gnu/packages/gnome.scm (gdk-pixbuf+svg): Add deprecated package.
---
gnu/packages/dunst.scm | 2 +-
gnu/packages/geo.scm | 2 +-
gnu/packages/gnome.scm | 14 +++++++-------
gnu/packages/graphviz.scm | 2 +-
gnu/packages/gstreamer.scm | 4 ++--
gnu/packages/gtk.scm | 35 +++--------------------------------
gnu/packages/image.scm | 2 +-
gnu/packages/mail.scm | 2 +-
gnu/packages/mate.scm | 12 ++++++------
gnu/packages/messaging.scm | 2 +-
gnu/packages/networking.scm | 2 +-
gnu/packages/tryton.scm | 2 +-
gnu/packages/video.scm | 2 +-
gnu/packages/vnc.scm | 2 +-
14 files changed, 28 insertions(+), 57 deletions(-)

Toggle diff (346 lines)
diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm
index ce2c04bac6..9f3e4c036c 100644
--- a/gnu/packages/dunst.scm
+++ b/gnu/packages/dunst.scm
@@ -67,7 +67,7 @@ (define-public dunst
        ("which" ,which)))
     (inputs
      `(("dbus" ,dbus)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)   ; for svg support
+       ("librsvg" ,librsvg)   ; for svg support
        ("glib" ,glib)
        ("cairo" ,cairo)
        ("pango" ,pango)
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 938720f928..6cba568119 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -279,7 +279,7 @@ (define-public gnome-maps
        ("libsoup" ,libsoup)
        ("libgweather" ,libgweather)
        ("libxml2" ,libxml2)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib-networking" ,glib-networking)
        ("geoclue" ,geoclue)
        ("geocode-glib" ,geocode-glib)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index cbdf1d9762..a89cd8e7b4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -602,7 +602,7 @@ (define-public libdmapsharing
        ("vala" ,vala)))
     (inputs
      `(("avahi" ,avahi)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("gee" ,libgee)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gtk+" ,gtk+)))
@@ -921,7 +921,7 @@ (define-public gnome-photos
     (inputs
      `(("babl" ,babl)
        ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("gegl" ,gegl)
        ("geocode-glib" ,geocode-glib)
        ("gexiv2" ,gexiv2)
@@ -2820,7 +2820,7 @@ (define-public gtg
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
+     `(("librsvg" ,librsvg)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ("pango" ,pango)
@@ -4257,7 +4257,7 @@ (define-public drawing
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
+     `(("librsvg" ,librsvg)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ("pango" ,pango)
@@ -6832,7 +6832,7 @@ (define-public epiphany
     (inputs
      `(("avahi" ,avahi)
        ("gcr" ,gcr)
-       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
+       ("librsvg" ,librsvg) ; for loading SVG files
        ("glib-networking" ,glib-networking)
        ("gnome-desktop" ,gnome-desktop)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
@@ -8713,7 +8713,7 @@ (define-public gnome-shell
        ("evolution-data-server" ,evolution-data-server)
        ("gcr" ,gcr)
        ("gdm" ,gdm)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("gjs" ,gjs)
        ("gtk" ,gtk)
        ("gnome-autoar" ,gnome-autoar)
@@ -8777,7 +8777,7 @@ (define-public gtk-vnc
        ("vala" ,vala)))
     (inputs
      `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("gnutls" ,gnutls)
        ("libgcrypt" ,libgcrypt)
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 25ff51194f..16fbfb6842 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -357,7 +357,7 @@ (define-public xdot
                  (,(dirname (search-input-file inputs "bin/dot"))))))))))
     (inputs
      `(("atk" ,atk)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("graphviz" ,graphviz)
        ("gtk+" ,gtk+)
        ("python-pycairo" ,python-pycairo)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 1ac5cd4b8e..2a7679b490 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -311,7 +311,7 @@ (define-public libvisual-plugins
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("esound" ,esound)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("gtk+" ,gtk+-2)
        ("jack" ,jack-2)
        ("libx11" ,libx11)
@@ -668,7 +668,7 @@ (define-public gst-plugins-good
        ("bzip2" ,bzip2)
        ("cairo" ,cairo)
        ("flac" ,flac)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("glib-networking" ,glib-networking)
        ("glu" ,glu)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 0463e26246..5bfc19e19d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -714,35 +714,6 @@ (define-public gdk-pixbuf
     (home-page "https://wiki.gnome.org/Projects/GdkPixbuf")
     (license license:lgpl2.1+)))
 
-;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
-;; on gdk-pixbuf, so this new variable.  Also, librsvg adds 90MiB to the
-;; closure size.
-(define-public gdk-pixbuf+svg
-  (package/inherit gdk-pixbuf
-    (name "gdk-pixbuf+svg")
-    (inputs
-     `(("librsvg" ,librsvg)
-       ,@(package-inputs gdk-pixbuf)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments gdk-pixbuf)
-        ((#:phases phases)
-          `(modify-phases ,phases
-         (add-after 'install 'register-svg-loader
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (librsvg (assoc-ref inputs "librsvg"))
-                    (loaders
-                     (append
-                      (find-files out "^libpixbufloader-.*\\.so$")
-                      (find-files librsvg "^libpixbufloader-.*\\.so$")))
-                    (gdk-pixbuf-query-loaders
-                     (string-append out "/bin/gdk-pixbuf-query-loaders")))
-               (apply invoke
-                      gdk-pixbuf-query-loaders
-                      "--update-cache"
-                      loaders))))))))
-    (synopsis "Image loading library, with SVG support")))
-
 ;;; A minimal variant used to prevent a cycle with Inkscape.
 (define-public at-spi2-core-minimal
   (hidden-package
@@ -903,7 +874,7 @@ (define-public gtk+-2
        ;; Rust is not supported well on every architecture yet.
        ("gdk-pixbuf" ,(if (string-prefix? "x86_64" (or (%current-target-system)
                                                        (%current-system)))
-                          gdk-pixbuf+svg
+                          librsvg
                           gdk-pixbuf))
        ("glib" ,glib)
        ("pango" ,pango)))
@@ -1005,7 +976,7 @@ (define-public gtk+
        ;; SVG support is optional and requires librsvg, which pulls in rust.
        ;; Rust is not supported well on every architecture yet.
        ("gdk-pixbuf" ,(if (target-x86-64?)
-                          gdk-pixbuf+svg
+                          librsvg
                           gdk-pixbuf))
        ("glib" ,glib)
        ("libcloudproviders" ,libcloudproviders-minimal)
@@ -1267,7 +1238,7 @@ (define-public gtk
      ;; Following dependencies are referenced in .pc files.
      `(("cairo" ,cairo)
        ("fontconfig" ,fontconfig)
-       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("graphene" ,graphene)
        ("libepoxy" ,libepoxy)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 99852fc205..87093b14fa 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -2345,7 +2345,7 @@ (define-public mypaint
        ("gettext" ,gettext-minimal)))
     (inputs
      `(("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("hicolor-icon-theme" ,hicolor-icon-theme)
        ("libmypaint" ,libmypaint)
        ("mypaint-brushes" ,mypaint-brushes)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 23a8710b9b..5c72a2f1e1 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1687,7 +1687,7 @@ (define-public claws-mail
        ("enchant" ,enchant)
        ("expat" ,expat)
        ("fontconfig" ,fontconfig)
-       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("ghostscript" ,ghostscript)
        ("glib" ,glib)
        ("gnupg" ,gnupg)
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 08fd3562b3..41165e8de7 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -473,7 +473,7 @@ (define-public libmatekbd
        ("gobject-introspection" ,gobject-introspection)))
     (inputs
      `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
        ("libx11" ,libx11)
@@ -983,7 +983,7 @@ (define-public mate-control-center
        ("polkit" ,polkit)
        ("startup-notification" ,startup-notification)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf+svg) ; mate-slab.pc
+     `(("librsvg" ,librsvg) ; mate-slab.pc
        ("librsvg" ,librsvg))) ; mate-slab.pc
     (home-page "https://mate-desktop.org/")
     (synopsis "MATE Desktop configuration tool")
@@ -1219,7 +1219,7 @@ (define-public mate-screensaver
        ("dbus-glib" ,dbus-glib)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("libcanberra" ,libcanberra)
        ("libglade" ,libglade)
        ("libmatekbd" ,libmatekbd)
@@ -1271,7 +1271,7 @@ (define-public mate-utils
        ("cairo" ,cairo)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("libcanberra" ,libcanberra)
        ("libgtop" ,libgtop)
        ("libx11" ,libx11)
@@ -1324,7 +1324,7 @@ (define-public eom
        ("exempi" ,exempi)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("libcanberra" ,libcanberra)
        ("libx11" ,libx11)
        ("libxext" ,libxext)
@@ -1384,7 +1384,7 @@ (define-public engrampa
        ("file" ,file)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("json-glib" ,json-glib)
        ("libcanberra" ,libcanberra)
        ("libx11" ,libx11)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index b5f39cc408..ef7b9085e5 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1306,7 +1306,7 @@ (define-public dino
      ;; NOTE: Commented-out lines are to be enabled in v0.3.0.
      `(("atk" ,atk)
        ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("glib-networking" ,glib-networking)
        ("gpgme" ,gpgme)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 4a415e9460..c87dd5440a 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -738,7 +738,7 @@ (define-public blueman
     (inputs
      `(("bluez" ,bluez)
        ("dbus" ,dbus)
-       ("gdkpixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
        ("iproute2" ,iproute)
diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm
index d5cfb63e1b..c1275edd22 100644
--- a/gnu/packages/tryton.scm
+++ b/gnu/packages/tryton.scm
@@ -113,7 +113,7 @@ (define-public tryton
      `(("glib-compile-schemas" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
+     `(("librsvg" ,librsvg)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ("python-dateutil" ,python-dateutil)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ebee15e296..b9b1ca64be 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -4293,7 +4293,7 @@ (define-public pitivi
         ("gst-libav" ,gst-libav)
         ("gsound" ,gsound)
         ("gtk+" ,gtk+)
-        ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
+        ("librsvg" ,librsvg)
         ("libpeas" ,libpeas)
         ("libnotify" ,libnotify)
         ("pango" ,pango)
diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm
index 4c2b13c93c..00ae2be63d 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -120,7 +120,7 @@ (define-public remmina
        ("ffmpeg" ,ffmpeg)
        ("freerdp" ,freerdp)             ; for rdp plugin
        ("gcrypt" ,libgcrypt)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("gnome-keyring" ,gnome-keyring)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 20/20] gnu: librsvg: Preserve the loaders.cache file.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-20-maxim.cournoyer@gmail.com
Now that we have a search path that honors it on gdk-pixbuf, it is more
valuable to keep it.

* gnu/packages/gnome.scm (librsvg)[phases]{pre-configure}: Install loaders,
cache file to locations derived from %gdk-pixbuf-loaders-cache-file.
---
gnu/packages/gnome.scm | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

Toggle diff (33 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a89cd8e7b4..7556b0cf84 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3487,17 +3487,20 @@ (define-public librsvg
              (substitute* '("Makefile.am" "Makefile.in")
                (("--locked") ""))))
          (add-before 'configure 'pre-configure
-           (lambda _
+           (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "gdk-pixbuf-loader/Makefile.in"
                ;; By default the gdk-pixbuf loader is installed under
                ;; gdk-pixbuf's prefix.  Work around that.
                (("gdk_pixbuf_moduledir = .*$")
                 (string-append "gdk_pixbuf_moduledir = "
-                               "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
-                               "loaders\n"))
-               ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
-               (("gdk_pixbuf_cache_file = .*$")
-                "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))))
+                               "$(prefix)/"
+                               ,(dirname %gdk-pixbuf-loaders-cache-file) "/"
+                               "loaders\n")))
+             (substitute* "configure"
+               (("gdk_pixbuf_cache_file=.*")
+                (string-append "gdk_pixbuf_cache_file="
+                               (assoc-ref outputs "out") "/"
+                               ,%gdk-pixbuf-loaders-cache-file "\n")))))
          (add-after 'configure 'gnu-configure
            (lambda* (#:key outputs #:allow-other-keys #:rest args)
              (apply (assoc-ref gnu:%standard-phases 'configure)
-- 
2.33.1
M
M
Maxim Cournoyer wrote on 27 Oct 2021 06:51
[PATCH core-update-frozen 18/20] gnu: gdk-pixbuf: Add a search path for the loaders cache file.
(address . 51428@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20211027045151.9889-18-maxim.cournoyer@gmail.com

The previous commit added a profile hook to compute a gdk-pixbuf loaders cache
file. This change enables gdk-pixbuf to make use of it.

* gnu/packages/gtk.scm (gdk-pixbuf)[native-search-paths]: Add a search path
specification to set the GDK_PIXBUF_MODULE_FILE environment variable.
---
gnu/packages/gtk.scm | 10 ++++++++++
1 file changed, 10 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 22106c1185..0463e26246 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -52,6 +52,8 @@ (define-module (gnu packages gtk)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix build utils) #:select (alist-replace))
+  #:use-module ((guix build glib-or-gtk-build-system)
+                #:select (%gdk-pixbuf-loaders-cache-file))
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -697,6 +699,14 @@ (define-public gdk-pixbuf
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
+    (native-search-paths
+     ;; This file is produced by the gdk-pixbuf-loaders-cache-file
+     ;; profile hook.
+     (list (search-path-specification
+            (variable "GDK_PIXBUF_MODULE_FILE")
+            (files (list %gdk-pixbuf-loaders-cache-file))
+            (separator #f)              ;single valued
+            (file-type 'regular))))
     (synopsis "Image loading library")
     (description "GdkPixbuf is a library that loads image data in various
 formats and stores it as linear buffers in memory.  The buffers can then be
-- 
2.33.1
L
L
Ludovic Courtès wrote on 27 Oct 2021 16:45
Re: bug#51428: core-updates-frozen-batched-changes built and ready to merge
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
87mtmufrw3.fsf_-_@gnu.org
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (5 lines)
> 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.

[...]

Toggle quote (3 lines)
> + (mlet %store-monad ((%gdk-pixbuf (manifest-lookup-package
> + manifest "gdk-pixbuf"))

You could call it ‘gdk-pixbuf?’ since it’s used as a boolean.

Toggle quote (7 lines)
> + (gexp->derivation "gdk-pixbuf-loaders-cache-file" build
> + #:local-build? #t
> + #:substitutable? #f
> + #:properties
> + '((type . profile-hook)
> + (hook . gdk-pixbuf-loaders-cache-file)))

No showstopper but we should eventually add this to (guix status) for
nicer reporting.

My 2¢,
Ludo’.
L
L
Ludovic Courtès wrote on 27 Oct 2021 16:48
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
87h7d2frqv.fsf_-_@gnu.org
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (3 lines)
> +(define %gdk-pixbuf-loaders-cache-file
> + "lib/gdk-pixbuf-2.0/2.10.0/loaders.cache")

A comment indicating that this file is built by the hook would be nice,
but let’s not trigger a rebuild just for that.

Isn’t the hard-coded version number going to cause troubles when
gdk-pixbuf is upgraded? Or if we have some packages using a newer
version while others remain on 2.10.0?

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 27 Oct 2021 16:51
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
87bl3afrma.fsf@gnu.org
Hello!

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (4 lines)
> I've experimented quite a bit with core-updates-frozen-batched-changes
> in the last weeks, and it seems to be in a decent shape, good enough to
> merge into core-updates-frozen, I think.

Woo! Congrats!

Toggle quote (13 lines)
> I'd like to bring attention to some non-trivial changes that I included
> in the branch:
>
> 1. merging of the staging branch -- quite a few conflicts had to be
> resolved.
>
> 2. Replacement of inkscape@0.92 by inkscape@1.1, which required solving
> some dependency cycles.
>
> 3. Fix for https://issues.guix.gnu.org/50957 via a new search path
> specification on gdk-pixbuf and accompanying build phase and profile
> hook.

Well done!

Toggle quote (8 lines)
> I'll send the corresponding patches for review, which can also be
> consulted directly on the core-updates-frozen-batched-changes branch,
> which I've manually built on Berlin for things such as Rust and
> ungoogled-chromium.
>
> I'd like to merge it into core-updates-frozen by the beginning of
> November, unless there are problems you can spot :-).

I’ve sent minor comments (no blockers) regarding the bits I’m the most
familiar with.

I’d say that if your testing is conclusive, you can probably merge while
fresh substitutes are still around!

Thanks,
Ludo’.
T
T
Thiago Jung Bauermann wrote on 27 Oct 2021 16:52
Re: [bug#51428] core-updates-frozen-batched-changes built and ready to merge
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
8713634.9p3TXzYIDv@popigai
Hello Maxim,

Em quarta-feira, 27 de outubro de 2021, às 01:04:01 -03, Maxim Cournoyer escreveu:
Toggle quote (6 lines)
> Hello,
>
> I've experimented quite a bit with core-updates-frozen-batched-changes
> in the last weeks, and it seems to be in a decent shape, good enough to
> merge into core-updates-frozen, I think.

Nice! Thank you very much for this work!

Toggle quote (3 lines)
> I'd like to merge it into core-updates-frozen by the beginning of
> November, unless there are problems you can spot :-).

I wouldn’t say it’s a problem but it’s an additional significant change to be aware of:

polkit is updated to depend on mozjs-78, which depends on Rust which only builds on
x86_64. The practical consequence is that polkit and all its dependents (which include
GTK+ and some Qt libraries) become x86_64-only packages. I’m not saying it’s a problem,
but it’s a big change and I thought it would beuseful to mention it.

I discovered this yesterday night when playing a bit with the core-updates-frozen-
batched-changes branch on ppc64le.

This may be a temporary limitation, because there are two pull requests for polkit
replacing mozjs with duktape:


--
Thanks,
Thiago

--------
Attachment: file
M
M
Maxim Cournoyer wrote on 27 Oct 2021 17:37
(name . Thiago Jung Bauermann)(address . bauermann@kolabnow.com)(address . 51428@debbugs.gnu.org)
871r46cwcu.fsf@gmail.com
Hi Thiago,

Thiago Jung Bauermann <bauermann@kolabnow.com> writes:

Toggle quote (24 lines)
> Hello Maxim,
>
> Em quarta-feira, 27 de outubro de 2021, às 01:04:01 -03, Maxim Cournoyer escreveu:
>> Hello,
>>
>> I've experimented quite a bit with core-updates-frozen-batched-changes
>> in the last weeks, and it seems to be in a decent shape, good enough to
>> merge into core-updates-frozen, I think.
>
> Nice! Thank you very much for this work!
>
>> I'd like to merge it into core-updates-frozen by the beginning of
>> November, unless there are problems you can spot :-).
>
> I wouldn’t say it’s a problem but it’s an additional significant change to be aware of:
>
> polkit is updated to depend on mozjs-78, which depends on Rust which only builds on
> x86_64. The practical consequence is that polkit and all its dependents (which include
> GTK+ and some Qt libraries) become x86_64-only packages. I’m not saying it’s a problem,
> but it’s a big change and I thought it would beuseful to mention it.
>
> I discovered this yesterday night when playing a bit with the core-updates-frozen-
> batched-changes branch on ppc64le.

Good observation! Did rust ended up building and working fine there?
I'm hoping that with the reduced Rust bootstrap chain that starts with
1.39 and uses newer components, it may finally be more accessible to
other architectures.

Toggle quote (6 lines)
> This may be a temporary limitation, because there are two pull requests for polkit
> replacing mozjs with duktape:
>
> https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/35[1]
> https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/97[2]

Good to know!

Thank you,

Maxim
T
T
Thiago Jung Bauermann wrote on 27 Oct 2021 18:26
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
4222209.gjDTJ53qjz@popigai
Hello Maxim,

Em quarta-feira, 27 de outubro de 2021, às 12:37:21 -03, Maxim Cournoyer escreveu:
Toggle quote (19 lines)
> Thiago Jung Bauermann <bauermann@kolabnow.com> writes:
> > Em quarta-feira, 27 de outubro de 2021, às 01:04:01 -03, Maxim Cournoyer escreveu:
> >> I'd like to merge it into core-updates-frozen by the beginning of
> >> November, unless there are problems you can spot :-).
> >
> > I wouldn’t say it’s a problem but it’s an additional significant change
> > to be aware of:
> >
> > polkit is updated to depend on mozjs-78, which depends on Rust which
> > only builds on x86_64. The practical consequence is that polkit and
> > all its dependents (which include GTK+ and some Qt libraries) become
> > x86_64-only packages. I’m not saying it’s a problem, but it’s a big
> > change and I thought it would beuseful to mention it.
> >
> > I discovered this yesterday night when playing a bit with the
> > core-updates-frozen- batched-changes branch on ppc64le.
>
> Good observation! Did rust ended up building and working fine there?

It didn’t. mrustc builds, but when rust’s build phase tries to use it,
mrustc errors out:

Toggle snippet (8 lines)
bin/minicargo rustc-1.39.0-src/src/libstd --vendor-dir rustc-1.39.0-src/vendor --script-overrides script-overrides/stable-1.39.0-linux/ --output-dir output/ -j8 --manifest-overrides rustc-1.39.0-overrides.toml
> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/bin/mrustc -Z print-cfgs
Unknown target name ''
Process was terminated with signal 6
EXCEPTION: Unable to invoke compiler to get config options
make: *** [minicargo.mk:82: output/libstd.rlib] Error 1

Toggle quote (4 lines)
> I'm hoping that with the reduced Rust bootstrap chain that starts with
> 1.39 and uses newer components, it may finally be more accessible to
> other architectures.

There’s an unmerged PR for mrustc adding support for ppc64 but I haven’t
tried it:


Accessing the link now, I see that someone reported being able to bootstrap
rustc 1.29 on powerpc64le-linux with it! \o/

I’ll try it out within the next couple of days and send a patch if it works.

Toggle quote (8 lines)
> > This may be a temporary limitation, because there are two pull requests
> > for polkit replacing mozjs with duktape:
> >
> > https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/35[1]
> > https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/97[2]
>
> Good to know!

And duktape builds on ppc64le. :-)

Changing subjects a bit: I forgot to report in my last email that I tested:

$ guix pull --url=$HOME/src/guix \
--branch= core-updates-frozen-batched-changes

on powerpc64le-linux and it worked. Well, almost. It did when I included
the mariadb patch from https://issues.guix.gnu.org/51376[2](which is already
in core-updates-frozen).

--
Thanks,
Thiago

--------
Attachment: file
M
M
Maxim Cournoyer wrote on 27 Oct 2021 19:51
Re: bug#51428: core-updates-frozen-batched-changes built and ready to merge
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 51428@debbugs.gnu.org)
87v91ibbkx.fsf@gmail.com
Hello,

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

Toggle quote (23 lines)
> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> 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.
>
> [...]
>
>> + (mlet %store-monad ((%gdk-pixbuf (manifest-lookup-package
>> + manifest "gdk-pixbuf"))
>
> You could call it ‘gdk-pixbuf?’ since it’s used as a boolean.
>
>> + (gexp->derivation "gdk-pixbuf-loaders-cache-file" build
>> + #:local-build? #t
>> + #:substitutable? #f
>> + #:properties
>> + '((type . profile-hook)
>> + (hook . gdk-pixbuf-loaders-cache-file)))

Good idea; done:

modified guix/profiles.scm
@@ -1167,8 +1167,8 @@ (define (gdk-pixbuf-loaders-cache-file 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"))
+ (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
@@ -1178,7 +1178,7 @@ (define build
(setenv "PATH" (string-append #$gdk-pixbuf-bin ":" (getenv "PATH")))
(generate-gdk-pixbuf-loaders-cache '#$(manifest-inputs manifest)
(list #$output)))))
- (if %gdk-pixbuf
+ (if %gdk-pixbuf?
(gexp->derivation "gdk-pixbuf-loaders-cache-file" build
#:local-build? #t
#:substitutable? #f
Toggle quote (6 lines)
> No showstopper but we should eventually add this to (guix status) for
> nicer reporting.
>
> My 2¢,
> Ludo’.

Thanks, I was wondering why the hook message output looked different.

Done, like:

modified guix/status.scm
@@ -381,6 +381,8 @@ (define (hook-message hook-type)
(G_ "building CA certificate bundle..."))
('emacs-subdirs
(G_ "listing Emacs sub-directories..."))
+ ('gdk-pixbuf-loaders-cache-file
+ (G_ "generating GdkPixbuf loaders cache..."))
('glib-schemas
(G_ "generating GLib schema cache..."))
('gtk-icon-themes

Maxim
M
M
Maxim Cournoyer wrote on 27 Oct 2021 20:00
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 51428@debbugs.gnu.org)
87r1c6bb6g.fsf@gmail.com
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (8 lines)
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> +(define %gdk-pixbuf-loaders-cache-file
>> + "lib/gdk-pixbuf-2.0/2.10.0/loaders.cache")
>
> A comment indicating that this file is built by the hook would be nice,
> but let’s not trigger a rebuild just for that.

I've added the following comment:

;; This file is to be generated by the
;; `generate-gdk-pixbuf-loaders-cache' build phase defined below.

Toggle quote (4 lines)
> Isn’t the hard-coded version number going to cause troubles when
> gdk-pixbuf is upgraded? Or if we have some packages using a newer
> version while others remain on 2.10.0?

I was puzzled by it at the beginning, but it seems some historical
related version string that isn't meant to change. Even newer versions
of gdk-pixbuf refer to this older version in their documentation/build
system.

Thank you!

Maxim
T
T
Thiago Jung Bauermann wrote on 29 Oct 2021 06:26
Re: [bug#51428] core-updates-frozen-batched-changes built and ready to merge
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
1723112.AEdn0yoaQS@popigai
Hello again,

Em quarta-feira, 27 de outubro de 2021, às 13:26:37 -03, Thiago Jung
Bauermann escreveu:
Toggle quote (3 lines)
> Hello Maxim,
>
> Em quarta-feira, 27 de outubro de 2021, às 12:37:21 -03, Maxim Cournoyer
escreveu:
Toggle quote (15 lines)
> > I'm hoping that with the reduced Rust bootstrap chain that starts with
> > 1.39 and uses newer components, it may finally be more accessible to
> > other architectures.
>
> There’s an unmerged PR for mrustc adding support for ppc64 but I haven’t
> tried it:
>
> https://github.com/thepowersgang/mrustc/pull/159[1]
>
> Accessing the link now, I see that someone reported being able to
> bootstrap rustc 1.29 on powerpc64le-linux with it! \o/
>
> I’ll try it out within the next couple of days and send a patch if it
> works.

Unfortunately it doesn’t work. :-/ I even tried the workaround mentioned
in the pull request (i.e., reverting commit b9b23c5), but mrustc terminates
with signal 7 (SIGBUS).

I’ll dig some more.

--
Thanks,
Thiago
M
M
Maxim Cournoyer wrote on 29 Oct 2021 22:10
(name . Thiago Jung Bauermann)(address . bauermann@kolabnow.com)(address . 51428@debbugs.gnu.org)
87bl37a8ys.fsf@gmail.com
Hello Thiago,

Thiago Jung Bauermann <bauermann@kolabnow.com> writes:

Toggle quote (29 lines)
> Hello again,
>
> Em quarta-feira, 27 de outubro de 2021, às 13:26:37 -03, Thiago Jung
> Bauermann escreveu:
>> Hello Maxim,
>>
>> Em quarta-feira, 27 de outubro de 2021, às 12:37:21 -03, Maxim Cournoyer
> escreveu:
>> > I'm hoping that with the reduced Rust bootstrap chain that starts with
>> > 1.39 and uses newer components, it may finally be more accessible to
>> > other architectures.
>>
>> There’s an unmerged PR for mrustc adding support for ppc64 but I haven’t
>> tried it:
>>
>> https://github.com/thepowersgang/mrustc/pull/159[1]
>>
>> Accessing the link now, I see that someone reported being able to
>> bootstrap rustc 1.29 on powerpc64le-linux with it! \o/
>>
>> I’ll try it out within the next couple of days and send a patch if it
>> works.
>
> Unfortunately it doesn’t work. :-/ I even tried the workaround mentioned
> in the pull request (i.e., reverting commit b9b23c5), but mrustc terminates
> with signal 7 (SIGBUS).
>
> I’ll dig some more.

OK! Note that it currently bootstraps from 1.39; it'd be nice to not
have to return to 1.29 for powerpc64el.

In other news I've added a polkit-duktape package on the cufbc branch.
Feel free to try it (with some transformation applied, or by hacking
s/polkit/polkit-duktape/ manually in your checkout).

HTH!

Thanks for experimenting with it.

Maxim
T
T
Thiago Jung Bauermann wrote on 29 Oct 2021 23:18
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
15534555.0F4JW65k6J@popigai
Hello Maxim,

Em sexta-feira, 29 de outubro de 2021, às 17:10:03 -03, Maxim Cournoyer
escreveu:
Toggle quote (40 lines)
> Hello Thiago,
>
> Thiago Jung Bauermann <bauermann@kolabnow.com> writes:
> > Hello again,
> >
> > Em quarta-feira, 27 de outubro de 2021, às 13:26:37 -03, Thiago Jung
> >
> > Bauermann escreveu:
> >> Hello Maxim,
> >>
> >> Em quarta-feira, 27 de outubro de 2021, às 12:37:21 -03, Maxim
> >> Cournoyer
> >
> > escreveu:
> >> > I'm hoping that with the reduced Rust bootstrap chain that starts
> >> > with
> >> > 1.39 and uses newer components, it may finally be more accessible to
> >> > other architectures.
> >>
> >> There’s an unmerged PR for mrustc adding support for ppc64 but I
> >> haven’t
> >> tried it:
> >>
> >> https://github.com/thepowersgang/mrustc/pull/159[1]
> >>
> >> Accessing the link now, I see that someone reported being able to
> >> bootstrap rustc 1.29 on powerpc64le-linux with it! \o/
> >>
> >> I’ll try it out within the next couple of days and send a patch if it
> >> works.
> >
> > Unfortunately it doesn’t work. :-/ I even tried the workaround
> > mentioned in the pull request (i.e., reverting commit b9b23c5), but
> > mrustc terminates with signal 7 (SIGBUS).
> >
> > I’ll dig some more.
>
> OK! Note that it currently bootstraps from 1.39; it'd be nice to not
> have to return to 1.29 for powerpc64el.

Agreed. I just mentioned 1.29 because that’s what the person on the pull
request mentioned that they used. I was trying with 1.39.

Toggle quote (6 lines)
> In other news I've added a polkit-duktape package on the cufbc branch.
> Feel free to try it (with some transformation applied, or by hacking
> s/polkit/polkit-duktape/ manually in your checkout).
>
> HTH!

Thank you. I’ll try it out.

Toggle quote (2 lines)
> Thanks for experimenting with it.

Thank you for the cufbc branch!
G
G
Guillaume Le Vaillant wrote on 31 Oct 2021 17:30
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
877ddtp28z.fsf@kitej
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (14 lines)
> I've experimented quite a bit with core-updates-frozen-batched-changes
> in the last weeks, and it seems to be in a decent shape, good enough to
> merge into core-updates-frozen, I think.
>
> [...]
>
> I'll send the corresponding patches for review, which can also be
> consulted directly on the core-updates-frozen-batched-changes branch,
> which I've manually built on Berlin for things such as Rust and
> ungoogled-chromium.
>
> I'd like to merge it into core-updates-frozen by the beginning of
> November, unless there are problems you can spot :-).

Hi Maxim,

I think that when you rewrote the core-updates-frozen-batched-changes
branch you lost the commit that Mathieu added to fix the evaluations on
the CI [1], and this is why they are now failing.

The patch is in attachment (I found it in the guix-commits mailing
list). If you add it back to the branch, the CI should start building
substitutes again.

From 27d4c26cb55e588cd0ff515887a297a6480f2676 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe@gnu.org>
Date: Mon, 25 Oct 2021 18:03:35 +0000
Subject: [PATCH] gnu: Remove references to a removed patch.

* gnu/packages/backup.scm (libchop)[source]: Remove the patch.
(idutils)[source]: Ditto.
---
gnu/packages/backup.scm | 1 -
gnu/packages/idutils.scm | 1 -
2 files changed, 2 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 8c5ea07a9f..a18a16687c 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -557,7 +557,6 @@ (define-public libchop
               (sha256
                (base32
                 "0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g"))
-              (patches (search-patches "diffutils-gets-undeclared.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/idutils.scm b/gnu/packages/idutils.scm
index d16f2ffdeb..3e404b9a6f 100644
--- a/gnu/packages/idutils.scm
+++ b/gnu/packages/idutils.scm
@@ -36,7 +36,6 @@ (define-public idutils
              (sha256
               (base32
                "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))
-             (patches (search-patches "diffutils-gets-undeclared.patch"))
              (modules '((guix build utils)))
              (snippet
               '(begin
-- 
2.33.1
-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCYX7JXA8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j96ewD7Bpxl3DqY76sig32vvBy0VNEhCfqmnWiyUlMD
ByKOu00A/jPRn4g1xlrG4XVKR56Aswf/nmJbrdVyzGeALAV3h+4o
=rrfR
-----END PGP SIGNATURE-----

M
M
Maxim Cournoyer wrote on 31 Oct 2021 22:11
(name . Guillaume Le Vaillant)(address . glv@posteo.net)
87o8747vcq.fsf@gmail.com
Hello,

Guillaume Le Vaillant <glv@posteo.net> writes:

Toggle quote (28 lines)
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> I've experimented quite a bit with core-updates-frozen-batched-changes
>> in the last weeks, and it seems to be in a decent shape, good enough to
>> merge into core-updates-frozen, I think.
>>
>> [...]
>>
>> I'll send the corresponding patches for review, which can also be
>> consulted directly on the core-updates-frozen-batched-changes branch,
>> which I've manually built on Berlin for things such as Rust and
>> ungoogled-chromium.
>>
>> I'd like to merge it into core-updates-frozen by the beginning of
>> November, unless there are problems you can spot :-).
>
> Hi Maxim,
>
> I think that when you rewrote the core-updates-frozen-batched-changes
> branch you lost the commit that Mathieu added to fix the evaluations on
> the CI [1], and this is why they are now failing.
>
> The patch is in attachment (I found it in the guix-commits mailing
> list). If you add it back to the branch, the CI should start building
> substitutes again.
>
> [1] https://ci.guix.gnu.org/eval/36297

Thanks a lot! And sorry for missing that. I've applied it to the
branch and pushed! Let's see if the CI is happy again :-).

Maxim
T
T
Thiago Jung Bauermann wrote on 3 Nov 2021 03:37
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
5311476.e0r0s4ehiO@popigai
Hello again,

Em sexta-feira, 29 de outubro de 2021, às 17:10:03 -03, Maxim Cournoyer
escreveu:
Toggle quote (4 lines)
> In other news I've added a polkit-duktape package on the cufbc branch.
> Feel free to try it (with some transformation applied, or by hacking
> s/polkit/polkit-duktape/ manually in your checkout).

Thank you for providing that package. I tried it with the patch at the end
of this message, and GTK+ built! Though I don’t think I have a way to test
whether polkit-duktape works well.

I was even able to build Emacs, but when I tried to install it there was
this error:

Toggle snippet (14 lines)
guixp9: ./pre-inst-env guix package -p /tmp/profile -i emacs
building /gnu/store/cm09wbm7wj7k237df58rny22ghkmmcg8-emacs-27.2.drv...
building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
generating GdkPixbuf loaders cache...
builder for `/gnu/store/w3bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv' failed to produce output path `/gnu/store/g4pj8hm97bl3fwnbami0j3g5ycvnh559-gdk-pixbuf-loaders-cache-file'
build of /gnu/store/w3bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv failed
View build log at '/var/log/guix/drvs/w3/bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv.bz2'.
cannot build derivation `/gnu/store/7hd26alx72spjadmfhs6ssfd6zs815l7-profile.drv': 1 dependencies couldn't be built
guix package: error: build of `/gnu/store/7hd26alx72spjadmfhs6ssfd6zs815l7-profile.drv' failed

The build log is just a bzip2-compressed empty file, though:

Toggle snippet (6 lines)
guixp9: ls -l /var/log/guix/drvs/w3/bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv.bz2
-rw-r--r-- 1 root root 14 Nov 2 23:10 /var/log/guix/drvs/w3/bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv.bz2
guixp9: bzcat /var/log/guix/drvs/w3/bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv.bz2
guixp9:

Unfortunately I’ve been having less time to work on Guix lately, and
I wasn’t able yet to investigate this issue further. Also, I will be on
travel for about a week with very little access to the internet, so I won’t
be able to respond or experiment further until I’m back.

This was based on c.u.f.b.c. commit eae3355ec8ad.

--
Thanks,
Thiago


From 57599a32057b6d42abf943356a9b9ea99687b81d Mon Sep 17 00:00:00 2001
From: Thiago Jung Bauermann <bauermann@kolabnow.com>
Date: Mon, 1 Nov 2021 11:53:41 -0300
Subject: [PATCH] gnu: colord-minimal: Use polkit-duktape on non-x86_64
targets.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Because polkit depends on mozjs, which requires Rust, it can only be built on
x86_64 targets. Therefore use polkit-duktape on other architectures.

* gnu/packages/gnome.scm (colord-minimal)[inputs]: Use ‘polkit-duktape’ on
non-x86_64 targets.
---
gnu/packages/gnome.scm | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

Toggle diff (20 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5f7d3a953dcb..7345a3518b63 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5303,7 +5303,12 @@ (define-public colord-minimal
        ("gusb" ,gusb-minimal)
        ("libgudev" ,libgudev)
        ("libusb" ,libusb)
-       ("polkit" ,polkit)
+       ;; polkit pulls in rust because of mozjs, so it’s only available on
+       ;; x86_64.  Use polkit-duktape on other arches, which uses duktape
+       ;; instead.
+       ("polkit" ,(if (target-x86-64?)
+                      polkit
+                      polkit-duktape))
        ("python" ,python-wrapper)
        ("sqlite" ,sqlite)
        ("sane-backends" ,sane-backends)))

base-commit: eae3355ec8ad7ac81419f4fd43dd71416b032f07
Z
Z
zimoun wrote on 3 Nov 2021 11:24
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
CAJ3okZ22BPUvzJ_Ke5+MbHhGyb88UAeY7F39ybqZTWWao+MQLQ@mail.gmail.com
Hi Maxim,

On Wed, 27 Oct 2021 at 06:06, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:

Toggle quote (3 lines)
> I'd like to merge it into core-updates-frozen by the beginning of
> November, unless there are problems you can spot :-).

For testing, I run "guix time-machine --branch=core-updates-frozen --
build -m my-manifest.scm" but I hit this error:

Toggle snippet (24 lines)
perl-5.34.0 14.0MiB 19KiB/s 05:12 [####### ] 41.5%
guix substitute: erreur : Erreur TLS dans la proc?dure
??read_from_session_record_port?? : Erreur de d?codage du paquet TLS
re?u.
|In ./guix/monads.scm:
471:9 19 (_ _)

[...]

/guix/store.scm:1417:15: ERROR:
1. &store-protocol-error:
message: "some substitutes for the outputs of derivation
`/gnu/store/76j9dhf2l01jz9ijsn50xh44hf548b2i-subversion-1.14.1.drv'
failed (usually happens due to networking issues); try `--fallback' to
build derivation from source "
status: 1
guix time-machine: erreur : You found a bug: the program
'/gnu/store/qs8487rmfx0cvadi60y6dy96b1kksnc0-compute-guix-derivation'
failed to compute the derivation for Guix (version:
"95d5090d9c9df7759ab053a896fb4cfa2037c77b"; system: "x86_64-linux";
host version: "af5742c05b1ea1aac8fb0707e265964006cd197a"; pull-version: 1).
Please report it by email to <bug-guix@gnu.org>.

Well, I do not know where does it come from.


Aside, if the merge is done e.g., next week, do we also plan a new
release (1.4) for end of November?


Cheers,
simon
T
T
Thiago Jung Bauermann wrote on 3 Nov 2021 14:38
(name . zimoun)(address . zimon.toutoune@gmail.com)
3363964.dpsNcyy5eN@popigai
Hello simon,

Em quarta-feira, 3 de novembro de 2021, às 07:24:34 -03, zimoun escreveu:
Toggle quote (9 lines)
> For testing, I run "guix time-machine --branch=core-updates-frozen --
> build -m my-manifest.scm" but I hit this error:
>
> --8<---------------cut here---------------start------------->8---
> perl-5.34.0 14.0MiB 19KiB/s 05:12 [####### ]
> 41.5% guix substitute: erreur : Erreur TLS dans la proc?dure
> ??read_from_session_record_port?? : Erreur de d?codage du paquet TLS
> re?u.

Have you tried running the command again? Once in a while I get spurious
TLS errors (even when using Guix from the master branch), and simply re-
running the command makes the error go away.

Toggle quote (2 lines)
> Well, I do not know where does it come from.

I don’t know where the TLS errors come from either.

--
Thanks,
Thiago
M
M
Maxim Cournoyer wrote on 5 Nov 2021 05:57
(name . Thiago Jung Bauermann)(address . bauermann@kolabnow.com)
878ry342su.fsf@gmail.com
Hello,

Thiago Jung Bauermann <bauermann@kolabnow.com> writes:

Toggle quote (20 lines)
> Hello simon,
>
> Em quarta-feira, 3 de novembro de 2021, às 07:24:34 -03, zimoun escreveu:
>> For testing, I run "guix time-machine --branch=core-updates-frozen --
>> build -m my-manifest.scm" but I hit this error:
>>
>> --8<---------------cut here---------------start------------->8---
>> perl-5.34.0 14.0MiB 19KiB/s 05:12 [####### ]
>> 41.5% guix substitute: erreur : Erreur TLS dans la proc?dure
>> ??read_from_session_record_port?? : Erreur de d?codage du paquet TLS
>> re?u.
>
> Have you tried running the command again? Once in a while I get spurious
> TLS errors (even when using Guix from the master branch), and simply re-
> running the command makes the error go away.
>
>> Well, I do not know where does it come from.
>
> I don’t know where the TLS errors come from either.

I sometimes get this too, it's annoying! It was first reported as

My debug foo in this area is rather weak unfortunately.

Thanks,

Maxim
M
M
Maxim Cournoyer wrote on 5 Nov 2021 06:06
(name . Thiago Jung Bauermann)(address . bauermann@kolabnow.com)(address . 51428@debbugs.gnu.org)
8735ob42f7.fsf@gmail.com
Hi Thiago,

Thiago Jung Bauermann <bauermann@kolabnow.com> writes:

Toggle quote (43 lines)
> Hello again,
>
> Em sexta-feira, 29 de outubro de 2021, às 17:10:03 -03, Maxim Cournoyer
> escreveu:
>> In other news I've added a polkit-duktape package on the cufbc branch.
>> Feel free to try it (with some transformation applied, or by hacking
>> s/polkit/polkit-duktape/ manually in your checkout).
>
> Thank you for providing that package. I tried it with the patch at the end
> of this message, and GTK+ built! Though I don’t think I have a way to test
> whether polkit-duktape works well.
>
> I was even able to build Emacs, but when I tried to install it there was
> this error:
>
> guixp9: ./pre-inst-env guix package -p /tmp/profile -i emacs
> ⋮
> building /gnu/store/cm09wbm7wj7k237df58rny22ghkmmcg8-emacs-27.2.drv...
> building CA certificate bundle...
> listing Emacs sub-directories...
> building fonts directory...
> generating GdkPixbuf loaders cache...
> builder for `/gnu/store/w3bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv' failed to produce output path `/gnu/store/g4pj8hm97bl3fwnbami0j3g5ycvnh559-gdk-pixbuf-loaders-cache-file'
> build of /gnu/store/w3bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv failed
> View build log at '/var/log/guix/drvs/w3/bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv.bz2'.
> cannot build derivation `/gnu/store/7hd26alx72spjadmfhs6ssfd6zs815l7-profile.drv': 1 dependencies couldn't be built
> guix package: error: build of `/gnu/store/7hd26alx72spjadmfhs6ssfd6zs815l7-profile.drv' failed
>
>
> The build log is just a bzip2-compressed empty file, though:
>
> guixp9: ls -l /var/log/guix/drvs/w3/bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv.bz2
> -rw-r--r-- 1 root root 14 Nov 2 23:10 /var/log/guix/drvs/w3/bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv.bz2
> guixp9: bzcat /var/log/guix/drvs/w3/bmrsz4v0bcz1s5gsd6dl83jrn0yk7n-gdk-pixbuf-loaders-cache-file.drv.bz2
> guixp9:
>
> Unfortunately I’ve been having less time to work on Guix lately, and
> I wasn’t able yet to investigate this issue further. Also, I will be on
> travel for about a week with very little access to the internet, so I won’t
> be able to respond or experiment further until I’m back.
>
> This was based on c.u.f.b.c. commit eae3355ec8ad.

Ah, I could reproduce this!

It seems to happen when no loader libraries were found amongst the
inputs. As a workaround, you could install e.g. gdk-pixbuf (which
itself provides loaders) in the profile.

I'll see how this can be fixed, but at least we won't need to rebuild
the world as it's a problem at the level of the profile hook.

Toggle snippet (27 lines)
(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))))

It's curious that it would occur though, because I thought that when
gdk-pixbuf was found with `manifest-lookup-package', it meant it'd also
be part of the manifest inputs? Apparently it isn't the case. Weird!

Thanks for the report!

Maxim
T
T
Thiago Jung Bauermann wrote on 12 Nov 2021 01:35
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51428@debbugs.gnu.org)
3063359.q1fMdWyH99@popigai
Hello Maxim,

Em sexta-feira, 5 de novembro de 2021, às 02:06:04 -03, Maxim Cournoyer
escreveu:
Toggle quote (4 lines)
> It's curious that it would occur though, because I thought that when
> gdk-pixbuf was found with `manifest-lookup-package', it meant it'd also
> be part of the manifest inputs? Apparently it isn't the case. Weird!

I’m glad you found out what the problem was. I didn’t know where to start
investigating it!

Toggle quote (2 lines)
> Thanks for the report!

Thank you for looking into it. Should I open a bug report about it?

--
Thanks,
Thiago
M
M
Maxim Cournoyer wrote on 12 Nov 2021 06:29
(name . Thiago Jung Bauermann)(address . bauermann@kolabnow.com)(address . 51428-done@debbugs.gnu.org)
87k0heq6ul.fsf@gmail.com
Hi Thiago,

Thiago Jung Bauermann <bauermann@kolabnow.com> writes:

Toggle quote (15 lines)
> Hello Maxim,
>
> Em sexta-feira, 5 de novembro de 2021, às 02:06:04 -03, Maxim Cournoyer
> escreveu:
>> It's curious that it would occur though, because I thought that when
>> gdk-pixbuf was found with `manifest-lookup-package', it meant it'd also
>> be part of the manifest inputs? Apparently it isn't the case. Weird!
>
> I’m glad you found out what the problem was. I didn’t know where to start
> investigating it!
>
>> Thanks for the report!
>
> Thank you for looking into it. Should I open a bug report about it?

No, the commit 20e3dd052d7e4f59273e3646d3533d43c87c30b0 contains a
workaround guarding against such situation.

Thanks :-).
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 51428@debbugs.gnu.org