Message ID | cover.1743265000.git.gabrielsantosdesouza@disroot.org |
---|---|
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 31C6C27BBE9; Sat, 29 Mar 2025 16:21:58 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_SBL_CSS,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 9348427BBE2 for <patchwork@mira.cbaines.net>; Sat, 29 Mar 2025 16:21:57 +0000 (GMT) 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 1tyYvm-0007TC-TS; Sat, 29 Mar 2025 12:21:10 -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 1tyYve-0007NH-E8 for guix-patches@gnu.org; Sat, 29 Mar 2025 12:21:05 -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 1tyYve-0008Ao-1m for guix-patches@gnu.org; Sat, 29 Mar 2025 12:21: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:Date:From:To:In-Reply-To:References:Subject; bh=+fe87Iaa7RZFpJcVK+TncByp6mU2GnT2InbroES4c64=; b=Fw6y7VwkPEW0L75bUM4+q7P4E2j8+xzHUlV3UrSnZl1los7QBX37O/hPbq3AAoZcM9TOW+mL4HbkN60saWyHvqf4aeW/Tt8O3kukySOtwMa1lIjk5iJF1AJzZNft4ZlAwhZwvcRUFw5NMhbnwbrH/XH9FT++/5lcSZb4aaiilAWxZc1yKka6gwdDdC0sfQJzGaHu9OiVgdeW6OwZlN6SS/dQH3ZwrYQwDvWN2phPO1ir/knbfAr+zZHsBKKpsirSsIOTfTaT86wDIpEMwPwn+YyFL9s647Ucm+VZ4jxrT1dTSqu+n85HS3zmU3feNybYAuH5B14vep/AwyvcRnXX8g==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1tyYvd-0005Z7-K6 for guix-patches@gnu.org; Sat, 29 Mar 2025 12:21:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#76910] [PATCH v3 0/5] Add Hyprland Plugins (Update) References: <cover.1741580560.git.wongandj@icloud.com> In-Reply-To: <cover.1741580560.git.wongandj@icloud.com> Resent-From: Gabriel Santos <gabriel.santos.smtp@gmail.com> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org> Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 29 Mar 2025 16:21:01 +0000 Resent-Message-ID: <handler.76910.B76910.174326521321246@debbugs.gnu.org> Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 76910 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 76910@debbugs.gnu.org Cc: Gabriel Santos <gabrielsantosdesouza@disroot.org> Received: via spool by 76910-submit@debbugs.gnu.org id=B76910.174326521321246 (code B ref 76910); Sat, 29 Mar 2025 16:21:01 +0000 Received: (at 76910) by debbugs.gnu.org; 29 Mar 2025 16:20:13 +0000 Received: from localhost ([127.0.0.1]:32797 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>) id 1tyYur-0005Wb-9x for submit@debbugs.gnu.org; Sat, 29 Mar 2025 12:20:13 -0400 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]:49168) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gabriel.santos.smtp@gmail.com>) id 1tyYul-0005QO-3Z for 76910@debbugs.gnu.org; Sat, 29 Mar 2025 12:20:11 -0400 Received: by mail-pl1-x641.google.com with SMTP id d9443c01a7336-22622ddcc35so30601065ad.2 for <76910@debbugs.gnu.org>; Sat, 29 Mar 2025 09:20:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743265201; x=1743870001; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=+fe87Iaa7RZFpJcVK+TncByp6mU2GnT2InbroES4c64=; b=Um/mLs77eLRxExBZzHXWZvVJUGEoTmcvdYLZkBC9DC4PEMunzeRW7RLb46N5u6ZGDg 6lo+0Sn49f0WoKQv8c3zoAGVHoE1LTmCqAC/zWt8hP/JSSSmETLtqf8JSP0wASfTma6w q8asfr6RcEGu2IUQ0aK/0ojVQP4O9OFt7fi619w/Q3iLxznfibGFhv6jEt58KHH3OUyG pgjgJ2HGBz4GgeqT+f8FOZii6Xl6a6ozJaB6oWAT+aIIGQJxzrJCkItibLz+HgFnXk9i 0QzoqMLi2FaVzlxFTibnno69wtkF+H56nmyig+nGVL04o8RCiUjyovKPMLpmbaKhAa3L wkPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743265201; x=1743870001; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=+fe87Iaa7RZFpJcVK+TncByp6mU2GnT2InbroES4c64=; b=wj9BMxth5Qlar+UAYY9njPKiUvu5kgR5kfRjzyJCmB/LyC8QMUsgrPlb+w5/fFGek6 WpSlukCVE+b16geidayfgAX5c8KSx7GF7z8Mbp7XCTg0iwXnynp6maVKfhwJsmP8PieF /zrOE22RNO355o3S+uDAN/RG+LBye1sxUQD3G8X1im6WjjQPOuHSCRHHbc/NHmGCr3oB Ytm5sgiI+CcmaxDbQkSylFSGKQROfPsk7xbLZPTbjRIxLSt1KoAR/NYP1zMn6OPPNhj6 V9315XNITaBbLLrxfx2F2cacqF6PKA/fwc3Az7zJyGCZ49cmz+86+XnnvBwnuROzrpqH OVWA== X-Gm-Message-State: AOJu0YyKRP7B+faUSSa4tumMaecUtLS9ETyjAIcHMqhZ0vXTbDjhQ/1J 17J9je9gxd4wPt0AI+hRPFkcXfXR2i3QBi0l835GdbacybNQp+HTzuKF4zubc9M= X-Gm-Gg: ASbGncurRuX9/BRbz6ABTQIWABsPWgkhmaTbv3PA26JTTsQdYmwBs2HFRMReSFatOPU JbPr+B43TnqdYP8LjkFOX9BF8D2bMgAEZnK6QelihisoqV37ofbpYq5UgSHf1Djcrip6GKklgtC IRYwZ+o5MRyAwv2JgkaAxT8+ormkjOC10/lTDwQMPZpECAPAojw9tvp7BBvVowixuVTUNwLF15Q sg0AeRk7UypF9CoQjirFFm+Aok8OrA23KPvtNGa+liLPCeyHIYHBPpEPef8+WALgMEIwttMfO7F ZwqhIXKSv/fZLPxaDbDX2p+xYcRdRBeF72aDWC5VdNhYvRPXTDrvvfDkvvVeN+ITaNDT6w350cX L6XTbRclIdg== X-Google-Smtp-Source: AGHT+IEkHpUQu7P6VrhVLrBrSxginnUlTt7LSwH1w9FnrO/E8avmHNKnbruiANE/49iWhnaoDQAw8w== X-Received: by 2002:a05:6a00:218d:b0:736:fff2:99b with SMTP id d2e1a72fcca58-7398045dfecmr5793652b3a.23.1743265200806; Sat, 29 Mar 2025 09:20:00 -0700 (PDT) Received: from localhost (177-70-169-245.infotec.psi.br. [177.70.169.245]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73970def558sm3887453b3a.15.2025.03.29.09.19.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Mar 2025 09:20:00 -0700 (PDT) From: Gabriel Santos <gabriel.santos.smtp@gmail.com> X-Google-Original-From: Gabriel Santos <gabrielsantosdesouza@disroot.org> Date: Sat, 29 Mar 2025 13:16:35 -0300 Message-ID: <cover.1743265000.git.gabrielsantosdesouza@disroot.org> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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> 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 |
Add Hyprland Plugins (Update)
|
|
Message
Gabriel Santos
March 29, 2025, 4:16 p.m. UTC
This new revision add in a missing copyright statement, and a new plugin, hypr-dynamic-cursors. Andrew Wong (4): gnu: Add Hyprland plugins. gnu: Add hyprscroller. gnu: Add hy3. gnu: Add hypr-darkwindow. Gabriel Santos (1): gnu: Add hypr-dynamic-cursors. gnu/packages/wm.scm | 258 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) base-commit: 3746dcae31730ff405f49e1a32b506bfa827a3ea
Comments
I took a closer look at how Hyprland plugins are built, and I think more work will need to be done on their build system. Outside of Guix, plugins are built and installed by hyprland's userspace package manager, hyprpm, which reads a .toml file in the repository root, finds the plugin commit corresponding to the installed Hyprland's commit (or the latest commit, if there are no corresponding commits), and checks it out before compiling[1]. Meaning, our latest version (v3) of the patch series still has some issues: for one, they are all currently pulling from the incorrect commits, as they should be pulling from the commit specified in each plugin's .toml file corresponding to the currently packaged Hyprland, or from the latest git. For two, they will be a chore to maintain, as updating them correctly will involve going into each repo and checking their .toml file. Finally, they cannot be versioned easily, since we would have the (often missing) version of the plugin as well as the version the package is to be compiled for to contend with[2]. There are a few ways I've thought up for us to do this better: 1. We can create a "hyprland-plugin-build-system" or "hyprland-plugin-phases" that emulates hyprpm by retreiving the commit hash of the input hyprland package (my initial thought is that we could use the full commit hash presented by `hyprland --systeminfo`), parsing the .toml file, and switching to the correct commit before building (maybe even parsing the build instructions given in the files?) 2. We can package (and heavily patch to run in build-space) hyprpm to be used directly in the build process for plugins. Or, we could ask hyprpm's developers to add features to let it be used in this way (e.g. allowing the directories it uses to be customized) to reduce Guix' maintenance load, but it may be a tough sell. 3. We can package hyprpm as a userspace tool and let it do its thing. It's not like it provides nonfree binaries, anyways (but it does seem to ask that the user pollute their profile with whatever build tools a plugin uses--nothing `guix shell` can't smooth over.) This is what the developers advise[3]. It feels very "un-guix" to let any binary build happen outside of a hermetically-sealed build bubble, though, let alone the idea of running software compiled from the "latest git". Options 1 and 2 would make maintenance and versioning of the packages much easier, as you'd just have to keep them on their latest git (or version if they have their own version numbers) and the build system would take care of the rest. Option 3 would mean having no plugin packages to maintain in the first place. Let me know what you all think, or if you have any ideas of your own. - Andrew Wong [1] https://wiki.hyprland.org/Plugins/Development/Plugin-Guidelines/#commit-pins [2] I used to think I could version them with just the Hyprland version they're meant for, but then I realized that later versions of the plugins can change the commits corresponding to each version, so e.g. the Jan. 2026 version of hyprscroller for hyprland 0.51.1 could be different from the Mar. 2026 version of hyprscroller for hyprland 0.51.1. I mean, I guess it could be solved with some funky extended version number scheme, but it wouldn't be elegant. [3] https://github.com/hyprwm/hyprland-plugins/issues/312
>hyprland's userspace package manager, hyprpm Not /another/ one! >1. We can create a "hyprland-plugin-build-system" or "hyprland-plugin-phases" >that emulates hyprpm by retreiving the commit hash of >the input hyprland package (my initial thought is that >we could use the full commit hash presented by >`hyprland --systeminfo`), parsing the .toml file, >and switching to the correct commit before building >(maybe even parsing the build instructions given in >the files?) This is the option I prefer. It is future-proof, as it makes adding newer plugins a simpler process. Though, couldn't we take over the package manager, as is done in other build systems, such as cargo, go and node? Even the main one, gnu-build-system, uses a command for building, such as Make, instead of doing everything manually. I'm not sure I could help with this though, I don't think I'm practical with Guix/Scheme to the point of creating a whole new build system. >3. We can package hyprpm as a userspace tool and let it >do its thing. It's not like it provides nonfree binaries, >anyways (but it does seem to ask that the user pollute >their profile with whatever build tools a plugin >uses—nothing `guix shell` can't smooth over.) This >is what the developers advise[3]. It feels very "un-guix" >to let any binary build happen outside of a >hermetically-sealed build bubble, though, let alone the >idea of running software compiled from the "latest git". This seems to be the most likely option. And it's not /that/ strange for Guix, as we have a well functioning version of Nix here, which I use with home-managr to install whatever might not be available here. Also, from the issue you linked, it would repsect the author's wishes. >[3] <https://github.com/hyprwm/hyprland-plugins/issues/312>