guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 3f03582d1406e1ce1c27bdb2a6a4ffb55e7d6d81
Author: Maxim Cournoyer <[email protected]>
AuthorDate: Mon Mar 30 12:12:21 2026 +0900

    gnu: gjs: Update to 1.88.0.
    
    * gnu/packages/gnome.scm (gjs): Update to 1.88.0.
    [source] <snippet>: Update; unbundle most subprojects.
    [#:modules]: New.
    [#:configure-flags]: Delete.
    [#:phases] {pre-check}: Delete, moving relevant bits to...
    {check}: ... this new override phase, which is ordered after install.
    {sanitize-pkg-config-files}: New.
    [native-inputs]: Add gnome-desktop-testing, sysprof.  Replace
    xorg-server-for-tests with xvfb-run.
    [propagated-inputs]: Remove cairo.  Add glib.  Move mozjs to...
    [inputs]: ... here.
    
    Change-Id: I13d20c931dc68cdedebb8952ebf44d31caa6b684
---
 gnu/packages/gnome.scm | 139 ++++++++++++++++++++++++++++++-------------------
 1 file changed, 85 insertions(+), 54 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 2cf7f3dd50..1766a0a89f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7948,57 +7948,88 @@ configuration program to choose applications starting 
on login.")
 (define-public gjs
   (package
     (name "gjs")
-    (version "1.86.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1687l3nshrbc0wn18q6mn974vl14wa85wzqcilm4qkc0axx8yi33"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (substitute* "installed-tests/scripts/testCommandLine.sh"
-                    (("Valentín") "")
-                    (("☭") ""))
-                  (substitute* "modules/script/package.js"
-                    (("type_default_interface_ref")
-                     "type_default_interface_get"))))))
+    (version "1.88.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0ly43lcpafl0an3k4g4mvwrwvc78f0y91ckdi6qn13ky67rvk81h"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)
+                  (srfi srfi-26)))
+       (snippet
+        #~(begin
+            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
+            (define (delete-all-but directory . preserve)
+              (with-directory-excursion directory
+                (let* ((pred (negate (cut member <>
+                                          (cons* "." ".." preserve))))
+                       (items (scandir "." pred)))
+                  (for-each (cut delete-file-recursively <>) items))))
+            (delete-all-but "subprojects"
+                            "gobject-introspection-tests")))))
     (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("-Dinstalled_tests=false")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-           (lambda _
-             ;; The test suite requires a running X server.
-             (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1")
-
-             ;; For the missing /etc/machine-id.
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             (setenv "HOME" (getcwd))))
-         (add-after 'unpack 'skip-failing-tests
-           (lambda _
-               ;; Expects to test against 2.84, but we're using 2.86.
-             (substitute* "installed-tests/js/testIntrospection.js"
-               (("const skip = imports.gi.versions.GioUnix !== '2\\.0';")
-                "const skip = true;"))))
-         (add-after 'install 'wrap-gi
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (wrap-program (string-append (assoc-ref outputs "out")
-                                          "/bin/gjs")
-               `("GI_TYPELIB_PATH" suffix
-                 (,(dirname
-                    (search-input-file
-                     inputs
-                     "lib/girepository-1.0/GObject-2.0.typelib"))
-                  ,(dirname
-                    (search-input-file
-                     inputs
-                     "lib/girepository-1.0/GIRepository-2.0.typelib"))))))))))
+     (list
+      #:modules '((guix build meson-build-system)
+                  (guix build utils)
+                  (ice-9 match))
+      #:configure-flags #~(list "-Dinstalled_tests=false")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'wrap-gi
+            (lambda* (#:key inputs #:allow-other-keys)
+              (wrap-program (string-append #$output "/bin/gjs")
+                `("GI_TYPELIB_PATH" suffix
+                  (,(dirname
+                     (search-input-file
+                      inputs
+                      "lib/girepository-1.0/GObject-2.0.typelib"))
+                   ,(dirname
+                     (search-input-file
+                      inputs
+                      "lib/girepository-1.0/GIRepository-2.0.typelib")))))))
+          (replace 'check
+            (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+              (when tests?
+                ;; For the missing /etc/machine-id.
+                (setenv "DBUS_FATAL_WARNINGS" "0")
+                (setenv "HOME" (getcwd))
+                ;; In Guix, gobject-introspection is patched to always embed
+                ;; the absolute path of a typelib library; unfortunately it
+                ;; does this also for test typelibs not meant to be installed;
+                ;; work around it via temporary symlinks.
+                (let* ((test-libraries (find-files (getcwd)
+                                                   "\\.so(\\.[0-9]*)?$"))
+                       (test-library-links (map (lambda (x)
+                                                  (cons x (string-append
+                                                           #$output "/lib/"
+                                                           (basename x))))
+                                                test-libraries)))
+                  (for-each (match-lambda
+                              ((old . new)
+                               (symlink old new)))
+                            test-library-links)
+                  (invoke "xvfb-run" "--" "dbus-run-session"
+                          "meson" "test" "--print-errorlogs" "-t" "0"
+                          "-j" (if parallel-tests?
+                                   (number->string (parallel-job-count))
+                                   "1"))
+                  (for-each delete-file (map cdr test-library-links))))))
+          (add-after 'install 'delete-installed-tests
+            (lambda _
+              ;; Installed tests libraries are installed despite
+              ;; -Dinstalled_tests=false.
+              (delete-file-recursively
+               (string-append #$output "/libexec/installed-tests"))))
+          (add-after 'install 'sanitize-pkg-config-files
+            (lambda _
+              (substitute* (find-files #$output "\\.pc$")
+                (("^Requires.private:.*") "")))))))
     (native-inputs
      (list `(,glib "bin")               ;for glib-compile-resources
            pkg-config
@@ -8007,13 +8038,13 @@ configuration program to choose applications starting 
on login.")
            dbus
            dconf                        ;required to properly store settings
            gtk+
+           sysprof
            util-linux
-           xorg-server-for-tests))
+           xvfb-run))
+    (inputs (list mozjs readline))
     (propagated-inputs
-     ;; These are all in the Requires.private field of gjs-1.0.pc.
-     ;; Check the version of mozjs required in meson.build.
-     (list cairo gobject-introspection mozjs))
-    (inputs (list readline))
+     ;; These are all in the Requires field of gjs-1.0.pc.
+     (list glib gobject-introspection))
     (synopsis "Javascript bindings for GNOME")
     (home-page "https://gitlab.gnome.org/GNOME/gjs";)
     (description

Reply via email to