Subject: [bug#76572] [PATCH v2 3/4] gnu: gnome-shell-extension-gsconnect: Patch shebangs with gjs.

From: aurtzy <[email-masked]>
Date: Thu, 6 Mar 2025 03:44:52 -0500

The 'patch-shebangs phase does not handle shebangs of the form
"/usr/bin/env -S", so we manually patch them to fix a not-found error.

* gnu/packages/gnome-xyz.scm (gnome-shell-extension-gsconnect):
[arguments]<#:phases>: Add 'patch-gjs-shebangs phase to patch shebangs using
"/usr/bin/env -S" to execute gjs.

Change-Id: I6b84474e4976484f1203b7cf78fe5e882694cd22
---
 gnu/packages/gnome-xyz.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 359dc757fd..09e73a9c0a 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -761,6 +761,19 @@ (define-public gnome-shell-extension-gsconnect
                  "gtk_update_icon_cache: false")
                 (("update_desktop_database: true")
                  "update_desktop_database: false"))))
+          ;; TODO: Remove after 'patch-shebangs is fixed to handle '/usr/bin/env -S'
+          ;; shebangs (see bug#74450).
+          (add-after 'unpack 'patch-gjs-shebangs
+            (lambda* (#:key inputs #:allow-other-keys)
+              (for-each (lambda (file)
+                          (substitute* file
+                            (("^#!/usr/bin/env -S gjs.*$")
+                             (string-append "#!" (which "gjs") " -m"))))
+                        '("installed-tests/minijasmine"
+                          "src/gsconnect-preferences"
+                          "src/service/nativeMessagingHost.js"
+                          "src/service/daemon.js"
+                          "webextension/gettext.js"))))
           (add-before 'configure 'fix-paths
             (lambda* (#:key inputs #:allow-other-keys)
               (let ((gapplication (search-input-file inputs "/bin/gapplication"))
-- 
2.48.1