From patchwork Mon Apr 8 15:53:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dariqq X-Patchwork-Id: 62850 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 3FAC027BBEA; Mon, 8 Apr 2024 16:56:22 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 5396727BBE2 for ; Mon, 8 Apr 2024 16:56:21 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rtrKj-0002LC-NR; Mon, 08 Apr 2024 11:54:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rtrKi-0002K6-B0 for guix-patches@gnu.org; Mon, 08 Apr 2024 11:54:56 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rtrKi-0001uG-10 for guix-patches@gnu.org; Mon, 08 Apr 2024 11:54:56 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rtrKo-0008WV-H3; Mon, 08 Apr 2024 11:55:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70282] [PATCH 1/2] gnu: gnome-shell: Wrap d-bus services. Resent-From: Dariqq Original-Sender: "Debbugs-submit" Resent-CC: liliana.prikler@gmail.com, maxim.cournoyer@gmail.com, rg@raghavgururajan.name, vivien@planete-kraus.eu, guix-patches@gnu.org Resent-Date: Mon, 08 Apr 2024 15:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70282 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 70282@debbugs.gnu.org Cc: rekado@elephly.net, Dariqq , Liliana Marie Prikler , Maxim Cournoyer , Raghav Gururajan , Vivien Kraus X-Debbugs-Original-Xcc: Liliana Marie Prikler , Maxim Cournoyer , Raghav Gururajan , Vivien Kraus Received: via spool by 70282-submit@debbugs.gnu.org id=B70282.171259169632735 (code B ref 70282); Mon, 08 Apr 2024 15:55:02 +0000 Received: (at 70282) by debbugs.gnu.org; 8 Apr 2024 15:54:56 +0000 Received: from localhost ([127.0.0.1]:47456 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtrKi-0008Vt-4P for submit@debbugs.gnu.org; Mon, 08 Apr 2024 11:54:56 -0400 Received: from mout01.posteo.de ([185.67.36.65]:45409) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtrKe-0008VQ-Tb for 70282@debbugs.gnu.org; Mon, 08 Apr 2024 11:54:54 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 03EE3240028 for <70282@debbugs.gnu.org>; Mon, 8 Apr 2024 17:54:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1712591678; bh=vxUwEHTCbTWKF+ngxE08mJ41a5MCb2ZzYQ7IzLsAzgM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version: Content-Transfer-Encoding:From; b=iH45p7GNrgc9Ca9B/7MdvuJmv+fTuy64dPAYQMqYMzWy3G5xpYs0IF4qeIzN3SpL+ G9UYlBjsZYZVv5idopbg5WBjfu4NzMjBVMMyU/jXB6j9Mew1fI/GHgfNfL/WJNFK/t mCYg63ytAzYxLc1JVK9w7XzYXXQZvFyJPrOsoQ6IYFBTCminZFX30gKrH92iywmaJ+ XY0LurzPL9mvLeOBeD34Zn4A3Sz2SbD08snpgq6vbK5MWFE3Pu/sWTtkNikYaBGAww sBLZAv/yiOghX7uxZkGTZk38gY5E/rriYvq9YlrtzbeithFaBv2p381FIDXAIffe8H Ogsr/m/8o+5Pg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4VCtvK1pZ7z6tyG; Mon, 8 Apr 2024 17:54:37 +0200 (CEST) From: Dariqq Date: Mon, 8 Apr 2024 15:53:51 +0000 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Some of the dbus services can't find typelibs. * gnu/packages/patches/gnome-shell-wrappable-dbus-services.patch: New file * gnu/lokal.mk: Register it. * gnu/packages/gnome.scm (gnome-shell)[arguments]<#:phases>{'wrap}: Also wrap dbus-services. Change-Id: I2c31bf1bd92e281b86c57b06988c6a3793a58d40 --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 13 +++- .../gnome-shell-wrappable-dbus-services.patch | 59 +++++++++++++++++++ 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/gnome-shell-wrappable-dbus-services.patch diff --git a/gnu/local.mk b/gnu/local.mk index 255bb870e9..21826c9ec7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1376,6 +1376,7 @@ dist_patch_DATA = \ %D%/packages/patches/gnome-online-miners-tracker-3.patch \ %D%/packages/patches/gnome-settings-daemon-gc.patch \ %D%/packages/patches/gnome-session-support-elogind.patch \ + %D%/packages/patches/gnome-shell-wrappable-dbus-services.patch\ %D%/packages/patches/gnome-tweaks-search-paths.patch \ %D%/packages/patches/gnumach-support-noide.patch \ %D%/packages/patches/gnupg-default-pinentry.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4934ade3dd..e752232f78 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -9311,7 +9311,9 @@ (define-public gnome-shell name "-" version ".tar.xz")) (sha256 (base32 - "01pw9qnnvh64x56z1gqh0qk6vfn0ihh4zijq23f4bpz9wszlbpwf")))) + "01pw9qnnvh64x56z1gqh0qk6vfn0ihh4zijq23f4bpz9wszlbpwf")) + (patches + (search-patches "gnome-shell-wrappable-dbus-services.patch")))) (build-system meson-build-system) (arguments (let ((disallowed-references @@ -9405,7 +9407,14 @@ (define-public gnome-shell (wrap-program (string-append #$output "/bin/" prog) `("GUIX_PYTHONPATH" ":" prefix (,python-path)) `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - '("gnome-shell-perf-tool"))))) + '("gnome-shell-perf-tool")) + ;; Make sure the dbus services can find typelibs + (for-each + (lambda (service) + (wrap-program (string-append #$output "/share/gnome-shell/" service) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + '("org.gnome.ScreenSaver" "org.gnome.Shell.Extensions" + "org.gnome.Shell.Notifications" "org.gnome.Shell.Screencast"))))) (add-after 'install 'rewire (lambda* (#:key inputs #:allow-other-keys) (for-each diff --git a/gnu/packages/patches/gnome-shell-wrappable-dbus-services.patch b/gnu/packages/patches/gnome-shell-wrappable-dbus-services.patch new file mode 100644 index 0000000000..67ed6beadb --- /dev/null +++ b/gnu/packages/patches/gnome-shell-wrappable-dbus-services.patch @@ -0,0 +1,59 @@ +Retrieved from NixOS: https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch +--- +diff --git a/js/dbusServices/dbus-service.in b/js/dbusServices/dbus-service.in +old mode 100644 +new mode 100755 +index 524166102..6d0722a1c +--- a/js/dbusServices/dbus-service.in ++++ b/js/dbusServices/dbus-service.in +@@ -1,3 +1,9 @@ ++#!@gjs@ ++ ++// gjs determines the package name from argv[0], which is .*-wrapped ++// so we need to override it to the original one. ++imports.package._findEffectiveEntryPointName = () => '@service@' ++ + imports.package.start({ + name: '@PACKAGE_NAME@', + prefix: '@prefix@', +diff --git a/js/dbusServices/dbus-service.service.in b/js/dbusServices/dbus-service.service.in +index 3b0d09abe..4fd4bb66d 100644 +--- a/js/dbusServices/dbus-service.service.in ++++ b/js/dbusServices/dbus-service.service.in +@@ -1,3 +1,3 @@ + [D-BUS Service] + Name=@service@ +-Exec=@gjs@ @pkgdatadir@/@service@ ++Exec=@pkgdatadir@/@service@ +diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build +index eb941ed90..552051e5a 100644 +--- a/js/dbusServices/meson.build ++++ b/js/dbusServices/meson.build +@@ -2,6 +2,7 @@ launcherconf = configuration_data() + launcherconf.set('PACKAGE_NAME', meson.project_name()) + launcherconf.set('prefix', prefix) + launcherconf.set('libdir', libdir) ++launcherconf.set('gjs', gjs.full_path()) + + dbus_services = { + 'org.gnome.Shell.Extensions': 'extensions', +@@ -18,16 +19,17 @@ endif + config_dir = '@0@/..'.format(meson.current_build_dir()) + + foreach service, dir : dbus_services ++ svc_launcherconf = launcherconf ++ svc_launcherconf.set('service', service) + configure_file( + input: 'dbus-service.in', + output: service, +- configuration: launcherconf, ++ configuration: svc_launcherconf, + install_dir: pkgdatadir, + ) + + serviceconf = configuration_data() + serviceconf.set('service', service) +- serviceconf.set('gjs', gjs.full_path()) + serviceconf.set('pkgdatadir', pkgdatadir) + + configure_file(