From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id yMSAM+2cIGZuagAAqHPOHw:P1 (envelope-from ) for ; Thu, 18 Apr 2024 06:09:17 +0200 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id yMSAM+2cIGZuagAAqHPOHw (envelope-from ) for ; Thu, 18 Apr 2024 06:09:17 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=quic.us header.s=default header.b=P49sLaFz; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1713413357; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=qUaeS6k44tLb0UpWcIm+CPSvosOHOPFKQ6z9706xRoM=; b=bPc4PZHPVs0vpyrEWcTjvQCKP6NdXGQiz8eWkdI2jA87HbZ0Mg5NRrU7ig4DpkbiC4J4eO F4krYzLQXb1ioWzhrDCJY0gewgas482G5ALYd8x/3jK+76Zp0XSehFNHouEXdd9zROn6ka 33H8G3/rGGCyexVQJ6xiaBUhB7dz7DLtkUCsPTtm+DpQ8S0qICl22bzM2yVEg9J9mWDD21 VagBFHXDS56P8y3Iy8Hr3zc9xgEsEWVlaBFTOc1bJ7U2fTkVsB42KRNjonPuJK4MmWlXMJ qkwLoAcsBL4mBXR1OTlT8/2JeER0rpvnhBln3Rr42Ay3Wg9hbpOi9jMI6Q7t0A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1713413357; a=rsa-sha256; cv=none; b=rgPjPoOOQQT1ccEjQzgNQ3SKKvEOjmdpNCHtG5qVgDCA4jLNd2VCWvJW+QvMz9lYsczROK 2rkDUXGMqczGVv2kmbCr/COJ3QroiGxOkjEspurnkAd13UGI8BANdjIhxagXVIIucHQ2Cm cxrglatQiIlP9ELQb/HOBrA4AHHg8UaqDspLOTRZUSt8gRRoMvmMIKRM+1ut6ZkksqrAIU JfQkhglyyFiB4CCh7zkCPEU3BtgAx3xLJ7GG0XNPO694zs3qreAWcZCiWwXdew9oS0OZox fLZCiyEDqb+z9MVmlI3mA6NDJtiUaIEKMF1S5PD32Y/5LGorCur237Jh0uH5KQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=quic.us header.s=default header.b=P49sLaFz; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=none Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8D08660741 for ; Thu, 18 Apr 2024 06:09:17 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rxJ4v-0006IV-Tp; Thu, 18 Apr 2024 00:08:53 -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 1rxJ4t-0006IJ-T0 for guix-patches@gnu.org; Thu, 18 Apr 2024 00:08:51 -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 1rxJ4t-0001OG-Ko for guix-patches@gnu.org; Thu, 18 Apr 2024 00:08:51 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rxJ55-0007T2-M9; Thu, 18 Apr 2024 00:09:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70446] [PATCH v2] gnu: webkitgtk: Add locale and dri access to gtk sandbox in order to silence gtk locale warnings and enable hardware accelerated video, respectively. Adjust bubblewrap wrapper to add user profile. References: <34830675a6123b15bd652b2aae0922ff95d15f54.1713408724.git.abhi@quic.us> In-Reply-To: <34830675a6123b15bd652b2aae0922ff95d15f54.1713408724.git.abhi@quic.us> Resent-From: Abhishek Cherath Original-Sender: "Debbugs-submit" Resent-CC: liliana.prikler@gmail.com, maxim.cournoyer@gmail.com, vivien@planete-kraus.eu, guix-patches@gnu.org Resent-Date: Thu, 18 Apr 2024 04:09:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70446 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 70446@debbugs.gnu.org Cc: Abhishek Cherath , Liliana Marie Prikler , Maxim Cournoyer , Vivien Kraus X-Debbugs-Original-Xcc: Liliana Marie Prikler , Maxim Cournoyer , Vivien Kraus Received: via spool by 70446-submit@debbugs.gnu.org id=B70446.171341333728637 (code B ref 70446); Thu, 18 Apr 2024 04:09:03 +0000 Received: (at 70446) by debbugs.gnu.org; 18 Apr 2024 04:08:57 +0000 Received: from localhost ([127.0.0.1]:49883 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rxJ4v-0007RF-AJ for submit@debbugs.gnu.org; Thu, 18 Apr 2024 00:08:56 -0400 Received: from mta-07-3.privateemail.com ([198.54.118.214]:1560) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rxJ4o-0007Pz-QV for 70446@debbugs.gnu.org; Thu, 18 Apr 2024 00:08:50 -0400 Received: from mta-07.privateemail.com (localhost [127.0.0.1]) by mta-07.privateemail.com (Postfix) with ESMTP id 36D461800149; Thu, 18 Apr 2024 00:08:27 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quic.us; s=default; t=1713413307; bh=32rV/RBec9PxNpazsTkv6ZTBSOofmFt9DFb6EXq6ErU=; h=From:To:Cc:Subject:Date:From; b=P49sLaFzUv1T3UPDBNJV1XmwAOqS1ml+iABWdaOzZ2MAgcDtUnCgqibb9JmrjaN0N 4IiK4mCoxCb388nxS4aF4Vltg2ivYYDFSkfxoN5UmUieRXMtW3mgka8tSqDwqKiod6 JadEtZMEzoV3PTADyYxavm96Lq9Ujh2Dh6WNw0Jr/mTyjybWI2m7UujuMuVo6hirbP wJwIQ7Qrm5G+l8YOyecm0DLTWgcwzkZOpp/j0JZvVjCAdvW69562QvOzOHdDQQIw5W 2RN2kh43/aAz0PnbysUJjpr1b/wdBI1DZnacLMmEaaokEvEoYqeX5LEuHPHT2DD1n/ fNp4IwLeIlyUA== Received: from localhost (207-237-25-55.s5642.c3-0.wsd-cbr1.qens-wsd.ny.cable.rcncustomer.com [207.237.25.55]) by mta-07.privateemail.com (Postfix) with ESMTPA; Thu, 18 Apr 2024 00:08:25 -0400 (EDT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id 85949ec3; Thu, 18 Apr 2024 04:08:24 +0000 (UTC) From: Abhishek Cherath Date: Thu, 18 Apr 2024 00:06:12 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP 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+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -1.24 X-Spam-Score: -1.24 X-Migadu-Queue-Id: 8D08660741 X-Migadu-Scanner: mx13.migadu.com X-TUID: 8vmEOPBjufYa * gnu/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch: Add @dridir@ and @localedir@ to bubblewrap gtk sandbox Add ~/.guix-profile to bubblewrap gtk sandbox * gnu/packages/webkit.scm (webkitgtk)[arguments]: In the 'configure-bubblewrap-store-directory' phase, also supply locale and dri directory paths to webkitgtk-adjust-bubblewrap-paths.patch template. Change-Id: I6be0c473ebaa6c04ebb00a2b4afcae2c89396e4f --- apparently the space on the second line of the patch is significant, doesn't apply otherwise .../webkitgtk-adjust-bubblewrap-paths.patch | 28 +++++++++++++++++-- gnu/packages/webkit.scm | 11 +++++++- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/gnu/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch b/gnu/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch index 18ddb645ad..c81916279e 100644 --- a/gnu/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch +++ b/gnu/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch @@ -1,11 +1,21 @@ Share /gnu/store in the BubbleWrap container and remove FHS mounts. +Also share user profile directory. This is a Guix-specific patch not meant to be upstreamed. diff --git a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp -index f0a5e4b05dff..88b11f806968 100644 +index 99395d6..3604730 100644 --- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp +++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp -@@ -854,27 +854,12 @@ GRefPtr bubblewrapSpawn(GSubprocessLauncher* launcher, const Proces +@@ -765,6 +765,8 @@ GRefPtr bubblewrapSpawn(GSubprocessLauncher* launcher, const Proces + return adoptGRef(g_subprocess_launcher_spawnv(launcher, argv, error)); + + const char* runDir = g_get_user_runtime_dir(); ++ const char* homeDir = g_get_home_dir(); ++ char* profileDir = g_strconcat(homeDir, "/.guix-profile", NULL); + Vector sandboxArgs = { + "--die-with-parent", + "--unshare-uts", +@@ -786,28 +788,24 @@ GRefPtr bubblewrapSpawn(GSubprocessLauncher* launcher, const Proces "--ro-bind", "/sys/dev", "/sys/dev", "--ro-bind", "/sys/devices", "/sys/devices", @@ -33,6 +43,18 @@ index f0a5e4b05dff..88b11f806968 100644 + + // Bind mount the store inside the WebKitGTK sandbox. + "--ro-bind", "@storedir@", "@storedir@", ++ ++ // Bind mount the guix profile directory ++ "--ro-bind", profileDir, profileDir, ++ ++ // This is needed for locales if not in profile ++ "--ro-bind-try", "@localedir@", "@localedir@", ++ ++ // This is needed for video hardware acceleration (va-api) ++ // via /lib/dri if not in profile ++ "--ro-bind-try", "@dridir@", "@dridir@", }; ++ free(profileDir); - if (launchOptions.processType == ProcessLauncher::ProcessType::DBusProxy) { + if (enableDebugPermissions()) { + const char* dataDir = g_get_user_data_dir(); diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index bf24a65e83..a0d04f31d3 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2019 Marius Bakke ;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer ;;; Copyright © 2022, 2023 Efraim Flashner +;;; Copyright © 2024 Abhishek Cherath ;;; ;;; This file is part of GNU Guix. ;;; @@ -190,7 +191,15 @@ (define-public webkitgtk (let ((store-directory (%store-directory))) (substitute* "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp" - (("@storedir@") store-directory))))) + (("@storedir@") store-directory) + ;; this adds access to drivers for va-api + ;; for hardware accelerated video + (("@dridir@") "/run/current-system/profile/lib/dri") + ;; this silences gtk locale errors + ;; Unfortunately, simply bind mounting /run/current-system + ;; does not work since it leads to weird issues + ;; with symlinks that confuse bubblewrap. + (("@localedir@") "/run/current-system/locale"))))) (add-after 'unpack 'do-not-disable-new-dtags ;; Ensure the linker uses new dynamic tags as this is what Guix ;; uses and validates in the validate-runpath phase. base-commit: b05bb6608c7f25ddce6b563194ba5a3007009282 -- 2.41.0