guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 686e0f5452c11f62ba6ec4eee6df6b548978926e
Author: Alvin Hsu <[email protected]>
AuthorDate: Mon Sep 7 19:57:02 2026 -0400

    gnu: gnome-shell-extension-gsconnect: Fix gsconnect-preferences not 
starting.
    
    gsconnect-preferences was updated to be a launcher script for a new
    gsconnect-preferences.js [1], which moved the ‘gjs -m ...’ shebang into the
    script body; thus the previous shebang patch no longer applies.
    
    In the same commit, ‘gjs’ paths have been introduced in prefs.js and
    daemon.js; these paths likewise need to be rewritten to make
    gsconnect-preferences function as intended.
    
    [1] 
https://github.com/GSConnect/gnome-shell-extension-gsconnect/commit/f531498e13f1c996663966e9afffdfe3aa81bf36
    
    * gnu/packages/gnome-xyz.scm (gnome-shell-extension-gsconnect):
    [arguments]<#:phases>: Add ‘patch-gsconnect-preferences’.
    {fix-paths}: Patch ‘gjs’' in prefs.js and daemon.js.
    
    Signed-off-by: Liliana Marie Prikler <[email protected]>
    Merges: guix/guix#11122
---
 gnu/packages/gnome-xyz.scm | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index dac8ce253bb..cef40b43385 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -1043,10 +1043,20 @@ Requires the focus-timer application to be installed.")
                              (string-append
                               "#!" (search-input-file inputs "/bin/gjs") " 
-m"))))
                         '("installed-tests/minijasmine"
-                          "src/gsconnect-preferences"
                           "src/service/nativeMessagingHost.js"
                           "src/service/daemon.js"
                           "webextension/gettext.js"))))
+          (add-after 'unpack 'patch-gsconnect-preferences
+            (lambda* (#:key inputs #:allow-other-keys)
+              (call-with-output-file "src/gsconnect-preferences"
+                (lambda (port)
+                  (display (string-append
+                            "#!/usr/bin/env sh\n"
+                            "exec " (search-input-file inputs "/bin/gjs")
+                            " -m " #$output "/share/gnome-shell"
+                            "/extensions/[email protected]"
+                            "/gsconnect-preferences.js\n")
+                           port)))))
           (add-before 'configure 'fix-paths
             (lambda* (#:key inputs #:allow-other-keys)
               (let ((gapplication (search-input-file inputs 
"/bin/gapplication"))
@@ -1071,7 +1081,11 @@ Requires the focus-timer application to be installed.")
                                  ".prepend_search_path(path));\n")
                                 output)
                                (dump-port input output))))
-                          '("src/extension.js" "src/prefs.js")))))
+                          '("src/extension.js" "src/prefs.js"))
+                (substitute* (list "src/prefs.js" "src/service/daemon.js")
+                  (("spawnv\\(\\['gjs'")
+                   (string-append
+                    "spawnv(['" (search-input-file inputs "/bin/gjs") "'"))))))
           (add-after 'install 'wrap-programs
             (lambda _
               (let* ((out #$output)

Reply via email to