Message ID | cover.1725634153.git.john.kehayias@protonmail.com |
---|---|
Headers |
Return-Path: <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org> X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id BA05B27BBEA; Fri, 6 Sep 2024 16:02:41 +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=-6.4 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, 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 723E627BBE9 for <patchwork@mira.cbaines.net>; Fri, 6 Sep 2024 16:02:40 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <guix-patches-bounces@gnu.org>) id 1smaTX-00019Y-CM; Fri, 06 Sep 2024 11:02:15 -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 <Debian-debbugs@debbugs.gnu.org>) id 1smaTL-00018X-5U for guix-patches@gnu.org; Fri, 06 Sep 2024 11:02:06 -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 <Debian-debbugs@debbugs.gnu.org>) id 1smaTK-0002Sh-OJ for guix-patches@gnu.org; Fri, 06 Sep 2024 11:02:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:From:Date:To:Subject; bh=usaYlcxUNdOti9r8JrZRvqZGy8gU6QfNOQojl/1qEyo=; b=v5LhWJdY4nr0n1vx3+wATdgCobe0YzH3DIX/5LnAzqq0BL+n15fEI14CKLWZqGXl13uUeINdhGsq67p8qJGLM8nN0rU9xfKfQMpmIBUZeHHCb9RyuAYJwFDkEgfl+G14FZ4Bj692BTSxB9EbxYCKyFvxU3J1yiYk03qD3HJ32EEgZL7BRtPKOxcILoQOhHnkm0lXdEftl1+f2wMHBAhieNJNUoSdTMisX9MK2p/ajTqJCGsna4lgyYhEWAaNlKqg2l806rjnHQfr435j2qeAi8W5vXRDEtq+rsd5MuX1KCilYjj7O5i6qnsUbA/ow/4tXo/Hp/AfPgqh8wHRxqwOEw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1smaTK-0004kH-2k for guix-patches@gnu.org; Fri, 06 Sep 2024 11:02:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73071] [PATCH mesa-updates 0/8] Various updates for mesa to 24.2.2 Resent-From: John Kehayias <john.kehayias@protonmail.com> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org> Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 06 Sep 2024 15:02:01 +0000 Resent-Message-ID: <handler.73071.B.172563487718132@debbugs.gnu.org> Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 73071 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73071@debbugs.gnu.org Cc: John Kehayias <john.kehayias@protonmail.com>, aurtzy@gmail.com, efraim@flashner.co.il X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.172563487718132 (code B ref -1); Fri, 06 Sep 2024 15:02:01 +0000 Received: (at submit) by debbugs.gnu.org; 6 Sep 2024 15:01:17 +0000 Received: from localhost ([127.0.0.1]:53795 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>) id 1smaSb-0004iO-0o for submit@debbugs.gnu.org; Fri, 06 Sep 2024 11:01:17 -0400 Received: from lists.gnu.org ([209.51.188.17]:39956) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <john.kehayias@protonmail.com>) id 1smaSY-0004iG-PK for submit@debbugs.gnu.org; Fri, 06 Sep 2024 11:01:15 -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 <john.kehayias@protonmail.com>) id 1smaSW-00011k-Lv for guix-patches@gnu.org; Fri, 06 Sep 2024 11:01:13 -0400 Received: from mail-4316.protonmail.ch ([185.70.43.16]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <john.kehayias@protonmail.com>) id 1smaSU-0002Oi-A3 for guix-patches@gnu.org; Fri, 06 Sep 2024 11:01:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1725634858; x=1725894058; bh=usaYlcxUNdOti9r8JrZRvqZGy8gU6QfNOQojl/1qEyo=; h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=szgf40PALSrXn6aW9/JWbGXhmuZAjMGJJqkwCnog9fUOVnB35vrgQv0iN+HP3AiKb 52CSOK0X5BI2XwdC/pbMFvSlINaubKZ7MhSKBXivz996U4J2/MUSBdYNKqfH5kwS29 YIZ91pwT9ctK5IYBfCFheCHbvr0No1NHI/9zPgtBwsDVk7FT4I4a4iNujeJUOKiKtL OawFrytB9XB4g35cu/DkWSxgtnB8hiDtBhJeoa17oglKCBf73R7KmVBajC15iKWLzw uQs0uToaqiwZC/3xneVKFGU5fs/m0zP8pf47IVK7zu04rHdR2tiQ6NYPrQjUaW5inI EJdVPYTu68Leg== Date: Fri, 06 Sep 2024 15:00:53 +0000 Message-ID: <cover.1725634153.git.john.kehayias@protonmail.com> Feedback-ID: 7805494:user:proton X-Pm-Message-ID: aae3832594f74e6f73678afc71d9f2125545c590 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=185.70.43.16; envelope-from=john.kehayias@protonmail.com; helo=mail-4316.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: <guix-patches.gnu.org> List-Unsubscribe: <https://lists.gnu.org/mailman/options/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=unsubscribe> List-Archive: <https://lists.gnu.org/archive/html/guix-patches> List-Post: <mailto:guix-patches@gnu.org> List-Help: <mailto:guix-patches-request@gnu.org?subject=help> List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=subscribe> Reply-to: John Kehayias <john.kehayias@protonmail.com> X-ACL-Warn: , John Kehayias via Guix-patches <guix-patches@gnu.org> From: John Kehayias via Guix-patches via <guix-patches@gnu.org> 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 |
Series |
Various updates for mesa to 24.2.2
|
|
Message
John Kehayias
Sept. 6, 2024, 3 p.m. UTC
Hello Guix, This is a series of patches to update mesa to the latest, 24.2.2, some dependencies, and fix a vulkan issue <https://issues.guix.gnu.org/71109>. Along the way I updated llvm-for-mesa and mesa inputs, which unifies the changes made to build on aarch64-linux, for instance. Hopefully this doesn't introduce regressions. To that end, I've pushed this series now to the mesa-updates branch to see how building on Cuirass goes. (A previous version was there already, but I have updated/rebased and now finally sending this.) Some notes: 1. The closure size of mesa has increased, something like from 374 MiB to 542 MiB, mostly due to itself (not sure why) and then also from llvm. This is from going from v15 to v18 and as you'll see in a patch I had to enable building all targets. Possibly this can be alleviated by building a smaller clang for mesa? 2. Previous discussion was about getting NVK (which requires rust) built in the last mesa update. I'm not sure the current status but will check with those that were working on it before <https://issues.guix.gnu.org/69637>. I believe it is no longer experimental, so we should try to include it. Hopefully the patch changes and brief comments explain all, but please do provide any feedback, changes, fixes, etc. The branch has just been rebased on master but we can rebase as needed or if there are some critical errors on these patches I missed. Thanks! John PS: I guess python-team will get this series as I added two comments (no code changes) to python packages now needed for mesa. One already has a huge number of dependents anyway, but good to note I suppose. John Kehayias (6): gnu: libdrm: Update to 2.4.123. gnu: wayland-protocols: Update to 1.37. gnu: Remove wayland-protocols-next. gnu: llvm-for-mesa: Update to llvm-18. gnu: llvm-for-mesa: Build all targets. gnu: mesa: Update to 24.2.2. nathan (2): gnu: vulkan-headers: Hard-code libvulkan.so file name. gnu: volk: Hard-code path of vulkan-loader for dynamic loading gnu/packages/freedesktop.scm | 17 ++----------- gnu/packages/gl.scm | 49 ++++++++++++++---------------------- gnu/packages/kde-plasma.scm | 2 +- gnu/packages/llvm.scm | 29 ++++++++++----------- gnu/packages/python-xyz.scm | 2 ++ gnu/packages/vulkan.scm | 41 ++++++++++++++++++++++++++---- gnu/packages/xdisorg.scm | 4 +-- 7 files changed, 75 insertions(+), 69 deletions(-) base-commit: d4fbd1ab341de85c1e5c77e0f7adc5aae056be15 -- 2.45.2
Comments
Hello, In the interest of creating a future where mesa properly works alongside libglvnd i think there's a few options: - simply adding "-Dglvnd=true" to mesa configure-flags and tediously adding libglvnd to the inputs of every package that links to LibGL, as well as patching anything problematic as mentioned in https://issues.guix.gnu.org/49339#8 - create an abomination, the ONE MESA TO RULE THEM ALL. an example follows: (define-public mesa/new (package (inherit mesa) (arguments (substitute-keyword-arguments (package-arguments mesa) ((#:configure-flags flags ''()) #~(append #$flags (list "-Dglvnd=true"))) ((#:phases phases ''()) (with-imported-modules '((guix build union)) #~(modify-phases #$phases (add-before 'validate-runpath 'unionize (lambda _ ;; unionize with libglvnd, fixing all problems (use-modules (ice-9 match) (guix build union)) (union-build (string-append #$output "/tmp") '#$(list (this-package-input "libglvnd")) #:create-all-directories? #t) (copy-recursively (string-append #$output "/tmp") #$output) (delete-file-recursively (string-append #$output "/tmp")) ;; leftovers from building with old mesa. ;; some packages still link to these. ;; remove for rebuilding after applying graft? (symlink (string-append #$output "/lib/libEGL.so.1") (string-append #$output "/lib/libEGL.so.1.0.0")) (symlink (string-append #$output "/lib/libGLESv1_CM.so.1") (string-append #$output "/lib/libGLESv1_CM.so.1.1.0")) (symlink (string-append #$output "/lib/libGLESv2.so.2") (string-append #$output "/lib/libGLESv2.so.2.0.0")) (symlink (string-append #$output "/lib/libGL.so.1") (string-append #$output "/lib/libGL.so.1.2.0")))) (add-after 'install 'fix-paths (lambda _ (substitute* (string-append #$output "/share/glvnd/egl_vendor.d/50_mesa.json") (("libEGL_mesa") (string-append #$output "/lib/libEGL_mesa"))))) (add-after 'fix-paths 'add-external-egl (lambda _ (mkdir-p (string-append #$output "/share/egl/egl_external_platform.d"))))))))) (native-search-paths (append (package-native-search-paths mesa) (list (search-path-specification (variable "__EGL_VENDOR_LIBRARY_DIRS") (files '("share/glvnd/egl_vendor.d"))) (search-path-specification (variable "GBM_BACKENDS_PATH") (files '("lib"))) (search-path-specification (variable "XDG_DATA_DIRS") (files '("share"))) (search-path-specification (variable "__EGL_EXTERNAL_PLATFORM_CONFIG_DIRS") (files '("share/egl/egl_external_platform.d")))))) (inputs (modify-inputs (package-inputs mesa) (prepend libglvnd))))) Using this to graft over mesa is a filthy answer to the "GL problem". no rebuilding necessary, it seems to "just work". Other distributions have settled on packaging mesa build for working with libglvnd and most software seems to expect such. Perhaps there's another solution?
Hello The Man :) A note that your email went to no one; the debbugs number address is not an alias for anyone. I happen to see your message via the issues web interface. I would suggest adding in cc's here to whoever you intended. On Tue, Sep 17, 2024 at 07:35 PM, The Man wrote: > Hello, In the interest of creating a future where mesa properly works alongside libglvnd i think there's a few options: > > - simply adding "-Dglvnd=true" to mesa configure-flags and tediously adding libglvnd to the inputs of every package > that links to LibGL, as well as patching anything problematic as mentioned in https://issues.guix.gnu.org/49339#8 > This didn't seem so tidious but a countable number of packages. The building and testing will take more time but it didn't seem too bad at the time at least. > - create an abomination, the ONE MESA TO RULE THEM ALL. an example follows: > This looks the same basically as just propagating libglvnd from mesa, but I didn't look too carefully or try it. In any event, we should handle this in a separate issue, get some input, and then we can do this on a branch. My instinct is to go with what was started in the linked issue above; add libglvnd to mesa (propagated?) and fix failing packages assuming it isn't all 4000 or whatever (pretty sure it is not). > (define-public mesa/new > (package > (inherit mesa) > (arguments > (substitute-keyword-arguments (package-arguments mesa) > ((#:configure-flags flags ''()) > #~(append #$flags > (list "-Dglvnd=true"))) > ((#:phases phases ''()) > (with-imported-modules '((guix build union)) > #~(modify-phases #$phases > (add-before 'validate-runpath 'unionize > (lambda _ ;; unionize with libglvnd, fixing all problems > (use-modules (ice-9 match) > (guix build union)) > (union-build (string-append #$output "/tmp") > '#$(list (this-package-input "libglvnd")) > #:create-all-directories? #t) > (copy-recursively (string-append #$output "/tmp") #$output) > (delete-file-recursively (string-append #$output "/tmp")) > ;; leftovers from building with old mesa. > ;; some packages still link to these. > ;; remove for rebuilding after applying graft? > (symlink (string-append #$output "/lib/libEGL.so.1") > (string-append #$output "/lib/libEGL.so.1.0.0")) > (symlink (string-append #$output "/lib/libGLESv1_CM.so.1") > (string-append #$output "/lib/libGLESv1_CM.so.1.1.0")) > (symlink (string-append #$output "/lib/libGLESv2.so.2") > (string-append #$output "/lib/libGLESv2.so.2.0.0")) > (symlink (string-append #$output "/lib/libGL.so.1") > (string-append #$output "/lib/libGL.so.1.2.0")))) > (add-after 'install 'fix-paths > (lambda _ > (substitute* > (string-append #$output "/share/glvnd/egl_vendor.d/50_mesa.json") > (("libEGL_mesa") > (string-append #$output "/lib/libEGL_mesa"))))) > (add-after 'fix-paths 'add-external-egl > (lambda _ > (mkdir-p (string-append #$output "/share/egl/egl_external_platform.d"))))))))) > (native-search-paths (append (package-native-search-paths mesa) > (list > (search-path-specification > (variable "__EGL_VENDOR_LIBRARY_DIRS") > (files '("share/glvnd/egl_vendor.d"))) > (search-path-specification > (variable "GBM_BACKENDS_PATH") > (files '("lib"))) > (search-path-specification > (variable "XDG_DATA_DIRS") > (files '("share"))) > (search-path-specification > (variable "__EGL_EXTERNAL_PLATFORM_CONFIG_DIRS") > (files '("share/egl/egl_external_platform.d")))))) > (inputs (modify-inputs (package-inputs mesa) > (prepend libglvnd))))) > > Using this to graft over mesa is a filthy answer to the "GL problem". no rebuilding necessary, it seems to "just work". > > Other distributions have settled on packaging mesa build for working with libglvnd and most software seems to expect > such. > Perhaps there's another solution? It is unclear to me in Guix what this all means. I think it would mostly be helpful on foreign distros (so libglvnd can load host's GL stuff) but I don't know. Or perhaps for non-free related stuff (which wouldn't be part of Guix directly in any event). Thanks for the input! John