From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id oGgiJY3f+WUm4QAA62LTzQ:P1 (envelope-from ) for ; Tue, 19 Mar 2024 19:55:09 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id oGgiJY3f+WUm4QAA62LTzQ (envelope-from ) for ; Tue, 19 Mar 2024 19:55:09 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=cyberdimension.org header.s=dkim header.b=EsavnlAV; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1710874509; 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:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=dCjlr9HdgST+tUK8uu1DxaukmWoXVn1D5OW6KZPnQeI=; b=Kla5PrYvWlr3pe/HZq5DjHJV3zf47J2WSgEO3Z0pA3OgwLYnm6v3zkyjZYVqPXyJ8yvMXY IIftv2f9SpZRT0Zq1O8Oe9COQmpR0U81QaJ1sUREY/1847cbexz1QoANUgup99lqLWI87O SCoHDax/oJ4JCPyQDvigwSV3x9lp96dXObMh3M1KVK8iVJ/U9GvkBHzFpNew+RFkZJfcn3 gnfBKRBngXAvD8r6Z//eqb2YcnBeCLtBNep1AsItYcB9GZIQLBMRlzDXiejYztQEB2LycM EjRjzm+GcgXma0yJmx3FHZW0H2kAZAKB4hBXLfuY+/JJwu5hwP3FDwpc+VcbXA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=cyberdimension.org header.s=dkim header.b=EsavnlAV; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1710874509; a=rsa-sha256; cv=none; b=AT6/uNA/EDt3i8ocmyrbZq0ZT1sPFvRr86AqQ5QasLsMtHat5ZPB5yVIzReL9PeHW10lHO q9VFZgpsBJbNToJVG+AG2EdjxPkgOr3TACi1HX5FhkbgXUspPE4s8O0DoomHNZDVBE3ZRJ QArCKL+7/CPyCoARJqPGHG9r/ks94DgrWwp5A74w79n+PLBIX1hr4Ui0I8it8tOiD1Z4fn i+k8bp4KafdOVynwYylK9HIm0lQ76ajAFjRc9SRzaq9ytJBYU+8v1NAcHpKnKqMGFsGu2H p+MEiP9cDqSDL88sFBR6w8IxrUQd3UrVLGEv5vfl6M4AmlLuoRJW7aMwp3ChZw== 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 3A4B31EC58 for ; Tue, 19 Mar 2024 19:55:09 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rmebk-00069m-T9; Tue, 19 Mar 2024 14:54:44 -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 1rmebi-00069M-CF for help-guix@gnu.org; Tue, 19 Mar 2024 14:54:42 -0400 Received: from cyberdimension.org ([80.67.179.20] helo=gnutoo.cyberdimension.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rmebf-00084e-Ec; Tue, 19 Mar 2024 14:54:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=dkim; bh=CyTcvXLXcf6guF+ RoZf7iFx6XIc8soEnyoyqpR6tCMg=; h=subject:cc:to:from:date; d=cyberdimension.org; b=EsavnlAV/IaoEN4Q5v2XBiB2O9/GS327ZBFJ4EGtWmdLA1 vZTLWK/FJLXmRJNnXPwSY24MnI0VGQ6FFuKwfxz9WuxWouELgrtJnJ3VPczF+Ci1E4zCXM RzXii61rLG53S9j1M8iaIIE3vGVmY+u79tS+UCO1COkYK/jaVl2wiVzswc/aLe+9W4+1Ad VMV9EljQ5peMDP/B/hfeGyCfFVT4apZtnf2l/TiVzD7DSeTfPlTNWszruVrYf3Ob7XKdPl +zd/tzZrKRIdiTxUO+XG6JEpUWumD7vO1Z1H/poI5PyOvgelNbJRCNDPDBK9Xlw+6jBOYZ l4GUBn2gX7Pxy40g== Received: from primary_laptop (localhost [::1]) by gnutoo.cyberdimension.org (OpenSMTPD) with ESMTP id e8a4a2d3; Tue, 19 Mar 2024 18:54:29 +0000 (UTC) Date: Sat, 16 Mar 2024 02:03:07 +0100 From: Denis 'GNUtoo' Carikli To: help-guix@gnu.org Cc: Adrien 'neox' Bourmault Subject: Guix as a non-optional dependency in another project, and Guix resources requirements. Message-ID: <20240316020307.6bf7335c@primary_laptop> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.37; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/GYT/X4=7XGPxxokF6JO7yHh"; protocol="application/pgp-signature"; micalg=pgp-sha256 Received-SPF: pass client-ip=80.67.179.20; envelope-from=GNUtoo@cyberdimension.org; helo=gnutoo.cyberdimension.org 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, SPF_HELO_NONE=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: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -5.91 X-Spam-Score: -5.91 X-Migadu-Queue-Id: 3A4B31EC58 X-Migadu-Scanner: mx12.migadu.com X-TUID: N+MqDngju8VM --Sig_/GYT/X4=7XGPxxokF6JO7yHh Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi, I'm one of the co-maintainers of GNU Boot, a project aimed at replace nonfree boot firmwares that comes with computers with fully free software. For that we reuse software like Coreboot, GRUB, SeaBIOS, etc that are combined into installable images. Most of the code is still inherited from the latest release(s) of Libreboot that produced fully free software releases and currently consists in shell scripts that build these software components (by running ./configure, make etc directly in the shell scripts). Right now we only use Guix as an optional dependency to build the website: if people use './configure --enable-guix', it uses 'guix time-machine [...] -- shell [...]' under the hood to make the build reproducible, install all dependencies, etc. Having Guix optional and not used by default means that people who use --enable-guix already have Guix installed and take know how to update it with guix pull. So if we have Guix as a non-optional dependency, if we take care of automatizing the installation and update of Guix, users would then be able to build GNU Boot directly without having to lean Guix basics first, and worry about learning Guix later on when they contribute to GNU Boot or Guix directly. My first tentative was to automatically install Guix from the host distribution package manager (if Guix is not already there) and update it to the revision we need (if it's not already at a more recent revision). So I took care (in script(s) that are run automatically) of different distros package managers (apt, pacman, yum, etc) and exporting the right variables / sourcing the right scripts, and I still need to handle distributions without a guix package and to enable the substitutes for new Guix installations. But beside that I'm not sure I'm on the right track because: - First and most importantly, running 'guix pull' can fail sometimes, especially if there is not enough RAM per core. A fix that work is to lower the number of cores used with 'guix pull -c 1 -M 1' for instance. But the issue is that I'm unsure how much RAM per core is needed. Maybe 2GiB or 3GiB? Also if users have heavy desktop usage (browser(s) with a ton of tabs open) could that value change? I could ask help from GNU Boot users for testing to find that value but maybe the Guix community already knows more about this. The big downside of my approach here is that if for some reason the script I made uses a 'memory per core' value that is too low, it would probably makes things way more difficult for contributors than having to read the Guix manual upfront in the first place, because it would fail and they won't understand why. So they'd need to understand both Guix, the code I wrote, and what caused the issue. - If Guix was already installed on a host distribution, I'm not sure how to handle substitutes. Ideally I'd like to be able to enable them just for GNU Boot and not change the way they are handled for other Guix usage. Also if substitutes are not used it probably affect the amount of RAM per core required. One way around here could be to build Guix ourselves and somehow find a way to have different defaults, but building that Guix could probably a long time. Are there projects that had similar issues / questions? Or is what I'm trying to do a can of worms and I'd better point users to the Guix manual instead? PS: Is this mail posted on the right mailing list? In one hand these questions are about Guix usage, but in another the people who might know the answer probably need to have a very good understanding of Guix internals and/or of how to write the Guix manual. Denis. --Sig_/GYT/X4=7XGPxxokF6JO7yHh Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEeC+d2+Nrp/PU3kkGX138wUF34mMFAmX078sACgkQX138wUF3 4mPVug//Uky28gGh5FDuWt86Lvod9bHzWu/cEOWU62MkoTO3JnvD2ZhbC0vm0Dcj k8GQO55lEIj+S0fK1x09MBt8xYf1IopfYv3GHbkhv/4WM7bmCPGfm41Cl8C+D4vL IAOJdQofKBk+nDn/qlwiRYPDj97cCrnJDdYIYvwKagHIMVy9ct+PYe/Ww6LfbLbK IOszmpq8tY/uvBkXuJioqIOEHuUSHr+oRDpkPS0X5YpJ6sb/YLuac4nlZ5sOalQU T2+9FId6w8IKvTPdusG7nXa0YwN6+WOosIUUboe79Wl6+UMMM7NVgdUAN81z+iil CkfE+w9RnYY3B6/HquThdODJhNyk1eoqwrjgZGSq9tO90UTXt/TazCKy9b6jKAYm N2FtgvQMbA0IcJeXvyVhZ+fypSRj2jjBMHFGFn9O+UQRQvhSvFNxfVP/gAubuI2C JBAAsqNa5nNhpt2jFJkti928TfSGpUdI87qMvDTvKY+7bxKRfZ/9CnYd0YbfD2yr mPZzeG36cSR4H51pb1v4EklPVplagBoQLjZOFwULUA9Nt7CnbavihgaFUgPeIRYi YhqDNSMtFWEF3p7dDELf/R7tGVtTwLfVEotSz2uuR1hD5K8n7ZCaQ0xh9+R3FWLG ffacakH30FPxfPbPBVFAlR8DqmVT7IU02NIiPNUo45S119EicI4= =gH4f -----END PGP SIGNATURE----- --Sig_/GYT/X4=7XGPxxokF6JO7yHh--