From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Towards a new 'guix pull' Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 11 Feb 2016 10:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.14551869362803 (code B ref -1); Thu, 11 Feb 2016 10:36:02 +0000 Received: (at submit) by debbugs.gnu.org; 11 Feb 2016 10:35:36 +0000 Received: from localhost ([127.0.0.1]:35689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTob2-0000j8-LV for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:36 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38582) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTob0-0000iw-BS for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aToau-0002uC-8F for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:29 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:60338) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToau-0002u8-5A for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:28 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57781) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToat-0007jR-4H for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aToao-0002tW-QE for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:26 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52848) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToao-0002tS-Nu for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:22 -0500 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:60334 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aToao-0007Cj-4w for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:22 -0500 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 23 =?UTF-8?Q?Pluvi=C3=B4se?= an 224 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x3D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Thu, 11 Feb 2016 11:35:18 +0100 Message-ID: <87vb5vsffd.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.3 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.3 (-----) Hello! Here=E2=80=99s a series of improvements that I think we should make in =E2= =80=98guix pull=E2=80=99: =E2=80=A2 Use Git instead of downloading a whole snapshot every time. Th= e Git checkout would be kept in ~/.cache/guix/pull/checkouts, say. A related question is whether to use Git itself, which is pretty big per =E2=80=98guix size=E2=80=99, or to use some libgit2 bindings such as (the closure of libgit2 is 435=C2=A0MiB; that of Git is 761=C2=A0MiB.) =E2=80=A2 Build & install not only Scheme code, but also locales and the = Info manual. =E2=80=A2 Have a =E2=80=9Cchannel=E2=80=9D mechanism, similar to =E2=80= =98nix-channel=E2=80=99, that would allow users to have several Guix variants available in parallel instead of just =E2=80=9Clatest=E2=80=9D. Could work like this: guix channel add latest git://git.sv.gnu.org/guix.git master guix channel add stable git://git.sv.gnu.org/guix.git stable guix channel pull latest guix channel set latest # here i see the latest versions of everything guix channel set stable # and here everything is old but super stable ;-) All 3 items can be done separately, I think. Any takers? :-) Ludo=E2=80=99. PS: I do not mention the issue of authenticating code here, which is obviously very important and deserves to be treated separately. Related to that is the question of making sure that what you think is the latest version really is the latest version. We need someone to sign certificates saying what the latest commit ID of a repo is. See the =E2=80=9CThe Update Framework=E2=80=9D paper! From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 12 09:07:58 2016 Received: (at control) by debbugs.gnu.org; 12 Feb 2016 14:07:58 +0000 Received: from localhost ([127.0.0.1]:37359 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUEO6-0005vU-H9 for submit@debbugs.gnu.org; Fri, 12 Feb 2016 09:07:58 -0500 Received: from eggs.gnu.org ([208.118.235.92]:34955) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aUEO5-0005vD-2C for control@debbugs.gnu.org; Fri, 12 Feb 2016 09:07:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUENv-0001zB-0P for control@debbugs.gnu.org; Fri, 12 Feb 2016 09:07:51 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:60126) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUENu-0001z7-Ta for control@debbugs.gnu.org; Fri, 12 Feb 2016 09:07:46 -0500 Received: from reverse-83.fdn.fr ([80.67.176.83]:51214 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aUENu-0000Cp-7b for control@debbugs.gnu.org; Fri, 12 Feb 2016 09:07:46 -0500 Date: Fri, 12 Feb 2016 15:07:44 +0100 Message-Id: <87d1s210pb.fsf@gnu.org> To: control@debbugs.gnu.org From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: control message for bug #22629 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.1 (-----) severity 22629 wishlist From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=98guix_?= =?UTF-8?Q?pull=E2=80=99?= and external dependencies Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 28 Nov 2016 14:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Efraim Flashner Cc: guix-devel@gnu.org, =?UTF-8?Q?=E5=AE=8B=E6=96=87=E6=AD=A6?= , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.14803424026320 (code B ref 22629); Mon, 28 Nov 2016 14:14:01 +0000 Received: (at 22629) by debbugs.gnu.org; 28 Nov 2016 14:13:22 +0000 Received: from localhost ([127.0.0.1]:44301 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBMgM-0001ds-9l for submit@debbugs.gnu.org; Mon, 28 Nov 2016 09:13:22 -0500 Received: from eggs.gnu.org ([208.118.235.92]:58908) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBMgL-0001dg-18 for 22629@debbugs.gnu.org; Mon, 28 Nov 2016 09:13:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBMgB-000341-B4 for 22629@debbugs.gnu.org; Mon, 28 Nov 2016 09:13:15 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42578) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBMgB-00033w-7b; Mon, 28 Nov 2016 09:13:11 -0500 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:50064 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cBMgA-0007EJ-GS; Mon, 28 Nov 2016 09:13:10 -0500 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87poma53yi.fsf@gnu.org> <87oa13qimp.fsf@gnu.org> <20161126044257.GA15256@jasmine> <87zikmb7ix.fsf@member.fsf.org> <87k2bok1zm.fsf@gnu.org> <20161128100636.GB2509@macbook42.flashner.co.il> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 8 Frimaire an 225 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Mon, 28 Nov 2016 15:13:08 +0100 In-Reply-To: <20161128100636.GB2509@macbook42.flashner.co.il> (Efraim Flashner's message of "Mon, 28 Nov 2016 12:06:36 +0200") Message-ID: <87vav7ae17.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -7.9 (-------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -7.9 (-------) Hi! Efraim Flashner skribis: > If I understand it correctly, as part of `guix pull' we get the latest > package definitions, but `guix' and `guix-daemon' are at the > guix-snapshot version, aka 0.11.0-4. If instead `guix-daemon' was from > the tip of master then it'd be at the equivalant of running > './pre-inst-env guix-daemon --build-users...', which would have all > these changes. What =E2=80=98guix pull=E2=80=99 does is fetch the latest code, build *the = Scheme subset* of that code, and install it in ~/.config/guix/latest. Thus, it gives you the latest package recipes as well as the latest =E2=80=98guix=E2=80=99 sub-commands. What it does not give you is: 1. The latest C++ code (guix-daemon, guix-register). 2. The latest locales. 3. The latest elisp code. 4. The latest dependencies (the Guile that appears in the shebang of the =E2=80=98guix=E2=80=99 command, zlib, Guile-SSH, Guile-JSON, etc.) It worked OK when Guix was self-contained, and assuming people would update guix-daemon through other ways (=E2=80=98guix system reconfigure=E2= =80=99 on GuixSD). But now we see that these shortcomings are starting to bite. So I think what we need to do is for =E2=80=9Cguix pull-ng=E2=80=9D to buil= d and install a complete =E2=80=98guix=E2=80=99 package, and to manage it pretty much lik= e other packages is managed, except not in the user=E2=80=99s main profile (because= that could lead to undesirable behavior, where upgrading Guix creates a new generation, or, in theory, unrecoverable problems, where you cannot roll back because previous generations use an old Guix that does not understand the new manifest format.) The difficulty is that ./configure && make && make install in Guix takes some time, and we probably wouldn=E2=80=99t want to do that on each =E2=80= =98guix pull=E2=80=99 invocation (esp. with Guile 2.2=E2=80=99s compilation times.) So we may have to provide substitutes of Guix itself, and arrange so that =E2=80=98guix pull=E2=80=99 pulls up to a tag for which we have substi= tutes. Ideas welcome! See . Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=98guix_?= =?UTF-8?Q?pull=E2=80=99?= and external dependencies Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 29 Nov 2016 01:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: guix-devel@gnu.org, 22629@debbugs.gnu.org, Efraim Flashner Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.148038470112982 (code B ref 22629); Tue, 29 Nov 2016 01:59:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Nov 2016 01:58:21 +0000 Received: from localhost ([127.0.0.1]:45422 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBXga-0003NK-MB for submit@debbugs.gnu.org; Mon, 28 Nov 2016 20:58:20 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:33515) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBXgZ-0003N5-Mk for 22629@debbugs.gnu.org; Mon, 28 Nov 2016 20:58:20 -0500 Received: by mail-pg0-f67.google.com with SMTP id 3so14713159pgd.0 for <22629@debbugs.gnu.org>; Mon, 28 Nov 2016 17:58:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=UKKUFXjp3jLYmfB+CG7r4YnqeLsVBjNPTdgvLBM+7+g=; b=wXw7HUFqk5yfEhOIDt5j1UszquS9pVZsXQ7yb70qdNervL7y3L9qE9ah3FV5Bo5mtH 6DF6TiHBuZBk7LJXy2UMQN2iMCUm40DRFar60UAyhLtVsF50eQgEHB23gLDj65RAtoWr 21yZj4/wm/3WtjNllnEYLN7XZH7VY0sEYBJxlfWk9NdyVmf+SaKZK87ZZRxPy+VcuGoE OgnSYMA40OBDm1bBK7EygN9MccWQ3C6ixu34PVY/pXAl16TqP+rQN1hnSIGfP0wVDzoN Pwx8ev4Clu9MlkuiS1/GVtbUWB7op0DD6KesZSOaThO/ofYyypS5VFw38yHBimOPg13X Ving== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=UKKUFXjp3jLYmfB+CG7r4YnqeLsVBjNPTdgvLBM+7+g=; b=QGIaVQKTG+s0uIOV3xbk8111bBJuuf44SYNrO7RLl+hexZfM+Z8a7cnaXr6JwSCbUV Uo5p5UFY+UF0DA4Q3KA50fV121hk78EW/sLFWfDXEd8JtRdXIR6+WriRLPtEc61jqZ6/ QayJ7g+thOMVMkl3ueaOA1XE3kYvXNvYnQIgCpAGyLj08xGfkmT0SbAjpHO4pmgGJTm4 ZK7KL4hfNkQrbddXwK+DNSx/KO42Pr2GEcCFtNDJP+uaRrifHLFAtmJN/KLsePETwj0m QT3l19h2VIcRtjDcqJ4IE2I1rdiXVAW5gRGUHAfxRvsDwNsDLSfZZ3kQrApZdzxtwOqg VaDw== X-Gm-Message-State: AKaTC00VgyAzgjEKV0HxVHCDAcBrrC4WQQCStuaClcREqqG8c/bTIat8KaxNL+ww7L/ELg== X-Received: by 10.84.167.168 with SMTP id d37mr56056281plb.71.1480384693348; Mon, 28 Nov 2016 17:58:13 -0800 (PST) Received: from garuda ([2601:602:9d80:13d4:4e0f:6eff:fef6:70b9]) by smtp.gmail.com with ESMTPSA id w24sm90059197pfa.9.2016.11.28.17.58.12 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 28 Nov 2016 17:58:12 -0800 (PST) From: Chris Marusich References: <87poma53yi.fsf@gnu.org> <87oa13qimp.fsf@gnu.org> <20161126044257.GA15256@jasmine> <87zikmb7ix.fsf@member.fsf.org> <87k2bok1zm.fsf@gnu.org> <20161128100636.GB2509@macbook42.flashner.co.il> <87vav7ae17.fsf_-_@gnu.org> Date: Mon, 28 Nov 2016 17:58:06 -0800 In-Reply-To: <87vav7ae17.fsf_-_@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\?\= \=\?utf-8\?Q\?\=22's\?\= message of "Mon, 28 Nov 2016 15:13:08 +0100") Message-ID: <87wpfn2gk1.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo`, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > So I think what we need to do is for =E2=80=9Cguix pull-ng=E2=80=9D to bu= ild and install > a complete =E2=80=98guix=E2=80=99 package, and to manage it pretty much l= ike other > packages is managed,=20 I think that's very reasonable. It seems more intuitive than the current way 'guix pull' works. I suspect that managing the installed version of Guix via the same Guix mechanisms that we use to manage any other package might be the best, most intuitive solution. Would it simplify the problem if we packaged the "Guix client stuff", the "Guix daemon stuff", and maybe the "Guix package definition stuff" separately? Then a user could just install the "Guix client stuff" package if she wanted to upgrade the Guix client tools, or the "Guix package definition stuff" package if she wanted to get the latest package definitions. > except not in the user=E2=80=99s main profile (because that could lead to > undesirable behavior,=20 If we don't store Guix in the user's main profile, where would it go? A system profile (like in GuixSD)? What if another user wants to run a different version of Guix? It might be nice to let them do that. It's not clear to me why it's riskier to store Guix in a profile rather than outside the profile (but still in the store via the $HOME/.config/guix/latest symlink), which is what 'guix pull' does now. You seem to think it's riskier; I'm curious to know more about why. > where upgrading Guix creates a new generation,=20 Why should upgrading Guix NOT create a new generation? I thought that a new profile generation would be created any time you upgrade a package, and I thought that was a good thing because it facilitates easy, transactional roll-back. Perhaps I'm missing something. > or, in theory, unrecoverable problems, where you cannot roll back > because previous generations use an old Guix that does not understand > the new manifest format.) Why would a change in manifest format be unrecoverable? It looks like each profile generation contains a manifest file. Assuming that the new Guix functions well enough to perform roll back, couldn't we just roll back to the previous profile generation, where we would have both (1) the old profile's manifest file, and (2) the previous Guix, which understands that format? Since rolling back a profile is basically just a symlink flip, I think the new Guix could probably do that even if it didn't understand the old manifest format. > The difficulty is that ./configure && make && make install in Guix takes > some time, and we probably wouldn=E2=80=99t want to do that on each =E2= =80=98guix pull=E2=80=99 > invocation (esp. with Guile 2.2=E2=80=99s compilation times.) > > So we may have to provide substitutes of Guix itself, and arrange so > that =E2=80=98guix pull=E2=80=99 pulls up to a tag for which we have subs= titutes. What if we had a special package version of Guix (e.g., "v0.11.0") which we kept up to date via some mechanism? Maybe something as simple as a Git hook could help increase the likelihood of that version being substitutable. For example, we could have a Git hook that prevents someone from checking in a change if the latest Git tag does not correspond to a Guix package version. Maybe we can do better. I actually think it would be a good thing if we can run "guix pull" without substitutes available. But it should use a substitute by default, and "build from source" should be a fallback mechanism that the user has to explicitly request, just like when installing new packages. That would help avoid unexpectedly long "guix pull" invocations. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJYPOCuAAoJEN1AmhXYIkadaAYP/0od3zbxya4o9kkELfpkrZbh Npj/0v46dw/h/HbCTLpu2S0ktYEG5o+eu5Ngua+bo+hKrGu7r8jcejApiSkf9oZt ayIppN4zNrJa8yp4nW2U7D6b0wWpl/vPecVJtNtU355v/ng0AGeau2dt8yRyIWoH p8JYxWiK86//cc2neNifFLD4QO+Eh7jPixjGOlZDRTyoDXTg8Va/4bHRkgxguWLd c+IhTySHCp8AfVkc4L7eNsNYWFYk9fC1wO4XSJiat5RhELAD5M1IkKpbBp5FLGnT pbvPaP4XBKOVzLWPHcQhKJyxOGKC5T0nJaHSq+FwowIAu2+IHuzTflw10fodGpVJ bkhjdILNX5KOPCa4C9nJ6PivEZtgon0iQvV8RHyNyBNqEB/m9fVHoik0tS/Xi/hv KPtOCrQOrdqlbFmzqXaeoUjb+rQIAPAVa442LgR7bGm+VQkCkkfU6wczmzrgKbWh pBFOsAvI3yjaDG4gT+8HVzcit3mRwQQ4yQsoCBGpCgfJCJtW1sX/ZrrdatCQx6bP CND2uHLBBfrK6U0s014N3CqfIBv/jtrp/4fL08sIeJodrh7oFAsPwMM6+sdO4w9B 8J190wbUYzeEEsks+7D9tE1FxzHpQV+MYjqLFNifJ4wQdpTa5Llo1iLIOV8hjBK2 7wWIyClPOZA3c766Zkmq =09gL -----END PGP SIGNATURE----- --=-=-=-- From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=98guix_?= =?UTF-8?Q?pull=E2=80=99?= and external dependencies Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 29 Nov 2016 14:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Chris Marusich Cc: guix-devel@gnu.org, 22629@debbugs.gnu.org, Efraim Flashner Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.148043129614537 (code B ref 22629); Tue, 29 Nov 2016 14:55:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Nov 2016 14:54:56 +0000 Received: from localhost ([127.0.0.1]:45747 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBjo7-0003mP-Kq for submit@debbugs.gnu.org; Tue, 29 Nov 2016 09:54:55 -0500 Received: from eggs.gnu.org ([208.118.235.92]:34598) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBjo6-0003m6-CT for 22629@debbugs.gnu.org; Tue, 29 Nov 2016 09:54:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBjnx-0003uk-SB for 22629@debbugs.gnu.org; Tue, 29 Nov 2016 09:54:49 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34850) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBjnx-0003ue-Oj; Tue, 29 Nov 2016 09:54:45 -0500 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:34242 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cBjnx-0007cw-1F; Tue, 29 Nov 2016 09:54:45 -0500 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87poma53yi.fsf@gnu.org> <87oa13qimp.fsf@gnu.org> <20161126044257.GA15256@jasmine> <87zikmb7ix.fsf@member.fsf.org> <87k2bok1zm.fsf@gnu.org> <20161128100636.GB2509@macbook42.flashner.co.il> <87vav7ae17.fsf_-_@gnu.org> <87wpfn2gk1.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 9 Frimaire an 225 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Tue, 29 Nov 2016 15:54:42 +0100 In-Reply-To: <87wpfn2gk1.fsf@gmail.com> (Chris Marusich's message of "Mon, 28 Nov 2016 17:58:06 -0800") Message-ID: <87wpfm49ql.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -7.9 (-------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -7.9 (-------) Hello, Chris Marusich skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> So I think what we need to do is for =E2=80=9Cguix pull-ng=E2=80=9D to b= uild and install >> a complete =E2=80=98guix=E2=80=99 package, and to manage it pretty much = like other >> packages is managed,=20 > > I think that's very reasonable. It seems more intuitive than the > current way 'guix pull' works. I suspect that managing the installed > version of Guix via the same Guix mechanisms that we use to manage any > other package might be the best, most intuitive solution. > > Would it simplify the problem if we packaged the "Guix client stuff", > the "Guix daemon stuff", and maybe the "Guix package definition stuff" > separately? Then a user could just install the "Guix client stuff" > package if she wanted to upgrade the Guix client tools, or the "Guix > package definition stuff" package if she wanted to get the latest > package definitions. It would be bad to separate package definitions from the rest because they are very much intertwined: package definitions depend on the definition of =E2=80=98package=E2=80=99, on build system implementations, a= nd so on. We could have guix-sans-daemon though, if that helps (which I suspect is not the case). >> except not in the user=E2=80=99s main profile (because that could lead to >> undesirable behavior,=20 > > If we don't store Guix in the user's main profile, where would it go? In =E2=80=9Csome sort of a profile=E2=80=9D in ~/.config/guix/latest or sim= ilar. > It's not clear to me why it's riskier to store Guix in a profile rather > than outside the profile (but still in the store via the > $HOME/.config/guix/latest symlink), which is what 'guix pull' does now. > You seem to think it's riskier; I'm curious to know more about why. There=E2=80=99s the manifest format change issue I mentioned, or the inabil= ity to roll back if you install a broken Guix. >> where upgrading Guix creates a new generation,=20 > > Why should upgrading Guix NOT create a new generation? I thought that a > new profile generation would be created any time you upgrade a package, > and I thought that was a good thing because it facilitates easy, > transactional roll-back. Perhaps I'm missing something. I=E2=80=99m suggesting that upgrading Guix creates a new generation (so we = agree here), just not in the user=E2=80=99s profile. >> or, in theory, unrecoverable problems, where you cannot roll back >> because previous generations use an old Guix that does not understand >> the new manifest format.) > > Why would a change in manifest format be unrecoverable? It looks like > each profile generation contains a manifest file. Assuming that the new > Guix functions well enough to perform roll back, couldn't we just roll > back to the previous profile generation, where we would have both (1) > the old profile's manifest file, and (2) the previous Guix, which > understands that format? Since rolling back a profile is basically just > a symlink flip, I think the new Guix could probably do that even if it > didn't understand the old manifest format. Yeah, I think you=E2=80=99re right. :-) In general, I think my concern is more that we cannot promise that downgrading Guix will work, considering the potential for on-disk format changes. It=E2=80=99s a bit theoretical, but not entirely sci-fi either. >> The difficulty is that ./configure && make && make install in Guix takes >> some time, and we probably wouldn=E2=80=99t want to do that on each =E2= =80=98guix pull=E2=80=99 >> invocation (esp. with Guile 2.2=E2=80=99s compilation times.) >> >> So we may have to provide substitutes of Guix itself, and arrange so >> that =E2=80=98guix pull=E2=80=99 pulls up to a tag for which we have sub= stitutes. > > What if we had a special package version of Guix (e.g., "v0.11.0") which > we kept up to date via some mechanism? Maybe something as simple as a > Git hook could help increase the likelihood of that version being > substitutable. For example, we could have a Git hook that prevents > someone from checking in a change if the latest Git tag does not > correspond to a Guix package version. Maybe we can do better. Right, we could do something like that. There are still non-zero chances that someone running =E2=80=98guix pull=E2=80=99 at an arbitrary po= int in time will have to build locally, which is not great. > I actually think it would be a good thing if we can run "guix pull" > without substitutes available. But it should use a substitute by > default, and "build from source" should be a fallback mechanism that the > user has to explicitly request, just like when installing new packages. > That would help avoid unexpectedly long "guix pull" invocations. Yes, using substitutes or falling back to source builds is always the default. Thanks for your feedback! Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Towards a new 'guix pull' Resent-From: Pjotr Prins Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 22 Feb 2017 08:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.148775044023061 (code B ref 22629); Wed, 22 Feb 2017 08:01:02 +0000 Received: (at 22629) by debbugs.gnu.org; 22 Feb 2017 08:00:40 +0000 Received: from localhost ([127.0.0.1]:49602 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cgRqp-0005zs-K7 for submit@debbugs.gnu.org; Wed, 22 Feb 2017 03:00:39 -0500 Received: from mail.thebird.nl ([95.154.246.10]:45588) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cgRqn-0005ze-IO for 22629@debbugs.gnu.org; Wed, 22 Feb 2017 03:00:38 -0500 Received: by mail.thebird.nl (Postfix, from userid 502) id D24BE4001A; Wed, 22 Feb 2017 08:57:06 +0100 (CET) Date: Wed, 22 Feb 2017 07:57:06 +0000 From: Pjotr Prins Message-ID: <20170222075706.GA21158@mail.thebird.nl> References: <87vb5vsffd.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87vb5vsffd.fsf@gnu.org> User-Agent: Mutt/1.6.2 (2016-07-01) X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) I wrote up a 'white paper' on a new implementation of Guix channels. The easy on the eyes version you can read here: https://github.com/pjotrp/guix-notes/blob/master/proposals/channel.org * On Channels Related to debbugs https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22629 and https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22883#103 ** Updating package definitions through channels *** Introduction The main purpose of creating Guix channels is to allow users to use different versions of the Guix package tree that differ from the master branch, i.e., have people share packages with each other that are not in the GNU Guix distribution itself. Within Guix there are good reasons to handle such cases. For example, to support an older package, such as, ruby 1.8.7 (currently in the master tree, but could be removed), and to have different editions of combinations of packages. This versioning we currently achieve by explicitely working from git checkouts of trees - not trivial for everyone. Channels will just make versioning easier and accessible for everyone. Outside Guix, channels can support also different combinations of packages, e.g., such as for easily deploying different versions of the GeneNetwork webservice (development/staging/testing/production branches). Channels will also make it possible to switch testing off in certain packages, for example, or to distribute data packages that do not belong or are not wanted in GNU Guix. In short, channels allow for easy specialization of deployments. Also, channels and 'guix publish' distributed services can go hand in hand in providing such specializations. *** Usage Proposed syntax for adding a channel : guix channel add channel-name URI branch Examples : guix channel add guix-stable git://git.sv.gnu.org/guix.git stable : guix channel add guix-master git://git.sv.gnu.org/guix.git master : guix channel add ruby-1.8.7 git:URI/my-ruby-repo.git ruby-1.8.7 : guix channel add genenetwork-development git:URI/genenetwork-staging.git development : guix channel add genenetwork-staging git:URI/genenetwork-staging.git staging To keep things simple I propose a channel simply reflects a fixed version of a git tree of a Guix package list. I.e., the exact *state* of the combined list of packages is what we support in a channel. The git checkout can be stored in something like : ~/.guix-channels/ruby-1.8.7/... There will only be one directory for one channel. Channels are not shared between users so they can go somewhere in $HOME. To get to a certain state, or update a channel, we should allow for tree updating based on a git SHA value, a tag or just the HEAD. Many channels will go by HEAD, but it is unwanted because a tree may be in an unstable and even unusable state. Especially for Guix itself we should not be using HEAD - the current default with a 'guix pull'. Ideally 'guix pull' should be tried by core developers before giving it to everyone. I think we can figure out the last tagged release and have that as a default rather than HEAD. When someone wants HEAD it should be explicit. So to get the actual HEAD the syntax can be: : guix channel update guix-master origin/HEAD To get to a specific SHA value on origin : guix channel update guix-master 9cf265449f88f89c900e510fe29baba26f30159b To get a named tagged release : guix channel update guix-master v0.12.0-8 To get the latest tagged release (default behaviour) : guix channel update guix-master To switch channels for use : guix channel set guix-master When a channel gets updated I think we ought to check it out fully from scratch by default. Reason being that we can't deal with conflicts and maybe changed upstream trees - git also allows rewriting history and that can be nasty. If some person feels confident, we could still add a switch : guix channel update guix-master --pull or : guix channel update guix-master --checkout v0.12.0-8 which would do what you expect it to do. Obviously all this behaviour reflects the way git behaves. I think it is fine because if we start adding other transports (say https, mercurial or darcs) it would be clear from the channel URI what it was and we can change the commands. ** Channel metadata The channel should describe its purpose and set certain prerequisites, such as a description and the version of guile it requires. This can be added as a channel-meta.scm file in the root of the source tree in git. It could also point to one or more 'guix publish' servers. ** Compiling the package tree So far, we have only discussed the package tree. To compile it we need guile. One thing the current 'guix pull' does is compile guile to compile the tree. This behaviour does not make use of substitute servers, takes time and is somewhat error prone. I think what we should do is reuse a guile already on the system or install it as a binary using a substitute server and then compile the packages. ** Updating guix and guix-daemon Now we come to updating guix and guix-daemon itself. I think that this functionality does not belong in channel. Not least because not all users have the privileges to restart the daemon. To update guix essentially one will add a relevant channel, update the channel to point and install guix from that package tree using 'guix package'. It can be that the currently running guix tools, for some reason, can not support a package tree. To notify that, I suggest we use that same meta data in the channel tree. The metadata can tell what version of guix and guix-daemon should be used (say >=0.11.0) and advise the user and system administrator. ** Guix pull Where channels take the role of giving state to the package tree, a new 'guix pull' could have the task of *upgrading* guix and the guix daemon to latest. As stated above the package tree should not move to ^HEAD, but instead to the latest tagged release (which can happen more often then we are doing today - say on a weekly basis). Starting from an approved Guix version 'guix pull' could build/download the guix package itself and suggest updating the daemon to latest. ** Security and trusted channels Guix has a security mechanism for its substitute servers, i.e., you need to install a key to trust a 'guix publish' server. For channels using git the model is to use git trees which is open to security concerns. To introduce the concept of trusted channels we can use the same 'guix publish' servers which can also provide the binary substitutes for a channel. In fact, I think secure channels should be the default, and we should be able to install packages using such a server, after switching to a channel, with : guix channel set genenetwork-staging : guix package -i genenetwork2 --substitute-urls=https://guix.genenetwork.org which would validate the URL of the channel (a git URI) with the substitute server, i.e., guix, by default, will only install channels that are known by the publish/substitute server. Even so, we have to allow for convenience and the fact that not everyone wants to run a 'guix publish' server. To install an insecure channel we should allow : guix channel set genenetwork-staging : guix package -i genenetwork2 --force-untrusted which bypasses the 'trusted' mechanism of asking permission from the substitute server. To take the trusted model further, the 'guix publish' server could also serve SHA values of the channel git trees. I.e., if a user requests : guix channel update guix-master v0.12.0-8 the server could say that tagged release v0.12.0-8 can be checked out and the SHA values should be such and such. This would give full security for guix-master checkouts. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Towards a new 'guix pull' Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 24 Feb 2017 18:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Pjotr Prins Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.14879604692785 (code B ref 22629); Fri, 24 Feb 2017 18:22:01 +0000 Received: (at 22629) by debbugs.gnu.org; 24 Feb 2017 18:21:09 +0000 Received: from localhost ([127.0.0.1]:54914 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1chKUO-0000ir-Rk for submit@debbugs.gnu.org; Fri, 24 Feb 2017 13:21:09 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:51831) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1chKUM-0000ii-Fx for 22629@debbugs.gnu.org; Fri, 24 Feb 2017 13:21:07 -0500 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id E9A5E209F0; Fri, 24 Feb 2017 13:21:05 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Fri, 24 Feb 2017 13:21:05 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=famulari.name; h= cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=JxtANXfZhufpyyrcFUaAertGhWM=; b=L6Cnhk uOBrqCQcGud7MQNZvoKUoiLI4AbPvTU0CJXHCcxUp8CyLRMI9ELXR0fI0aIaBGGJ P6QB20hyaWQW7Y3xc5sd6AxjC95oZw4jI8QKS7Xkg1L7uxbfKVX4OagQomEJDL/a NvzPpUU/j1wP8keYEoSGpKAPcpjFAg7V9tkUg= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=smtpout; bh=JxtANXfZhufpyy rcFUaAertGhWM=; b=Zskrjvg2xOJPGp4BlihUdLKw82wJa+XQJhtw/kSE857hAC +GhiRdbvDESjWFj7Jj4bSwSdJsJPmrfSqDrSSXhI5AvIw8FdjfbERAsvllMbNxel aRHcO6qXkRB1iQTE9x638ST3vmijql1sf4XR78GjLVllwlnc3yGdzlRnU9JXM= X-ME-Sender: X-Sasl-enc: QVUNYVk4dUcU+ZfBtAxp98Uy+yoMg60iPHE8i7vey4yl 1487960465 Received: from localhost (c-73-188-17-148.hsd1.pa.comcast.net [73.188.17.148]) by mail.messagingengine.com (Postfix) with ESMTPA id A0DEB24660; Fri, 24 Feb 2017 13:21:05 -0500 (EST) Date: Fri, 24 Feb 2017 13:21:01 -0500 From: Leo Famulari Message-ID: <20170224182101.GA9615@jasmine> References: <87vb5vsffd.fsf@gnu.org> <20170222075706.GA21158@mail.thebird.nl> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="T4sUOijqQbZv57TR" Content-Disposition: inline In-Reply-To: <20170222075706.GA21158@mail.thebird.nl> User-Agent: Mutt/1.7.2 (2016-11-26) X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --T4sUOijqQbZv57TR Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Feb 22, 2017 at 07:57:06AM +0000, Pjotr Prins wrote: > To keep things simple I propose a channel simply reflects a fixed > version of a git tree of a Guix package list. I.e., the exact *state* > of the combined list of packages is what we support in a channel. The > git checkout can be stored in something like You shared *a lot* of ideas following this paragraph, but I think that =66rom here we can start thinking about how to incrementally evolve from the current `guix pull` to something better. Currently, you can `guix pull` any commit of GNU Guix with `guix pull --url` [0]. This feature depends on the Git server implementation's HTTP interface, but I bet it's a common feature, and it can already be used with other Git repositories besides our Savannah repo. This achieves the goal of channels, "easy specialization of deployments". Well, "easy" is a matter of degrees ;) I was thinking we could start by keeping `guix pull` the same from the user's point of view, but change it to support Git in addition to downloading a tarball. We already have code for this in (guix git-download) which uses the Git command-line tool. [1] The next step would be to keep some metadata about which channel the last pull came from, so that subsequent pulls would point to it. What do people think? I haven't wrapped my head around all the proposed changes. I think it will be best to keep the goal of "easy specialization of deployments" in mind and work towards it incrementally. [0] https://git.savannah.gnu.org/cgit/guix.git/commit/?id=3D8a9cffb202414b20081= 910115ba76402924bdcdd [1] In the long run, we should ditch the Git CLI and use something like guile-git: https://gitlab.com/amirouche/guile-git --T4sUOijqQbZv57TR Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAliweYkACgkQJkb6MLrK fwjrOBAA0BdkuDnJ0aD/9bHmV2F/w2jcLyjFQvJfne2c9D10SOndcvGMUpbyPFCy TVYmlbTjwwS+U48721VtgQXbpWdKdddwk6g7akvZMitjcZ/SANaPOKOCg94Ez3f3 W8ap8dJRXMgWaF6sYNtD5dk0xA4B1PUEB3fySuO/grEtGCcfnP1L5e/SaRss2BGV sqgxwvMSvY3lwWlVXqGwx/3zS2scn8J/5GubcV0Yu2/SaUcEKuVgd92y1W/iJj9U MFRqjA0bHp+2pVLOD0QNFbTV+B9ChAa+Xo29AkRo43eCcL4x61S4R9n09c4jZPQv cx2PizHxld5MKFADYAhba9x1PThkdhVPk687gHiLfENSd5eUdU5P/5eJH4mxMrL0 g3VOK2YOb85VdsPJmdtLO3hvXG2DqBKs8Gob7HzV0fekKnWgvDeiJaAFts1PR6ga GGYdyln/TmqHIqMgdQuulrlCrmYk0uvzz5UW8WxQ0W7j6EfjlppnP0kJtNGYynI0 enPB2OcMohuYnHEXmB9p4QxtgoP3CL66VvPDTFyAgtekUBqA1dcicQbbJ86sIwTi 0FiMEch+DVGH5z98H9CBT8DzFa4b/FSomSZ1jGA8uNp5zHuGHe+R8JQch1j2M+nS 5UvYVLnKWGozxRxdvu7dYYx7L6uPuhnF0mL6xkd6fabMYj9kjRc= =TqJj -----END PGP SIGNATURE----- --T4sUOijqQbZv57TR-- From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 20 17:23:40 2017 Received: (at control) by debbugs.gnu.org; 20 Sep 2017 21:23:40 +0000 Received: from localhost ([127.0.0.1]:50619 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dumT6-0004pv-3C for submit@debbugs.gnu.org; Wed, 20 Sep 2017 17:23:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:38228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dumT4-0004pW-TQ for control@debbugs.gnu.org; Wed, 20 Sep 2017 17:23:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dumSz-0000Y0-6X for control@debbugs.gnu.org; Wed, 20 Sep 2017 17:23:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50408) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dumSz-0000Xg-2G for control@debbugs.gnu.org; Wed, 20 Sep 2017 17:23:33 -0400 Received: from [2a01:e0a:1d:7270:6a6c:dc17:fc02:cfda] (port=43634 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dumSy-0003k3-8T for control@debbugs.gnu.org; Wed, 20 Sep 2017 17:23:32 -0400 Date: Wed, 20 Sep 2017 23:23:30 +0200 Message-Id: <87tvzxqd2l.fsf@gnu.org> To: control@debbugs.gnu.org From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: control message for bug #28471 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) merge 28471 22629 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 20 17:25:40 2017 Received: (at control) by debbugs.gnu.org; 20 Sep 2017 21:25:40 +0000 Received: from localhost ([127.0.0.1]:50624 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dumV0-0004tZ-GA for submit@debbugs.gnu.org; Wed, 20 Sep 2017 17:25:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39421) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dumUy-0004tK-Do for control@debbugs.gnu.org; Wed, 20 Sep 2017 17:25:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dumUs-0002iW-Mu for control@debbugs.gnu.org; Wed, 20 Sep 2017 17:25:31 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50443) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dumUs-0002iR-JJ for control@debbugs.gnu.org; Wed, 20 Sep 2017 17:25:30 -0400 Received: from [2a01:e0a:1d:7270:6a6c:dc17:fc02:cfda] (port=43652 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dumUs-0003rm-2y for control@debbugs.gnu.org; Wed, 20 Sep 2017 17:25:30 -0400 Date: Wed, 20 Sep 2017 23:25:28 +0200 Message-Id: <87shfhqczb.fsf@gnu.org> To: control@debbugs.gnu.org From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: control message for bug #22629 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) severity 22629 important From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Towards a new 'guix pull' Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 08 Apr 2018 16:49:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ricardo Wurmus Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15232061388159 (code B ref 22629); Sun, 08 Apr 2018 16:49:01 +0000 Received: (at 22629) by debbugs.gnu.org; 8 Apr 2018 16:48:58 +0000 Received: from localhost ([127.0.0.1]:42777 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f5DUv-00027X-NN for submit@debbugs.gnu.org; Sun, 08 Apr 2018 12:48:57 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:54042) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f5DUt-00027P-Fq for 22629@debbugs.gnu.org; Sun, 08 Apr 2018 12:48:55 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id C1E8E120AB; Sun, 8 Apr 2018 18:48:54 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JQCLv9xY3q8V; Sun, 8 Apr 2018 18:48:53 +0200 (CEST) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 8322511D01; Sun, 8 Apr 2018 18:48:53 +0200 (CEST) From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> Date: Sun, 08 Apr 2018 18:48:52 +0200 In-Reply-To: <87vb5vsffd.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 11 Feb 2016 11:35:18 +0100") Message-ID: <87fu45ve2z.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) Hello Guix! ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > Here=E2=80=99s a series of improvements that I think we should make in = =E2=80=98guix > pull=E2=80=99: > > =E2=80=A2 Use Git instead of downloading a whole snapshot every time. = The Git > checkout would be kept in ~/.cache/guix/pull/checkouts, say. That was done a while back. :-) > =E2=80=A2 Build & install not only Scheme code, but also locales and th= e Info > manual. =E2=80=A6 and also the C++ bits. With the work done in , we can build all of Guix and its dependencies when doing =E2=80=98guix pull=E2=80=99, which bri= ngs us closer to what the =E2=80=98guix=E2=80=99 package provides. Thus we can at least partly address the issue described in , i.e., have =E2=80=98guix pull=E2=80=99 install not just a bunch of .go files but also = guile-git, guile-ssh, gnutls, and Guile itself. To do that, we need a =E2=80=9Cparadigm shift=E2=80=9D (sounds cute, no? :-= )). Currently, =E2=80=98scripts/guix=E2=80=99 fiddles with its %load-path and a= dds ~/.config/guix/latest if it exists. The new =E2=80=98guix pull=E2=80=99 sh= ould provide not just .go files but also a =E2=80=98guix=E2=80=99 command referring to t= he latest Guile, Guile-Git, etc. To achieve this, I think the new approach would be to have: export PATH=3D$HOME/.config/guix/current/bin:$PATH export INFOPATH=3D$HOME/.config/guix/current/share/info:$INFOPATH =E2=80=A6 =E2=80=98guix pull=E2=80=99 would update ~/.config/guix/current, which woul= d contain the =E2=80=98guix=E2=80=99 command, all the .go files, locales, the Info manual= , and ideally =E2=80=98guix-daemon=E2=80=99 as well. ~/.config/guix/current could be a profile, or something that resembles a profile. For a while =E2=80=98guix pull=E2=80=99 will have to keep updating ~/.confi= g/guix/latest as well, for users running an old =E2=80=98guix=E2=80=99 command. Thoughts? Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Towards a new 'guix pull' Resent-From: Nils Gillmann Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 08 Apr 2018 17:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152320951720670 (code B ref 22629); Sun, 08 Apr 2018 17:46:02 +0000 Received: (at 22629) by debbugs.gnu.org; 8 Apr 2018 17:45:17 +0000 Received: from localhost ([127.0.0.1]:42807 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f5ENQ-0005NJ-7R for submit@debbugs.gnu.org; Sun, 08 Apr 2018 13:45:17 -0400 Received: from static.195.114.201.195.clients.your-server.de ([195.201.114.195]:50178 helo=conspiracy.of.n0.is) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f5ENO-0005NA-5b for 22629@debbugs.gnu.org; Sun, 08 Apr 2018 13:45:14 -0400 Received: by conspiracy.of.n0.is (OpenSMTPD) with ESMTPSA id ab00489c (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Sun, 8 Apr 2018 17:45:12 +0000 (UTC) Date: Sun, 8 Apr 2018 17:45:33 +0000 From: Nils Gillmann Message-ID: <20180408174533.a5xlhofmkwwpklbj@abyayala> References: <87vb5vsffd.fsf@gnu.org> <87fu45ve2z.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87fu45ve2z.fsf@gnu.org> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Ludovic Courtès transcribed 2.0K bytes: > Hello Guix! > > ludo@gnu.org (Ludovic Courtès) skribis: > > > Here’s a series of improvements that I think we should make in ‘guix > > pull’: > > > > • Use Git instead of downloading a whole snapshot every time. The Git > > checkout would be kept in ~/.cache/guix/pull/checkouts, say. > > That was done a while back. :-) > > > • Build & install not only Scheme code, but also locales and the Info > > manual. > > … and also the C++ bits. > > With the work done in , we can build all of > Guix and its dependencies when doing ‘guix pull’, which brings us closer > to what the ‘guix’ package provides. > > Thus we can at least partly address the issue described in > , i.e., have > ‘guix pull’ install not just a bunch of .go files but also guile-git, > guile-ssh, gnutls, and Guile itself. > > To do that, we need a “paradigm shift” (sounds cute, no? :-)). > Currently, ‘scripts/guix’ fiddles with its %load-path and adds > ~/.config/guix/latest if it exists. The new ‘guix pull’ should provide > not just .go files but also a ‘guix’ command referring to the latest > Guile, Guile-Git, etc. > > To achieve this, I think the new approach would be to have: > > export PATH=$HOME/.config/guix/current/bin:$PATH > export INFOPATH=$HOME/.config/guix/current/share/info:$INFOPATH > … > > ‘guix pull’ would update ~/.config/guix/current, which would contain the > ‘guix’ command, all the .go files, locales, the Info manual, and ideally > ‘guix-daemon’ as well. > > ~/.config/guix/current could be a profile, or something that resembles a > profile. > > For a while ‘guix pull’ will have to keep updating ~/.config/guix/latest > as well, for users running an old ‘guix’ command. > > Thoughts? First thought: Woo! Good progress! On your propossed steps, sounds good to me. > Ludo’. > > > From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 31 May 2018 14:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152777784223606 (code B ref 22629); Thu, 31 May 2018 14:45:01 +0000 Received: (at 22629) by debbugs.gnu.org; 31 May 2018 14:44:02 +0000 Received: from localhost ([127.0.0.1]:56108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo5-00068H-HX for submit@debbugs.gnu.org; Thu, 31 May 2018 10:44:02 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56341) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo4-00067u-Ge for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:44:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOOny-0003oI-7I for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:43:55 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49362) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOOns-0003kH-AB; Thu, 31 May 2018 10:43:48 -0400 Received: from [193.50.110.154] (port=57418 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fOOnr-0003x0-Sv; Thu, 31 May 2018 10:43:48 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 31 May 2018 16:43:33 +0200 Message-Id: <20180531144337.16298-1-ludo@gnu.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <87fu45ve2z.fsf@gnu.org> References: <87fu45ve2z.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello Guix! Here is the “new” ‘guix pull’ that we discussed notably in this thread: https://bugs.gnu.org/22629 The major difference is that instead of just building a bunch of modules and putting them under ~/.config/guix/latest, it now produces a standalone package (with bin/guix, share/info/guix.info, etc.) and puts it in a profile under ~/.config/guix/current. Quoth the manual: The result of running ‘guix pull’ is a “profile” available under ‘~/.config/guix/current’ containing the latest Guix. Thus, make sure to add it to the beginning of your search path so that you use the latest version, and similarly for the Info manual (*note Documentation::): export PATH="$HOME/.config/guix/current/bin:$PATH" export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH" This ‘~/.config/guix/current’ profile works like any other profile created by ‘guix package’ (*note Invoking guix package::). That is, you can list generations, roll back to the previous generation—i.e., the previous Guix—and so on: $ guix package -p ~/.config/guix/current -l Generation 1 May 25 2018 10:06:41 guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4 Generation 2 May 27 2018 19:07:47 + guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f - guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4 Generation 3 May 30 2018 16:11:39 (current) + guix a076f19 out /gnu/store/332czkicwwg6lc3x4aqbw5q2mq12s7fj-guix-a076f1990 - guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f $ guix package -p ~/.config/guix/current --roll-back switched from generation 3 to 2 There are two requirements it fulfills in terms of compatibility: 1. The modified ‘build-aux/build-self.scm’ still does the right thing when evaluated by an “old” Guix—that is, it produces a bunch of modules for use in ~/.config/guix/latest as before. 2. The modified ‘guix pull’ produces ~/.config/guix/current even when invoked on a commit of a past Guix. That is, it automatically produces a ‘guix’ command using the modules returned by the old ‘build-self.scm’. There are various improvements we can make from there. For example, using “manifest entry properties” as proposed in , we can attach meta-data (commit ID, repo URL, etc.) in each manifest entry that ‘guix pull’ populates; then we can arrange for ‘guix pull --list-generations’ (say) to display that information. We could add ‘guix pull’ options for convenient: ‘--roll-back’, ‘--profile’, etc. Going forward, additional “channels” could be presented as entries in the ~/.config/guix/current manifest. Caveats: 1. The ~/.config/guix/current profile really lives there. That is, unlike ~/.guix-profile, it’s not in /var/guix/profiles/per-user. That could be an issue for cluster setups where home directories are not scanned by the Guix GC. Cluster folks, please tell me! 2. The translated Info manual is not built. Julien: could you turn the big ‘xref_command’ in a script or something that we can more easily reuse in (guix self)? 3. C++ code is not built. I wonder which will come first: getting rid of the C++ code, or building it? :-) Feedback welcome! Ludo’. Ludovic Courtès (4): self: Produce a complete package with the 'guix' command. pull: Install the new Guix in a profile. self: Compute and use locale data. self: Build the Info manual. build-aux/build-self.scm | 19 +- build-aux/compile-as-derivation.scm | 2 +- doc/guix.texi | 38 +++- guix/scripts/pull.scm | 79 +++++--- guix/self.scm | 283 ++++++++++++++++++++++++---- scripts/guix.in | 14 +- 6 files changed, 351 insertions(+), 84 deletions(-) -- 2.17.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 4/4] self: Build the Info manual. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 31 May 2018 14:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152777784423637 (code B ref 22629); Thu, 31 May 2018 14:45:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 May 2018 14:44:04 +0000 Received: from localhost ([127.0.0.1]:56110 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo8-000699-CN for submit@debbugs.gnu.org; Thu, 31 May 2018 10:44:04 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56350) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo4-00067v-Np for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:44:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOOny-0003oj-Gx for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:43:55 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49368) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOOnv-0003md-DS; Thu, 31 May 2018 10:43:51 -0400 Received: from [193.50.110.154] (port=57418 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fOOnu-0003x0-Tv; Thu, 31 May 2018 10:43:51 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 31 May 2018 16:43:37 +0200 Message-Id: <20180531144337.16298-5-ludo@gnu.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/self.scm (info-manual): New procedure. (whole-package): Add #:info and honor it. (compiled-guix): Pass #:info. --- guix/self.scm | 88 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 3 deletions(-) diff --git a/guix/self.scm b/guix/self.scm index 92e69ffd5..8ed1e1073 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -230,6 +230,81 @@ DOMAIN, a gettext domain." (computed-file (string-append "guix-locale-" domain) build)) +(define (info-manual source) + "Return the Info manual built from SOURCE." + (define texinfo + (module-ref (resolve-interface '(gnu packages texinfo)) + 'texinfo)) + + (define graphviz + (module-ref (resolve-interface '(gnu packages graphviz)) + 'graphviz)) + + (define build + ;; TODO: Don't depend on all of SOURCE to avoid rebuilds. + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (mkdir #$output) + + ;; Create 'version.texi'. + ;; XXX: Can we use a more meaningful version string yet one that + ;; doesn't change at each commit? + (call-with-output-file "version.texi" + (lambda (port) + (let ((version "(Git snapshot)")) + (format port " +@set UPDATED 1 January 1970 +@set UPDATED-MONTH January 1970 +@set EDITION ~a +@set VERSION ~a\n" version version)))) + + ;; Copy configuration templates that the manual includes. + (for-each (lambda (template) + (copy-file template + (string-append + "os-config-" + (basename template ".tmpl") + ".texi"))) + (find-files #$source "\\.tmpl$")) + + ;; Build graphs. + (mkdir-p (string-append #$output "/images")) + (for-each (lambda (dot-file) + (invoke #+(file-append graphviz "/bin/dot") + "-Tpng" "-Gratio=.9" "-Gnodesep=.005" + "-Granksep=.00005" "-Nfontsize=9" + "-Nheight=.1" "-Nwidth=.1" + "-o" (string-append #$output "/images/" + (basename dot-file ".dot") + ".png") + dot-file)) + (find-files (string-append #$source "/doc/images") + "\\.dot$")) + + ;; Copy other PNGs. + (for-each (lambda (png-file) + (install-file png-file + (string-append #$output "/images"))) + (find-files (string-append #$source "/doc/images") + "\\.png$")) + + ;; Finally build the manual. Copy it the Texinfo files to $PWD and + ;; add a symlink to the 'images' directory so that 'makeinfo' can + ;; see those images and produce image references in the Info output. + (copy-recursively (string-append #$source "/doc") "." + #:log (%make-void-port "w")) + (delete-file-recursively "images") + (symlink (string-append #$output "/images") "images") + (invoke #+(file-append texinfo "/bin/makeinfo") + "guix.texi" + "-I" (string-append #$source "/doc") + "-I" "." + "-o" (string-append #$output "/guix.info"))))) + + (computed-file "guix-manual" build)) + (define* (guix-command modules #:key source (dependencies '()) (guile-version (effective-version))) "Return the 'guix' command such that it adds MODULES and DEPENDENCIES in its @@ -275,12 +350,13 @@ load path." (define* (whole-package name modules dependencies #:key (guile-version (effective-version)) + info (command (guix-command modules #:dependencies dependencies #:guile-version guile-version))) "Return the whole Guix package NAME that uses MODULES, a derivation of all the modules, and DEPENDENCIES, a list of packages depended on. COMMAND is the -'guix' program to use." +'guix' program to use; INFO is the Info manual." ;; TODO: Move compiled modules to 'lib/guile' instead of 'share/guile'. (computed-file name (with-imported-modules '((guix build utils)) @@ -292,9 +368,14 @@ the modules, and DEPENDENCIES, a list of packages depended on. COMMAND is the (let ((modules (string-append #$output "/share/guile/site/" - (effective-version)))) + (effective-version))) + (info #$info)) (mkdir-p (dirname modules)) - (symlink #$modules modules)))))) + (symlink #$modules modules) + (when info + (symlink #$info + (string-append #$output + "/share/info")))))))) (define* (compiled-guix source #:key (version %guix-version) (pull-version 1) @@ -477,6 +558,7 @@ the modules, and DEPENDENCIES, a list of packages depended on. COMMAND is the #:guile-version guile-version))) (whole-package name built-modules dependencies #:command command + #:info (info-manual source) #:guile-version guile-version))) ((= 0 pull-version) ;; Legacy 'guix pull': just return the compiled modules. -- 2.17.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 2/4] pull: Install the new Guix in a profile. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 31 May 2018 14:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152777784523645 (code B ref 22629); Thu, 31 May 2018 14:45:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 May 2018 14:44:05 +0000 Received: from localhost ([127.0.0.1]:56112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo8-00069H-MO for submit@debbugs.gnu.org; Thu, 31 May 2018 10:44:05 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56355) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo5-00067x-0z for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:44:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOOny-0003oX-G3 for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:43:55 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49365) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOOnt-0003lR-SH; Thu, 31 May 2018 10:43:49 -0400 Received: from [193.50.110.154] (port=57418 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fOOnt-0003x0-FH; Thu, 31 May 2018 10:43:49 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 31 May 2018 16:43:35 +0200 Message-Id: <20180531144337.16298-3-ludo@gnu.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/scripts/pull.scm (%pull-version): New variable. (build-from-source): Pass #:pull-version to BUILD. (whole-package-for-legacy, derivation->manifest-entry): New procedure. (build-and-install): Rewrite in terms of 'build-and-use-profile'. * scripts/guix.in (augment-load-paths!): Remove use of ~/.config/guix/latest. * doc/guix.texi (Invoking guix pull): Document it. --- doc/guix.texi | 38 ++++++++++++++++++--- guix/scripts/pull.scm | 79 +++++++++++++++++++++++++++++-------------- scripts/guix.in | 14 +------- 3 files changed, 87 insertions(+), 44 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 09749b15e..92e322787 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2742,11 +2742,39 @@ Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who run @command{guix pull}. For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice -versa@footnote{Under the hood, @command{guix pull} updates the -@file{~/.config/guix/latest} symbolic link to point to the latest Guix, -and the @command{guix} command loads code from there. Currently, the -only way to roll back an invocation of @command{guix pull} is to -manually update this symlink to point to the previous Guix.}. +versa. + +The result of running @command{guix pull} is a @dfn{profile} available +under @file{~/.config/guix/current} containing the latest Guix. Thus, +make sure to add it to the beginning of your search path so that you use +the latest version, and similarly for the Info manual +(@pxref{Documentation}): + +@example +export PATH="$HOME/.config/guix/current/bin:$PATH" +export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH" +@end example + +This @code{~/.config/guix/current} profile works like any other profile +created by @command{guix package} (@pxref{Invoking guix package}). That +is, you can list generations, roll back to the previous +generation---i.e., the previous Guix---and so on: + +@example +$ guix package -p ~/.config/guix/current -l +Generation 1 May 25 2018 10:06:41 + guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4 + +Generation 2 May 27 2018 19:07:47 + + guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f + - guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4 + +Generation 3 May 30 2018 16:11:39 (current) + + guix a076f19 out /gnu/store/332czkicwwg6lc3x4aqbw5q2mq12s7fj-guix-a076f1990 + - guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f +$ guix package -p ~/.config/guix/current --roll-back +switched from generation 3 to 2 +@end example The @command{guix pull} command is usually invoked with no arguments, but it supports the following options: diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 64c2196e0..c5ceebccb 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. @@ -25,10 +25,15 @@ #:use-module (guix config) #:use-module (guix packages) #:use-module (guix derivations) + #:use-module (guix profiles) #:use-module (guix gexp) #:use-module (guix grafts) #:use-module (guix monads) #:use-module (guix scripts build) + #:autoload (guix self) (whole-package) + #:autoload (gnu packages ssh) (guile-ssh) + #:autoload (gnu packages tls) (gnutls) + #:use-module ((guix scripts package) #:select (build-and-use-profile)) #:use-module ((guix build utils) #:select (with-directory-excursion delete-file-recursively)) #:use-module ((guix build download) @@ -158,6 +163,12 @@ Download and deploy the latest version of Guix.\n")) ;; a makefile, and, similarly, is intended to always keep this name. "build-aux/build-self.scm") +(define %pull-version + ;; This is the version of the 'guix pull' protocol. It specifies what's + ;; expected from %SELF-BUILD-FILE. The initial version ("0") was when we'd + ;; place a set of compiled Guile modules in ~/.config/guix/latest. + 1) + (define* (build-from-source source #:key verbose? commit) "Return a derivation to build Guix from SOURCE, using the self-build script @@ -170,35 +181,51 @@ contained therein. Use COMMIT as the version string." (build (primitive-load script))) ;; BUILD must be a monadic procedure of at least one argument: the source ;; tree. - (build source #:verbose? verbose? #:version commit))) + ;; + ;; Note: BUILD can return #f if it does not support %PULL-VERSION. In the + ;; future we'll fall back to a previous version of the protocol when that + ;; happens. + (build source #:verbose? verbose? #:version commit + #:pull-version %pull-version))) + +(define (whole-package-for-legacy name modules) + "Return a full-blown Guix package for MODULES, a derivation that builds Guix +modules in the old ~/.config/guix/latest style." + (whole-package name modules + + ;; In the "old style", %SELF-BUILD-FILE would simply return a + ;; derivation that builds modules. We have to infer what the + ;; dependencies of these modules were. + (list guile-json guile-git guile-bytestructures + guile-ssh gnutls))) + +(define (derivation->manifest-entry drv commit) + "Return a manifest entry for DRV, which represents Guix at COMMIT." + (mbegin %store-monad + (what-to-build (list drv)) + (built-derivations (list drv)) + (let ((out (derivation->output-path drv))) + (return (manifest-entry + (name "guix") + (version (string-take commit 7)) + (item (if (file-exists? (string-append out "/bin/guix")) + drv + (whole-package-for-legacy (string-append name "-" + version) + drv)))))))) (define* (build-and-install source config-dir #:key verbose? commit) "Build the tool from SOURCE, and install it in CONFIG-DIR." - (mlet* %store-monad ((source (build-from-source source - #:commit commit - #:verbose? verbose?)) - (source-dir -> (derivation->output-path source)) - (to-do? (what-to-build (list source))) - (built? (built-derivations (list source)))) - ;; Always update the 'latest' symlink, regardless of whether SOURCE was - ;; already built or not. - (if built? - (mlet* %store-monad - ((latest -> (string-append config-dir "/latest")) - (done (indirect-root-added latest))) - (if (and (file-exists? latest) - (string=? (readlink latest) source-dir)) - (begin - (display (G_ "Guix already up to date\n")) - (return #t)) - (begin - (switch-symlinks latest source-dir) - (format #t - (G_ "updated ~a successfully deployed under `~a'~%") - %guix-package-name latest) - (return #t)))) - (leave (G_ "failed to update Guix, check the build log~%"))))) + (define update-profile + (store-lift build-and-use-profile)) + + (mlet* %store-monad ((drv (build-from-source source + #:commit commit + #:verbose? verbose?)) + (entry (derivation->manifest-entry drv commit))) + (update-profile (string-append config-dir "/current") + (manifest (list entry))))) (define (honor-lets-encrypt-certificates! store) "Tell Guile-Git to use the Let's Encrypt certificates." diff --git a/scripts/guix.in b/scripts/guix.in index d1c12eae5..0a3ab1f64 100644 --- a/scripts/guix.in +++ b/scripts/guix.in @@ -23,25 +23,13 @@ ;; IMPORTANT: We must avoid loading any modules from Guix here, ;; because we need to adjust the guile load paths first. ;; It's okay to import modules from core Guile though. -(use-modules (srfi srfi-26)) (define-syntax-rule (push! elt v) (set! v (cons elt v))) (define (augment-load-paths!) ;; Add installed modules to load-path. (push! "@guilemoduledir@" %load-path) - (push! "@guileobjectdir@" %load-compiled-path) - - ;; Add modules fetched by 'guix pull' to load-path. - (let ((updates-dir (and=> (or (getenv "XDG_CONFIG_HOME") - (and=> (getenv "HOME") - (cut string-append <> "/.config"))) - (cut string-append <> "/guix/latest")))) - (when (and=> updates-dir file-exists?) - ;; XXX: Currently 'guix pull' puts both .scm and .go files in - ;; UPDATES-DIR. - (push! updates-dir %load-path) - (push! updates-dir %load-compiled-path)))) + (push! "@guileobjectdir@" %load-compiled-path)) (define* (main #:optional (args (command-line))) (unless (getenv "GUIX_UNINSTALLED") -- 2.17.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 3/4] self: Compute and use locale data. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 31 May 2018 14:45:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152777784723656 (code B ref 22629); Thu, 31 May 2018 14:45:03 +0000 Received: (at 22629) by debbugs.gnu.org; 31 May 2018 14:44:07 +0000 Received: from localhost ([127.0.0.1]:56114 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo9-00069K-4C for submit@debbugs.gnu.org; Thu, 31 May 2018 10:44:05 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo4-00067w-VZ for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:44:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOOny-0003oc-GH for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:43:55 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49367) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOOnu-0003m9-Ii; Thu, 31 May 2018 10:43:50 -0400 Received: from [193.50.110.154] (port=57418 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fOOnu-0003x0-6n; Thu, 31 May 2018 10:43:50 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 31 May 2018 16:43:36 +0200 Message-Id: <20180531144337.16298-4-ludo@gnu.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/self.scm (locale-data): New procedure. (guix-command): Add SOURCE parameter. Call 'locale-data' when SOURCE is true and use it in staged 'bindtextdomain' calls. (whole-package): Add #:command and honor it. (compiled-guix): Pass #:command to 'whole-package'. --- guix/self.scm | 101 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 77 insertions(+), 24 deletions(-) diff --git a/guix/self.scm b/guix/self.scm index f0641c342..92e69ffd5 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -190,7 +190,47 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (file-name->module-name (string-drop file prefix))) (scheme-files (string-append directory "/" sub-directory))))) -(define* (guix-command modules #:key (dependencies '()) +(define* (locale-data source domain + #:optional (sub-directory domain)) + "Return the locale data from 'po/SUB-DIRECTORY' in SOURCE, corresponding to +DOMAIN, a gettext domain." + (define gettext + (module-ref (resolve-interface '(gnu packages gettext)) + 'gettext-minimal)) + + (define build + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils) + (srfi srfi-26) + (ice-9 match) (ice-9 ftw)) + + (define po-directory + (string-append #$source "/po/" #$sub-directory)) + + (define (compile language) + (let ((gmo (string-append #$output "/" language "/LC_MESSAGES/" + #$domain ".mo"))) + (mkdir-p (dirname gmo)) + (invoke #+(file-append gettext "/bin/msgfmt") + "-c" "--statistics" "--verbose" + "-o" gmo + (string-append po-directory "/" language ".po")))) + + (define (linguas) + ;; Return the list of languages. Note: don't read 'LINGUAS' + ;; because it contains things like 'en@boldquot' that do not have + ;; a corresponding .po file. + (map (cut basename <> ".po") + (scandir po-directory + (cut string-suffix? ".po" <>)))) + + (for-each compile (linguas))))) + + (computed-file (string-append "guix-locale-" domain) + build)) + +(define* (guix-command modules #:key source (dependencies '()) (guile-version (effective-version))) "Return the 'guix' command such that it adds MODULES and DEPENDENCIES in its load path." @@ -218,35 +258,43 @@ load path." (let ((guix-main (module-ref (resolve-interface '(guix ui)) 'guix-main))) - ;; TODO: Compute locale data. - ;; (bindtextdomain "guix" "@localedir@") - ;; (bindtextdomain "guix-packages" "@localedir@") + #$(if source + #~(begin + (bindtextdomain "guix" + #$(locale-data source "guix")) + (bindtextdomain "guix-packages" + #$(locale-data source + "guix-packages" + "packages"))) + #t) ;; XXX: It would be more convenient to change it to: ;; (exit (apply guix-main (command-line))) (apply guix-main (command-line)))))) (define* (whole-package name modules dependencies - #:key (guile-version (effective-version))) + #:key + (guile-version (effective-version)) + (command (guix-command modules + #:dependencies dependencies + #:guile-version guile-version))) "Return the whole Guix package NAME that uses MODULES, a derivation of all -the modules, and DEPENDENCIES, a list of packages depended on." - (let ((command (guix-command modules - #:dependencies dependencies - #:guile-version guile-version))) - ;; TODO: Move compiled modules to 'lib/guile' instead of 'share/guile'. - (computed-file name - (with-imported-modules '((guix build utils)) - #~(begin - (use-modules (guix build utils)) - (mkdir-p (string-append #$output "/bin")) - (symlink #$command - (string-append #$output "/bin/guix")) +the modules, and DEPENDENCIES, a list of packages depended on. COMMAND is the +'guix' program to use." + ;; TODO: Move compiled modules to 'lib/guile' instead of 'share/guile'. + (computed-file name + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir-p (string-append #$output "/bin")) + (symlink #$command + (string-append #$output "/bin/guix")) - (let ((modules (string-append #$output - "/share/guile/site/" - (effective-version)))) - (mkdir-p (dirname modules)) - (symlink #$modules modules))))))) + (let ((modules (string-append #$output + "/share/guile/site/" + (effective-version)))) + (mkdir-p (dirname modules)) + (symlink #$modules modules)))))) (define* (compiled-guix source #:key (version %guix-version) (pull-version 1) @@ -423,8 +471,13 @@ the modules, and DEPENDENCIES, a list of packages depended on." ;; Version 1 is when we return the full package. (cond ((= 1 pull-version) ;; The whole package, with a standard file hierarchy. - (whole-package name built-modules dependencies - #:guile-version guile-version)) + (let ((command (guix-command built-modules + #:source source + #:dependencies dependencies + #:guile-version guile-version))) + (whole-package name built-modules dependencies + #:command command + #:guile-version guile-version))) ((= 0 pull-version) ;; Legacy 'guix pull': just return the compiled modules. built-modules) -- 2.17.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 1/4] self: Produce a complete package with the 'guix' command. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 31 May 2018 14:45:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152777784823663 (code B ref 22629); Thu, 31 May 2018 14:45:03 +0000 Received: (at 22629) by debbugs.gnu.org; 31 May 2018 14:44:08 +0000 Received: from localhost ([127.0.0.1]:56116 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOoB-00069V-Jr for submit@debbugs.gnu.org; Thu, 31 May 2018 10:44:08 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOo5-00067y-3N for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:44:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOOny-0003oS-Ay for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:43:56 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49363) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOOnt-0003kn-4Y; Thu, 31 May 2018 10:43:49 -0400 Received: from [193.50.110.154] (port=57418 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fOOns-0003x0-LJ; Thu, 31 May 2018 10:43:49 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 31 May 2018 16:43:34 +0200 Message-Id: <20180531144337.16298-2-ludo@gnu.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/self.scm (guix-command): New procedure. (compiled-guix): Add #:pull-version parameter. [command, package]: New variables. Honor PULL-VERSION. (guix-derivation): Add #:pull-version and pass it to 'compiled-guix'. * build-aux/build-self.scm (build-program): Add #:pull-version parameter. Pass it to 'guix-derivation'. (build): Add #:pull-version and pass it to 'build-program'. * build-aux/compile-as-derivation.scm: Pass #:pull-version to BUILD. --- build-aux/build-self.scm | 19 +++- build-aux/compile-as-derivation.scm | 2 +- guix/self.scm | 148 +++++++++++++++++++++------- 3 files changed, 129 insertions(+), 40 deletions(-) diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index bccb7a959..5898b6515 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -184,7 +184,8 @@ person's version identifier." (date->string (current-date 0) "~Y~m~d.~H")) (define* (build-program source version - #:optional (guile-version (effective-version))) + #:optional (guile-version (effective-version)) + #:key (pull-version 0)) "Return a program that computes the derivation to build Guix from SOURCE." (define select? ;; Select every module but (guix config) and non-Guix modules. @@ -253,11 +254,14 @@ person's version identifier." (spin system))) (display - (derivation-file-name + (and=> (run-with-store store (guix-derivation #$source #$version - #$guile-version) - #:system system))))))) + #$guile-version + #:pull-version + #$pull-version) + #:system system) + derivation-file-name)))))) #:module-path (list source)))) ;; The procedure below is our return value. @@ -266,13 +270,15 @@ person's version identifier." (guile-version (match ((@ (guile) version)) ("2.2.2" "2.2.2") (_ (effective-version)))) + (pull-version 0) #:allow-other-keys #:rest rest) "Return a derivation that unpacks SOURCE into STORE and compiles Scheme files." ;; Build the build program and then use it as a trampoline to build from ;; SOURCE. - (mlet %store-monad ((build (build-program source version guile-version)) + (mlet %store-monad ((build (build-program source version guile-version + #:pull-version pull-version)) (system (if system (return system) (current-system)))) (mbegin %store-monad (show-what-to-build* (list build)) @@ -292,6 +298,9 @@ files." (return (newline (current-output-port))) ((store-lift add-temp-root) drv) (return (read-derivation-from-file drv)))) + ("#f" + ;; Unsupported PULL-VERSION. + (return #f)) ((? string? str) (error "invalid build result" (list build str)))))))) diff --git a/build-aux/compile-as-derivation.scm b/build-aux/compile-as-derivation.scm index afb134a92..2a45e71bb 100644 --- a/build-aux/compile-as-derivation.scm +++ b/build-aux/compile-as-derivation.scm @@ -43,7 +43,7 @@ (mlet* %store-monad ((source (interned-file source "guix-source" #:select? git? #:recursive? #t)) - (drv (build source))) + (drv (build source #:pull-version 1))) (mbegin %store-monad (show-what-to-build* (list drv)) (built-derivations (list drv)) diff --git a/guix/self.scm b/guix/self.scm index 4378a3dee..f0641c342 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -34,6 +34,7 @@ #:use-module (srfi srfi-9) #:use-module (ice-9 match) #:export (make-config.scm + whole-package ;for internal use in 'guix pull' compiled-guix guix-derivation reload-guix)) @@ -189,7 +190,66 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (file-name->module-name (string-drop file prefix))) (scheme-files (string-append directory "/" sub-directory))))) +(define* (guix-command modules #:key (dependencies '()) + (guile-version (effective-version))) + "Return the 'guix' command such that it adds MODULES and DEPENDENCIES in its +load path." + (program-file "guix-command" + #~(begin + (set! %load-path + (append '#$(map (lambda (package) + (file-append package + "/share/guile/site/" + guile-version)) + dependencies) + %load-path)) + + (set! %load-compiled-path + (append '#$(map (lambda (package) + (file-append package "/lib/guile/" + guile-version + "/site-ccache")) + dependencies) + %load-compiled-path)) + + (set! %load-path (cons #$modules %load-path)) + (set! %load-compiled-path + (cons #$modules %load-compiled-path)) + + (let ((guix-main (module-ref (resolve-interface '(guix ui)) + 'guix-main))) + ;; TODO: Compute locale data. + ;; (bindtextdomain "guix" "@localedir@") + ;; (bindtextdomain "guix-packages" "@localedir@") + + ;; XXX: It would be more convenient to change it to: + ;; (exit (apply guix-main (command-line))) + (apply guix-main (command-line)))))) + +(define* (whole-package name modules dependencies + #:key (guile-version (effective-version))) + "Return the whole Guix package NAME that uses MODULES, a derivation of all +the modules, and DEPENDENCIES, a list of packages depended on." + (let ((command (guix-command modules + #:dependencies dependencies + #:guile-version guile-version))) + ;; TODO: Move compiled modules to 'lib/guile' instead of 'share/guile'. + (computed-file name + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir-p (string-append #$output "/bin")) + (symlink #$command + (string-append #$output "/bin/guix")) + + (let ((modules (string-append #$output + "/share/guile/site/" + (effective-version)))) + (mkdir-p (dirname modules)) + (symlink #$modules modules))))))) + (define* (compiled-guix source #:key (version %guix-version) + (pull-version 1) (name (string-append "guix-" version)) (guile-version (effective-version)) (guile-for-build (guile-for-build guile-version)) @@ -215,7 +275,6 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." "guile-git" "guile2.0-git")) - (define dependencies (match (append-map (lambda (package) (cons (list "x" package) @@ -332,32 +391,46 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." %guix-home-page-url))) #:guile-for-build guile-for-build)) - (directory-union name - (append-map (lambda (node) - (list (node-source node) - (node-compiled node))) + (define built-modules + (directory-union (string-append name "-modules") + (append-map (lambda (node) + (list (node-source node) + (node-compiled node))) - ;; Note: *CONFIG* comes first so that it - ;; overrides the (guix config) module that - ;; comes with *CORE-MODULES*. - (list *config* - *cli-modules* - *system-modules* - *package-modules* - *core-package-modules* - *extra-modules* - *core-modules*)) + ;; Note: *CONFIG* comes first so that it + ;; overrides the (guix config) module that + ;; comes with *CORE-MODULES*. + (list *config* + *cli-modules* + *system-modules* + *package-modules* + *core-package-modules* + *extra-modules* + *core-modules*)) - ;; Silently choose the first entry upon collision so that - ;; we choose *CONFIG*. - #:resolve-collision 'first + ;; Silently choose the first entry upon collision so that + ;; we choose *CONFIG*. + #:resolve-collision 'first - ;; When we do (add-to-store "utils.scm"), "utils.scm" must - ;; be a regular file, not a symlink. Thus, arrange so that - ;; regular files appear as regular files in the final - ;; output. - #:copy? #t - #:quiet? #t)) + ;; When we do (add-to-store "utils.scm"), "utils.scm" must + ;; be a regular file, not a symlink. Thus, arrange so that + ;; regular files appear as regular files in the final + ;; output. + #:copy? #t + #:quiet? #t)) + + ;; Version 0 of 'guix pull' meant we'd just return Scheme modules. + ;; Version 1 is when we return the full package. + (cond ((= 1 pull-version) + ;; The whole package, with a standard file hierarchy. + (whole-package name built-modules dependencies + #:guile-version guile-version)) + ((= 0 pull-version) + ;; Legacy 'guix pull': just return the compiled modules. + built-modules) + (else + ;; Unsupported 'guix pull' version. + #f))) ;;; @@ -601,9 +674,12 @@ running Guile." 'guile-2.0)))) (define* (guix-derivation source version - #:optional (guile-version (effective-version))) + #:optional (guile-version (effective-version)) + #:key (pull-version 0)) "Return, as a monadic value, the derivation to build the Guix from SOURCE -for GUILE-VERSION. Use VERSION as the version string." +for GUILE-VERSION. Use VERSION as the version string. PULL-VERSION specifies +the version of the 'guix pull' protocol. Return #f if this PULL-VERSION value +is not supported." (define (shorten version) (if (and (string-every char-set:hex-digit version) (> (string-length version) 9)) @@ -615,11 +691,15 @@ for GUILE-VERSION. Use VERSION as the version string." (mbegin %store-monad (set-guile-for-build guile) - (lower-object (compiled-guix source - #:version version - #:name (string-append "guix-" - (shorten version)) - #:guile-version (match guile-version - ("2.2.2" "2.2") - (version version)) - #:guile-for-build guile)))) + (let ((guix (compiled-guix source + #:version version + #:name (string-append "guix-" + (shorten version)) + #:pull-version pull-version + #:guile-version (match guile-version + ("2.2.2" "2.2") + (version version)) + #:guile-for-build guile))) + (if guix + (lower-object guix) + (return #f))))) -- 2.17.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: "Thompson, David" Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 31 May 2018 14:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152777839324815 (code B ref 22629); Thu, 31 May 2018 14:54:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 May 2018 14:53:13 +0000 Received: from localhost ([127.0.0.1]:56140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOwz-0006SB-Hs for submit@debbugs.gnu.org; Thu, 31 May 2018 10:53:13 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:47072) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOOwy-0006Rv-Nh for 22629@debbugs.gnu.org; Thu, 31 May 2018 10:53:13 -0400 Received: by mail-wr0-f196.google.com with SMTP id v13-v6so21622792wrp.13 for <22629@debbugs.gnu.org>; Thu, 31 May 2018 07:53:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=worcester-edu.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=GqyNZKALoYwxTvw5KCmk8Qxrf2+9eVfQUfXrMMInElc=; b=sBzj00a7pzjczw5VY7TzNa5SRd7IFnW8HlIPgqAUwNVEDSwG1woEVMF/Xd3o68nIT7 jFlK75RsSpJUEHlx+yjm9q1vDH3gqDtoJlbl53RBJu58Lya5zHjcQaXYPmEKr/84Gq9F s5Szsx6UCYGh/H+ksxJkQbokJj0l4rd6SvSA+DjrBhJjK22l06KvQFlGQDkvr/t/qMf4 HoZw/CiKviRmALtYBvLgFTtMjTjaU4uOzkG8KI0Sxz468bCZx6Qrha4nFjIMRv8xKTuq 1VYllyp54MXAJJ2+uaT7VUjqteeNxxzKsKr29jNJQz02pF7Lx/dpfpNJLN8X9aJHfNMA yczQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=GqyNZKALoYwxTvw5KCmk8Qxrf2+9eVfQUfXrMMInElc=; b=e7GBfH6UxEKMhR0Q87NVVDpKc7HDJe1fwIoHXtE7pGAU1t7IDeFxxV04pyXRUKJnnO DZdP6Q5yFll+TV8jrVCyTr96/OIxPTIe5EZzA19/M4Mj9Sy+Y5iQROphNqgPUhesQnU9 FHskLiS/Hnyac9QSiQfF/KbmB/PIndXE99D6nR01uPKt/SZtvDJZe9DHsP46KYWq9ICi xSR2NWtOks7dETKHxhpdExvVvGrS18mP2kk51hpFkINAuMTuE67NyijLSyoj4NFA3ap7 ZiHvGiH0Zcyij6O79UYjGU6V0ZUZmxed0IkAAMIqNfKQXPTWh8QN0ev234UfLzvWU3U0 CJ9g== X-Gm-Message-State: ALKqPwfCMABQHE1MGBNUxXZqnLr8mNzs9bzrNxAswLB7JiXlkj7s1TdY efRlUJd/P6zw9JCBk0jAxLUebgm19NJicVUawYMRXA== X-Google-Smtp-Source: ADUXVKJiJ5758YBWAdy/Kh/F9pDG0mtP8a6VDP9tmgFYexbptx0c9tFHlIaLE1Xe6BkLueH808k1IJ58hO3Murim5Ns= X-Received: by 2002:adf:a873:: with SMTP id l106-v6mr6068850wrc.53.1527778386714; Thu, 31 May 2018 07:53:06 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a5d:4088:0:0:0:0:0 with HTTP; Thu, 31 May 2018 07:53:06 -0700 (PDT) In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> From: "Thompson, David" Date: Thu, 31 May 2018 10:53:06 -0400 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.7 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) Hey Ludo, On Thu, May 31, 2018 at 10:43 AM, Ludovic Court=C3=A8s wrote= : > Hello Guix! > > Here is the =E2=80=9Cnew=E2=80=9D =E2=80=98guix pull=E2=80=99 that we dis= cussed notably in this thread: > > https://bugs.gnu.org/22629 > > The major difference is that instead of just building a bunch of modules > and putting them under ~/.config/guix/latest, it now produces a > standalone package (with bin/guix, share/info/guix.info, etc.) and puts > it in a profile under ~/.config/guix/current. Just dropping by to say this is a really awesome improvement to the user experience! Thanks for working on it! Excited to try it out once it gets merged. - Dave From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 31 May 2018 18:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15277896172358 (code B ref 22629); Thu, 31 May 2018 18:01:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 May 2018 18:00:17 +0000 Received: from localhost ([127.0.0.1]:56264 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fORs1-0000by-Kf for submit@debbugs.gnu.org; Thu, 31 May 2018 14:00:17 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:57963) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fORrz-0000bo-Rq for 22629@debbugs.gnu.org; Thu, 31 May 2018 14:00:16 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 8007D21E3C for <22629@debbugs.gnu.org>; Thu, 31 May 2018 14:00:15 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Thu, 31 May 2018 14:00:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=+BCC1c0zxNfo64XyRtdQmvdod+zKEmJNKrNi65Bfhr0=; b=on4YUHDG vWu6jNCSNCBm/0qGfGXPlSnSaVMgqUB32ukkSXG9Qkb8ecXc1oRLQNTIgi6VFCbo zd3PzuCccXkQavlthqMqBZmnC7w/35CbjelzrRkFxwwRxUjtSRbESC/CA0pEVgA4 P46cz6ZOqp1euDNwyK2STZZie/uHKAk2tAGQEgzfZkZNqU+2RyS5ShKYAYi6HQj2 aMobSLjviHHe4wd0wxDvTBYsvBsI6TaB+gLDQEj9/h4gxfVkkTQDOMqVzGagXJrE heEYXOphUcphtTBnO5UHk1NC03WA8sdeNDAay2yTzO2cEBjL/iSpWnffc8Awzorg llPCkmpO/QI8Fg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=+BCC1c0zxNfo64XyRtdQmvdod+zKE mJNKrNi65Bfhr0=; b=hwfQxrfUCH/FM/awwl0HDDGApqvlFBXkFZv3OS7VDYbOf 5Agmiy1U83jgXYcnwK1qBk6cghjWZ5ebKo5edBqYIa+nb8V9PNvMzG4gQvOibLI6 mhAxH9/mnzspMTm5F8OtMjdfidmErOXRnIogHzK77RGHCxERBq3m7yYptDfZlRyS QTfM/bpeYnNr39Su19qsjcQYIw67dwu0N4F+zFBe/TW/gEWVSyq7c9EDvUvvKHnF 5UrcirjOGqi7haCjblWaJ7aNJ80UBB8IA724tlCFDGehNVhqPz2+dUYp4jvmJr6G 5oaU03ep+PEp1Dw4x+uXxAzWKvj57rHZEyfb7nZFw== X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Sender: Received: from kh-MacBookPro (lfbn-1-713-147.w86-246.abo.wanadoo.fr [86.246.188.147]) by mail.messagingengine.com (Postfix) with ESMTPA id D2B4010265 for <22629@debbugs.gnu.org>; Thu, 31 May 2018 14:00:14 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> Date: Thu, 31 May 2018 20:00:13 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Ludo, > The major difference is that instead of just building a bunch of modules > and putting them under ~/.config/guix/latest, it now produces a > standalone package (with bin/guix, share/info/guix.info, etc.) and puts > it in a profile under ~/.config/guix/current. Quoth the manual: This sounds like a very nice improvement, thanks! Just wondering: does this mean that I could substitute Guix from my local source tree simply by doing ./pre-inst-env guix package -p ~/.config/guix/current -i guix Or, in fact, not use ~/.config/guix/current at all and just install "guix" into my main profile? Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Ricardo Wurmus Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 31 May 2018 19:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15277931669087 (code B ref 22629); Thu, 31 May 2018 19:00:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 May 2018 18:59:26 +0000 Received: from localhost ([127.0.0.1]:56294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOSnG-0002MV-0f for submit@debbugs.gnu.org; Thu, 31 May 2018 14:59:26 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21063) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOSnD-0002MI-Sh for 22629@debbugs.gnu.org; Thu, 31 May 2018 14:59:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1527793130; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; l=5056; bh=NtuumTpnYQEJiFTdEGnLQz1m/Q/LpEHv4C3GYhSP26Y=; b=X4KZZ2rcXOK1RzO85b5woRh/YZrzBuVKJ4JYPmvXd1G4m+V/ogqtJutDAKfv+TU8 5tcxMMlopOYQ9oUQhdqCtHxfIsV8IVTcnACqU4tkHOLFCTocLyn7oMJnS4HXgDJab3/ 8buJggV8R/L5pIjZ1U0UMZFjv/7LbpVQcJraab8Y= Received: from localhost (port-92-200-55-217.dynamic.qsc.de [92.200.55.217]) by mx.zohomail.com with SMTPS id 1527793130397272.31667092229645; Thu, 31 May 2018 11:58:50 -0700 (PDT) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> User-agent: mu4e 1.0; emacs 26.1 From: Ricardo Wurmus In-reply-to: <20180531144337.16298-1-ludo@gnu.org> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Thu, 31 May 2018 20:58:46 +0200 Message-ID: <878t7zps7t.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > Here is the =E2=80=9Cnew=E2=80=9D =E2=80=98guix pull=E2=80=99 that we dis= cussed notably in this thread: > > https://bugs.gnu.org/22629 > > The major difference is that instead of just building a bunch of modules > and putting them under ~/.config/guix/latest, it now produces a > standalone package (with bin/guix, share/info/guix.info, etc.) and puts > it in a profile under ~/.config/guix/current. [=E2=80=A6] This is beautiful! Thank you so much for taking the time to implement this. > > The result of running =E2=80=98guix pull=E2=80=99 is a =E2=80=9Cprof= ile=E2=80=9D available under > =E2=80=98~/.config/guix/current=E2=80=99 containing the latest Guix. T= hus, make sure to > add it to the beginning of your search path so that you use the latest > version, and similarly for the Info manual (*note Documentation::): > > export PATH=3D"$HOME/.config/guix/current/bin:$PATH" > export INFOPATH=3D"$HOME/.config/guix/current/share/info:$INFOPATH" As a profile it will have its very own =E2=80=9Cetc/profile=E2=80=9D file. = I suppose that doesn=E2=80=99t include INFOPATH, though, because it only contains an = Info manual but not an Info reader. It would be extra nice if we could simplify this initial setup even more. > This =E2=80=98~/.config/guix/current=E2=80=99 profile works like any= other profile > created by =E2=80=98guix package=E2=80=99 (*note Invoking guix package:= :). That is, you > can list generations, roll back to the previous generation=E2=80=94i.e.= , the > previous Guix=E2=80=94and so on: > > $ guix package -p ~/.config/guix/current -l > Generation 1 May 25 2018 10:06:41 > guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-gui= x-221951af4 > > Generation 2 May 27 2018 19:07:47 > + guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-gu= ix-2fbae006f > - guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-gu= ix-221951af4 > > Generation 3 May 30 2018 16:11:39 (current) > + guix a076f19 out /gnu/store/332czkicwwg6lc3x4aqbw5q2mq12s7fj-gu= ix-a076f1990 > - guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-gu= ix-2fbae006f > $ guix package -p ~/.config/guix/current --roll-back > switched from generation 3 to 2 This also means that you could remove the =E2=80=9Cguix=E2=80=9D package an= d install =E2=80=9Chello=E2=80=9D instead. If a user did that they would lose their = variant of guix and they=E2=80=99d fall back to whichever version is installed on the system (if any). They could still roll back manually by changing the symlink. They could also think that installing the =E2=80=9Cguix=E2=80=9D package in= to that profile would be a good idea =E2=80=94 but then they would end up with a slightly older version of Guix. (This is already possible, of course, but if we have a separate profile that=E2=80=99s intended just for Guix but= with generic properties, this could become confusing.) I=E2=80=99m just thinking out loud about how users could get into trouble :) > There are two requirements it fulfills in terms of compatibility: > > 1. The modified =E2=80=98build-aux/build-self.scm=E2=80=99 still does t= he right thing > when evaluated by an =E2=80=9Cold=E2=80=9D Guix=E2=80=94that is, it = produces a bunch of > modules for use in ~/.config/guix/latest as before. Excellent! Thanks for thinking about this case. > 2. The modified =E2=80=98guix pull=E2=80=99 produces ~/.config/guix/cur= rent even when > invoked on a commit of a past Guix. That is, it automatically > produces a =E2=80=98guix=E2=80=99 command using the modules returned= by the old > =E2=80=98build-self.scm=E2=80=99. > > There are various improvements we can make from there. For example, > using =E2=80=9Cmanifest entry properties=E2=80=9D as proposed in > , we can attach meta-data (commit ID, repo > URL, etc.) in each manifest entry that =E2=80=98guix pull=E2=80=99 popula= tes; then we > can arrange for =E2=80=98guix pull --list-generations=E2=80=99 (say) to d= isplay that > information. > > We could add =E2=80=98guix pull=E2=80=99 options for convenient: =E2=80= =98--roll-back=E2=80=99, > =E2=80=98--profile=E2=80=99, etc. > > Going forward, additional =E2=80=9Cchannels=E2=80=9D could be presented a= s entries in > the ~/.config/guix/current manifest. > > Caveats: > > 1. The ~/.config/guix/current profile really lives there. That is, > unlike ~/.guix-profile, it=E2=80=99s not in /var/guix/profiles/per-u= ser. > That could be an issue for cluster setups where home directories > are not scanned by the Guix GC. Cluster folks, please tell me! Is it impossible to store it in localstatedir? In practice, cluster installations don=E2=80=99t really run =E2=80=9Cguix g= c=E2=80=9D all that ofter (if ever), so it may not be a problem. > 3. C++ code is not built. I wonder which will come first: getting rid > of the C++ code, or building it? :-) I=E2=80=99d say that this is a feature ;) -- Ricardo From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 01 Jun 2018 12:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ricardo Wurmus Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152785512325326 (code B ref 22629); Fri, 01 Jun 2018 12:13:02 +0000 Received: (at 22629) by debbugs.gnu.org; 1 Jun 2018 12:12:03 +0000 Received: from localhost ([127.0.0.1]:56902 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOiuZ-0006aP-2J for submit@debbugs.gnu.org; Fri, 01 Jun 2018 08:12:03 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41879) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOiuX-0006Zw-7C for 22629@debbugs.gnu.org; Fri, 01 Jun 2018 08:12:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOiuN-0008Qf-VT for 22629@debbugs.gnu.org; Fri, 01 Jun 2018 08:11:56 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50814) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOiuN-0008Qb-RN; Fri, 01 Jun 2018 08:11:51 -0400 Received: from [193.50.110.154] (port=43702 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fOiuN-00034m-Cu; Fri, 01 Jun 2018 08:11:51 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <878t7zps7t.fsf@elephly.net> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 13 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 01 Jun 2018 14:11:49 +0200 In-Reply-To: <878t7zps7t.fsf@elephly.net> (Ricardo Wurmus's message of "Thu, 31 May 2018 20:58:46 +0200") Message-ID: <87po1aaepm.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello! Ricardo Wurmus skribis: >> The result of running =E2=80=98guix pull=E2=80=99 is a =E2=80=9Cpro= file=E2=80=9D available under >> =E2=80=98~/.config/guix/current=E2=80=99 containing the latest Guix. = Thus, make sure to >> add it to the beginning of your search path so that you use the latest >> version, and similarly for the Info manual (*note Documentation::): >> >> export PATH=3D"$HOME/.config/guix/current/bin:$PATH" >> export INFOPATH=3D"$HOME/.config/guix/current/share/info:$INFOPAT= H" > > As a profile it will have its very own =E2=80=9Cetc/profile=E2=80=9D file= . I suppose > that doesn=E2=80=99t include INFOPATH, though, because it only contains a= n Info > manual but not an Info reader. It would be extra nice if we could > simplify this initial setup even more. I agree. On GuixSD of course we can add the right default. On foreign distros, I=E2=80=99m not sure how we can simplify things though. At least, when you run the new =E2=80=98guix pull=E2=80=99 for the first ti= me, you get a note that you should define PATH. >> This =E2=80=98~/.config/guix/current=E2=80=99 profile works like an= y other profile >> created by =E2=80=98guix package=E2=80=99 (*note Invoking guix package= ::). That is, you >> can list generations, roll back to the previous generation=E2=80=94i.e= ., the >> previous Guix=E2=80=94and so on: [...] > This also means that you could remove the =E2=80=9Cguix=E2=80=9D package = and install > =E2=80=9Chello=E2=80=9D instead. If a user did that they would lose thei= r variant of > guix and they=E2=80=99d fall back to whichever version is installed on the > system (if any). They could still roll back manually by changing the > symlink. > > They could also think that installing the =E2=80=9Cguix=E2=80=9D package = into that > profile would be a good idea =E2=80=94 but then they would end up with a > slightly older version of Guix. (This is already possible, of course, > but if we have a separate profile that=E2=80=99s intended just for Guix b= ut with > generic properties, this could become confusing.) > > I=E2=80=99m just thinking out loud about how users could get into trouble= :) Yeah well, we can=E2=80=99t really prevent them from shooting themselves in= the foot. :-) Now, we could hide the fact that people can use =E2=80=9Cguix package -p=E2= =80=9D on that thing by simply providing =E2=80=98--list-generations=E2=80=99, =E2=80= =98--roll-back=E2=80=99, etc. directly in =E2=80=98guix pull=E2=80=99. I think it=E2=80=99ll be a good idea to add a custom =E2=80=98--list-genera= tions=E2=80=99 in the future anyway, because it could display more useful information (commit IDs, number of available packages, etc.) >> 1. The ~/.config/guix/current profile really lives there. That is, >> unlike ~/.guix-profile, it=E2=80=99s not in /var/guix/profiles/per-= user. >> That could be an issue for cluster setups where home directories >> are not scanned by the Guix GC. Cluster folks, please tell me! > > Is it impossible to store it in localstatedir? It wouldn=E2=80=99t be hard, but I wanted to get things done quickly. :-) Thanks for your feedback! Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 01 Jun 2018 12:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: "Thompson\, David" Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152785520225450 (code B ref 22629); Fri, 01 Jun 2018 12:14:01 +0000 Received: (at 22629) by debbugs.gnu.org; 1 Jun 2018 12:13:22 +0000 Received: from localhost ([127.0.0.1]:56906 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOivq-0006cQ-IK for submit@debbugs.gnu.org; Fri, 01 Jun 2018 08:13:22 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42165) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fOivp-0006cC-54 for 22629@debbugs.gnu.org; Fri, 01 Jun 2018 08:13:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fOivh-0000no-CJ for 22629@debbugs.gnu.org; Fri, 01 Jun 2018 08:13:16 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50979) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fOivh-0000nb-8a; Fri, 01 Jun 2018 08:13:13 -0400 Received: from [193.50.110.154] (port=43740 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fOivg-0003HW-6s; Fri, 01 Jun 2018 08:13:12 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 13 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 01 Jun 2018 14:13:10 +0200 In-Reply-To: (David Thompson's message of "Thu, 31 May 2018 10:53:06 -0400") Message-ID: <87k1riaend.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Heya David, "Thompson, David" skribis: > On Thu, May 31, 2018 at 10:43 AM, Ludovic Court=C3=A8s wro= te: >> Hello Guix! >> >> Here is the =E2=80=9Cnew=E2=80=9D =E2=80=98guix pull=E2=80=99 that we di= scussed notably in this thread: >> >> https://bugs.gnu.org/22629 >> >> The major difference is that instead of just building a bunch of modules >> and putting them under ~/.config/guix/latest, it now produces a >> standalone package (with bin/guix, share/info/guix.info, etc.) and puts >> it in a profile under ~/.config/guix/current. > > Just dropping by to say this is a really awesome improvement to the > user experience! Thanks for working on it! Excited to try it out once > it gets merged. Thanks for your support! We=E2=80=99ll still have to make the whole build process faster but yeah, that=E2=80=99s one important step towards 1.0! Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Pjotr Prins Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 03 Jun 2018 13:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org, "Thompson, David" Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152803129119680 (code B ref 22629); Sun, 03 Jun 2018 13:09:01 +0000 Received: (at 22629) by debbugs.gnu.org; 3 Jun 2018 13:08:11 +0000 Received: from localhost ([127.0.0.1]:59871 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fPSjz-00057M-8a for submit@debbugs.gnu.org; Sun, 03 Jun 2018 09:08:11 -0400 Received: from mail.thebird.nl ([94.142.245.5]:42232) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fPSjw-000576-Ph for 22629@debbugs.gnu.org; Sun, 03 Jun 2018 09:08:09 -0400 Received: by mail.thebird.nl (Postfix, from userid 1000) id BBEA27E9E; Sun, 3 Jun 2018 15:08:02 +0200 (CEST) Date: Sun, 3 Jun 2018 15:08:02 +0200 From: Pjotr Prins Message-ID: <20180603130802.qcz6e5iz2wwxw7to@thebird.nl> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87k1riaend.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87k1riaend.fsf@gnu.org> User-Agent: NeoMutt/20170113 (1.7.2) X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Fri, Jun 01, 2018 at 02:13:10PM +0200, Ludovic Courtès wrote: > Thanks for your support! We’ll still have to make the whole build > process faster but yeah, that’s one important step towards 1.0! But we do get substitutes in principle, right? Pj. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 03 Jun 2018 20:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Pjotr Prins Cc: 22629@debbugs.gnu.org, "Thompson, David" Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152805779511860 (code B ref 22629); Sun, 03 Jun 2018 20:30:02 +0000 Received: (at 22629) by debbugs.gnu.org; 3 Jun 2018 20:29:55 +0000 Received: from localhost ([127.0.0.1]:60590 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fPZdT-00035E-9K for submit@debbugs.gnu.org; Sun, 03 Jun 2018 16:29:55 -0400 Received: from eggs.gnu.org ([208.118.235.92]:54702) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fPZdP-00034v-BJ for 22629@debbugs.gnu.org; Sun, 03 Jun 2018 16:29:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fPZdJ-00042h-4G for 22629@debbugs.gnu.org; Sun, 03 Jun 2018 16:29:46 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35312) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fPZdJ-00042R-07; Sun, 03 Jun 2018 16:29:45 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=52966 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fPZdI-0002C5-Ix; Sun, 03 Jun 2018 16:29:44 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87k1riaend.fsf@gnu.org> <20180603130802.qcz6e5iz2wwxw7to@thebird.nl> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 15 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Sun, 03 Jun 2018 22:29:43 +0200 In-Reply-To: <20180603130802.qcz6e5iz2wwxw7to@thebird.nl> (Pjotr Prins's message of "Sun, 3 Jun 2018 15:08:02 +0200") Message-ID: <87bmcr62bs.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Pjotr Prins skribis: > On Fri, Jun 01, 2018 at 02:13:10PM +0200, Ludovic Court=C3=A8s wrote: >> Thanks for your support! We=E2=80=99ll still have to make the whole bui= ld >> process faster but yeah, that=E2=80=99s one important step towards 1.0! > > But we do get substitutes in principle, right? Yes, but only for berlin.guixsd.org at the moment (because of obscure issues with Guile support in Hydra that I=E2=80=99m not really willing to f= ix): https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D27284#147 Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 04 Jun 2018 11:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152811123611656 (code B ref 22629); Mon, 04 Jun 2018 11:21:01 +0000 Received: (at 22629) by debbugs.gnu.org; 4 Jun 2018 11:20:36 +0000 Received: from localhost ([127.0.0.1]:60935 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fPnXQ-00031v-8b for submit@debbugs.gnu.org; Mon, 04 Jun 2018 07:20:36 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45487) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fPnXO-00031f-7G for 22629@debbugs.gnu.org; Mon, 04 Jun 2018 07:20:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fPnXF-0001EK-IV for 22629@debbugs.gnu.org; Mon, 04 Jun 2018 07:20:28 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46823) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fPnXF-0001E6-CF; Mon, 04 Jun 2018 07:20:25 -0400 Received: from [193.50.110.154] (port=37910 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fPnXE-0007d2-P5; Mon, 04 Jun 2018 07:20:25 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 16 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 04 Jun 2018 13:20:22 +0200 In-Reply-To: (Konrad Hinsen's message of "Thu, 31 May 2018 20:00:13 +0200") Message-ID: <87602yu7bd.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello! Konrad Hinsen skribis: > Just wondering: does this mean that I could substitute Guix from my local > source tree simply by doing > > ./pre-inst-env guix package -p ~/.config/guix/current -i guix That would just install the snapshot that the =E2=80=98guix=E2=80=99 packag= e refers to (it=E2=80=99s defined in (gnu packages package-management)).) > Or, in fact, not use ~/.config/guix/current at all and just install > "guix" into my main profile? If we add a =E2=80=98-p=E2=80=99 option to =E2=80=98guix pull=E2=80=99, tha= t=E2=80=99s something you could do. Now, installing Guix in your main profile is probably not a good idea. Since Guix it what allows you to manage the profile in question, it=E2=80= =99s probably better to keep it separate. That way, =E2=80=98guix=E2=80=99 is m= anaged independently of upgrades, installs, etc. that you make in your profile; rolling back your main profile doesn=E2=80=99t roll back Guix, and so on. HTH, Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Pjotr Prins Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 04 Jun 2018 19:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: Pjotr Prins , "Thompson, David" , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152813954623989 (code B ref 22629); Mon, 04 Jun 2018 19:13:01 +0000 Received: (at 22629) by debbugs.gnu.org; 4 Jun 2018 19:12:26 +0000 Received: from localhost ([127.0.0.1]:33645 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fPuu2-0006Er-Ay for submit@debbugs.gnu.org; Mon, 04 Jun 2018 15:12:26 -0400 Received: from mail.thebird.nl ([94.142.245.5]:42840) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fPuu0-0006Ed-Ew for 22629@debbugs.gnu.org; Mon, 04 Jun 2018 15:12:24 -0400 Received: by mail.thebird.nl (Postfix, from userid 1000) id 777A57A00; Mon, 4 Jun 2018 21:12:18 +0200 (CEST) Date: Mon, 4 Jun 2018 21:12:18 +0200 From: Pjotr Prins Message-ID: <20180604191218.hlobvqdpkka5gky5@thebird.nl> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87k1riaend.fsf@gnu.org> <20180603130802.qcz6e5iz2wwxw7to@thebird.nl> <87bmcr62bs.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87bmcr62bs.fsf@gnu.org> User-Agent: NeoMutt/20170113 (1.7.2) X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Jun 03, 2018 at 10:29:43PM +0200, Ludovic Courtès wrote: > Pjotr Prins skribis: > > > On Fri, Jun 01, 2018 at 02:13:10PM +0200, Ludovic Courtès wrote: > >> Thanks for your support! We’ll still have to make the whole build > >> process faster but yeah, that’s one important step towards 1.0! > > > > But we do get substitutes in principle, right? > > Yes, but only for berlin.guixsd.org at the moment (because of obscure > issues with Guile support in Hydra that I’m not really willing to fix): That is great news Ludo. It also means that channels are around the corner because we can use a substituted version of Guix as the basis. That is unbelievably cool. Pj. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 05 Jun 2018 11:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152819913115355 (code B ref 22629); Tue, 05 Jun 2018 11:46:02 +0000 Received: (at 22629) by debbugs.gnu.org; 5 Jun 2018 11:45:31 +0000 Received: from localhost ([127.0.0.1]:34407 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQAP5-0003zb-Cc for submit@debbugs.gnu.org; Tue, 05 Jun 2018 07:45:31 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:53585) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQAP3-0003zT-TN for 22629@debbugs.gnu.org; Tue, 05 Jun 2018 07:45:30 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 257D121BAD; Tue, 5 Jun 2018 07:45:29 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Tue, 05 Jun 2018 07:45:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=HyoVA3fQXElW4TXao2imOeTtXB9px 09zEbTKK/W5nAw=; b=sJeDqo4fDXcksUy7gSYdUlWX+Hkfit99PCLXuH7ZW841M 0qf+nDoH19FZ+zUROzntaGWGquqvhFe1w/K1vSvyGPNImfhzX46ZBQhio9yVol5A D9DpD7VsuiD0/QfjB5MCacXUZaevLM8xpsUnX6/gDB1wjZ8ALvDFG9Dy7u08hGCj vlrihlFh2o4lwRIhb/kT0ikVh12YCShz+Sh101XgEAKZBP3V44v1DdGVykE+BGvv YQnFePGa53eWKm9/ueIbt6S54boD+KsVEls4u+32JlDY7813PCtRuLAyCYMsEZsV ONimQa3ejg8zTDYTCjqLEHQmtuHCQiNo3bGrRUvbw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=Hyo VA3fQXElW4TXao2imOeTtXB9px09zEbTKK/W5nAw=; b=O8pjGSzqPNMN92IcBhS pUIOkTcp1GDebO5dbLrj5Ox0haQFO9w8Zp4xLe2VfK69kDmfG8K5ih6n3uQlM+zh JT808cYLjtICMSfw19hmaaMuVv0gtHC0ROfBlCbOTEq1BqHfEq3mAjTUy9hJSZL7 RbrAFkw/uTVMhhkANY1+U0YpBfSkA4xf2XCV6aCcEwpdhBp+10R2PH3uC9+7zSFu S4u8Op8Vlo45lDU0Nk4RvA/ERVvQgDXt3ViURn1MALPVQhpBSPsZSKL74Eu9uP6I gSAyBKxHvHR6q1j7mBuj0IC2/bUd+5puvNG6CSZgHlQldbgW8dLtAbsqkY6R9/0J 3ww== X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Sender: Received: from kh-MacBookPro (lfbn-1-713-147.w86-246.abo.wanadoo.fr [86.246.188.147]) by mail.messagingengine.com (Postfix) with ESMTPA id 5757EE4648; Tue, 5 Jun 2018 07:45:28 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <87602yu7bd.fsf@gnu.org> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87602yu7bd.fsf@gnu.org> Date: Tue, 05 Jun 2018 13:45:31 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Ludo, >> Just wondering: does this mean that I could substitute Guix from my local >> source tree simply by doing >> >> ./pre-inst-env guix package -p ~/.config/guix/current -i guix > > That would just install the snapshot that the =E2=80=98guix=E2=80=99 pack= age refers to > (it=E2=80=99s defined in (gnu packages package-management)).) Fine, so if I run update-guix-package.scm and then do the install, I get what I expect, right? I am looking for a reasonably straightforward way to have everything in my Guix universe (the guix command line tool, emacs-guix, guile, geiser, ...) consistently use my personal version of the package definitions. > Now, installing Guix in your main profile is probably not a good idea. > Since Guix it what allows you to manage the profile in question, it=E2=80= =99s > probably better to keep it separate. That way, =E2=80=98guix=E2=80=99 is= managed Yes, that makes sense. Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Fis Trivial Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 05 Jun 2018 16:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: "22629@debbugs.gnu.org" <22629@debbugs.gnu.org> Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.1528217250723 (code B ref 22629); Tue, 05 Jun 2018 16:48:01 +0000 Received: (at 22629) by debbugs.gnu.org; 5 Jun 2018 16:47:30 +0000 Received: from localhost ([127.0.0.1]:35442 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQF7K-0000Bb-4h for submit@debbugs.gnu.org; Tue, 05 Jun 2018 12:47:30 -0400 Received: from mail-oln040092005096.outbound.protection.outlook.com ([40.92.5.96]:45082 helo=NAM02-SN1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQF7H-0000BN-Iq for 22629@debbugs.gnu.org; Tue, 05 Jun 2018 12:47:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WwpGe8M3NkcHizD+3xNCgGxHEJjqR/C3j9YZmZ3x24k=; b=eNVPkcoYV/HvRVKOAYOBuSD02oOD00U5Cmyolyac49vnKG5fAcWvoVinP2atPqTKz5c1uZMMr8lM32WxuiD0Ph7J1OE5s0DvT6/fYHl7YHwyyt/iE5cq8qu8JyPsvKh8tvDhJDezbPsSyyUzKtwA7GDV52nJvneOc5WYfPkwxYjShW1LfStmL+R+ksaz1+e3iwi+qAM7ijs1jT5aUJAtiQGViZvLwwMK7ll17/QvJUeS8m2GU/yZX02EkXqVRXY8YyFwrZjm/ezyor4H+UOiYrhooDifYN63nGvZLgjmUX/i0oC+Gp+0TFMjNEZ5cnBSqLa8lkUlAxayl9iVoC0eZQ== Received: from CY1NAM02FT014.eop-nam02.prod.protection.outlook.com (10.152.74.57) by CY1NAM02HT236.eop-nam02.prod.protection.outlook.com (10.152.75.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.841.10; Tue, 5 Jun 2018 16:47:20 +0000 Received: from BLUPR16MB0500.namprd16.prod.outlook.com (10.152.74.53) by CY1NAM02FT014.mail.protection.outlook.com (10.152.75.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.841.10 via Frontend Transport; Tue, 5 Jun 2018 16:47:20 +0000 Received: from BLUPR16MB0500.namprd16.prod.outlook.com ([fe80::55c2:9577:1f40:5c55]) by BLUPR16MB0500.namprd16.prod.outlook.com ([fe80::55c2:9577:1f40:5c55%2]) with mapi id 15.20.0820.015; Tue, 5 Jun 2018 16:47:20 +0000 From: Fis Trivial Thread-Topic: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Thread-Index: AQHT+O3/R8KKChVi9UanXy2+PwzoX6RR59UA Date: Tue, 5 Jun 2018 16:47:20 +0000 Message-ID: References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HK0P153CA0039.APCP153.PROD.OUTLOOK.COM (2603:1096:203:17::27) To BLUPR16MB0500.namprd16.prod.outlook.com (2a01:111:e400:c46a::11) x-incomingtopheadermarker: OriginalChecksum:F62276304A0133792781C476A8BDE823D76E9E0BE0CFF124755D926EE8D0EEDA; UpperCasedChecksum:D8EB5E29C66991F8190D3542A6AF52F5BD04CB1479D743BC78329352D66977A6; SizeAsReceived:7525; Count:50 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [yWAMWTV+JQugURggO5yPao3LZ/vhLlUR] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY1NAM02HT236; 7:BnLKDTDTYhnwh6UkI1blgm835RJmN//f0GRPKEq6pMtr+SIBBbD+vCfRlAK6gPCQWcW7IdgC3XuFYEWoTL7WkMrT0KOee+dfN3JNWfhrcORS7+2RT1S8rOCgnhWb9KCSdJxbNRhK3nm3vXFeYiR1LylF0Pcs9tPd1vKclFfoqR0O0cVfF7+ENH3ZvixSMKg8n8OgFsojbb6srP5ucUBtqN/mwBCOxhobtgrYgSS85NoTbo0AFuNWnUtNxr76lgVX x-incomingheadercount: 50 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125466)(1701031045); SRVR:CY1NAM02HT236; x-ms-traffictypediagnostic: CY1NAM02HT236: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:CY1NAM02HT236; BCL:0; PCL:0; RULEID:; SRVR:CY1NAM02HT236; x-forefront-prvs: 0694C54398 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(189003)(199004)(51914003)(6436002)(20460500001)(74316002)(5250100002)(305945005)(7696005)(5660300001)(3660700001)(2900100001)(76176011)(59450400001)(104016004)(11346002)(82202002)(446003)(99286004)(3280700002)(25786009)(102836004)(33656002)(4326008)(386003)(73972006)(68736007)(26005)(486006)(9686003)(14454004)(106356001)(55016002)(966005)(81156014)(87572001)(8676002)(6506007)(476003)(6246003)(6346003)(86362001)(229853002)(97736004)(6916009)(105586002)(83332001)(8936002)(6306002)(15852004); DIR:OUT; SFP:1901; SCL:1; SRVR:CY1NAM02HT236; H:BLUPR16MB0500.namprd16.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:; received-spf: None (protection.outlook.com: hotmail.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=ybbs.daans@hotmail.com; x-microsoft-antispam-message-info: oP7mQL4Tj7pUX6jQb8uH8hx2zbnmUDfrSXDK+75/cLjIsGrTqU/oIxxxanhnNQNieQ/PatJ35qURZJqhCI/pp4XliZprG8MC/JLlSfqrPkuhy2VIW0jRhzQwlHkQw5h76lZh+fsss2MKcPV2exC7GDxy9fIcz5cXQQHwABPVGycsULvmHa6JeK6D1Nv9vU0H Content-Type: text/plain; charset="utf-8" Content-ID: <144D81678340C546A015AD0E09919418@namprd16.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 524ff550-67ed-469f-6cd4-08d5cb04008c X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: dd759f05-a917-4aa0-a2f5-4cc35c50e0c8 X-MS-Exchange-CrossTenant-Network-Message-Id: 524ff550-67ed-469f-6cd4-08d5cb04008c X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: dd759f05-a917-4aa0-a2f5-4cc35c50e0c8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2018 16:47:20.7146 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1NAM02HT236 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) DQpIaSwgZmlyc3Qgb2YgYWxsLCB0aGFua3MgZm9yIHRoZSBpbXByb3ZlbWVudC4gSXQncyByZWFs bHkgZXhjaXRpbmcga25vdw0KcHJvZ3Jlc3MgaW4gZ3VpeC4NCg0KQnV0IEkgaGF2ZSBhIGZldyBx dWVzdGlvbnMgYXJvdW5kIHRoaXMgY2hhbmdlLiBKdXN0IGN1cmlvc2l0eS4gOikNCg0KPiBIZWxs byBHdWl4IQ0KPg0KPiBIZXJlIGlzIHRoZSDigJxuZXfigJ0g4oCYZ3VpeCBwdWxs4oCZIHRoYXQg d2UgZGlzY3Vzc2VkIG5vdGFibHkgaW4gdGhpcyB0aHJlYWQ6DQo+DQo+ICAgaHR0cHM6Ly9idWdz LmdudS5vcmcvMjI2MjkNCj4NCj4gVGhlIG1ham9yIGRpZmZlcmVuY2UgaXMgdGhhdCBpbnN0ZWFk IG9mIGp1c3QgYnVpbGRpbmcgYSBidW5jaCBvZiBtb2R1bGVzDQo+IGFuZCBwdXR0aW5nIHRoZW0g dW5kZXIgfi8uY29uZmlnL2d1aXgvbGF0ZXN0LCBpdCBub3cgcHJvZHVjZXMgYQ0KPiBzdGFuZGFs b25lIHBhY2thZ2UgKHdpdGggYmluL2d1aXgsIHNoYXJlL2luZm8vZ3VpeC5pbmZvLCBldGMuKSBh bmQgcHV0cw0KPiBpdCBpbiBhIHByb2ZpbGUgdW5kZXIgfi8uY29uZmlnL2d1aXgvY3VycmVudC4g IFF1b3RoIHRoZSBtYW51YWw6DQo+DQo+ICAgICAgVGhlIHJlc3VsdCBvZiBydW5uaW5nIOKAmGd1 aXggcHVsbOKAmSBpcyBhIOKAnHByb2ZpbGXigJ0gYXZhaWxhYmxlIHVuZGVyDQo+ICAg4oCYfi8u Y29uZmlnL2d1aXgvY3VycmVudOKAmSBjb250YWluaW5nIHRoZSBsYXRlc3QgR3VpeC4gIFRodXMs IG1ha2Ugc3VyZSB0bw0KPiAgIGFkZCBpdCB0byB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgc2VhcmNo IHBhdGggc28gdGhhdCB5b3UgdXNlIHRoZSBsYXRlc3QNCj4gICB2ZXJzaW9uLCBhbmQgc2ltaWxh cmx5IGZvciB0aGUgSW5mbyBtYW51YWwgKCpub3RlIERvY3VtZW50YXRpb246Oik6DQo+DQo+ICAg ICAgICBleHBvcnQgUEFUSD0iJEhPTUUvLmNvbmZpZy9ndWl4L2N1cnJlbnQvYmluOiRQQVRIIg0K PiAgICAgICAgZXhwb3J0IElORk9QQVRIPSIkSE9NRS8uY29uZmlnL2d1aXgvY3VycmVudC9zaGFy ZS9pbmZvOiRJTkZPUEFUSCINCj4NCg0KVGhpcyBzb3VuZHMgbGlrZSBzb21ldGhpbmcgY291bGQg YmUgZG9uZSBieSBndWl4IGl0c2VsZiwgY2hvb3NpbmcgdGhlDQpyaWdodCBwcm9maWxlIHBhdGgg YnkgJEhPTUUuIFNpbmNlIGd1aXggaGFzIGFic29sdXRlIGNvbnRyb2wgYWJvdXQgdGhpcw0KcGll Y2Ugb2YgaW5mb3JtYXRpb24/DQoNCj4gICAgICBUaGlzIOKAmH4vLmNvbmZpZy9ndWl4L2N1cnJl bnTigJkgcHJvZmlsZSB3b3JrcyBsaWtlIGFueSBvdGhlciBwcm9maWxlDQo+ICAgY3JlYXRlZCBi eSDigJhndWl4IHBhY2thZ2XigJkgKCpub3RlIEludm9raW5nIGd1aXggcGFja2FnZTo6KS4gIFRo YXQgaXMsIHlvdQ0KPiAgIGNhbiBsaXN0IGdlbmVyYXRpb25zLCByb2xsIGJhY2sgdG8gdGhlIHBy ZXZpb3VzIGdlbmVyYXRpb27igJRpLmUuLCB0aGUNCj4gICBwcmV2aW91cyBHdWl44oCUYW5kIHNv IG9uOg0KPg0KPiAgICAgICAgJCBndWl4IHBhY2thZ2UgLXAgfi8uY29uZmlnL2d1aXgvY3VycmVu dCAtbA0KPiAgICAgICAgR2VuZXJhdGlvbiAxCU1heSAyNSAyMDE4IDEwOjA2OjQxDQo+ICAgICAg ICAgIGd1aXgJMjIxOTUxYQlvdXQJL2dudS9zdG9yZS9pNGRmazd2dzVrMTEyczQ5anJobDZod3Nm bmg2d3I3bC1ndWl4LTIyMTk1MWFmNA0KPg0KPiAgICAgICAgR2VuZXJhdGlvbiAyCU1heSAyNyAy MDE4IDE5OjA3OjQ3DQo+ICAgICAgICAgKyBndWl4CTJmYmFlMDAJb3V0CS9nbnUvc3RvcmUvNDRj djloeXZ4ZzM0eGY1a2JsZjVkejU3aGM1Mnk0Ym0tZ3VpeC0yZmJhZTAwNmYNCj4gICAgICAgICAt IGd1aXgJMjIxOTUxYQlvdXQJL2dudS9zdG9yZS9pNGRmazd2dzVrMTEyczQ5anJobDZod3Nmbmg2 d3I3bC1ndWl4LTIyMTk1MWFmNA0KPg0KPiAgICAgICAgR2VuZXJhdGlvbiAzCU1heSAzMCAyMDE4 IDE2OjExOjM5CShjdXJyZW50KQ0KPiAgICAgICAgICsgZ3VpeAlhMDc2ZjE5CW91dAkvZ251L3N0 b3JlLzMzMmN6a2ljd3dnNmxjM3g0YXFidzVxMm1xMTJzN2ZqLWd1aXgtYTA3NmYxOTkwDQo+ICAg ICAgICAgLSBndWl4CTJmYmFlMDAJb3V0CS9nbnUvc3RvcmUvNDRjdjloeXZ4ZzM0eGY1a2JsZjVk ejU3aGM1Mnk0Ym0tZ3VpeC0yZmJhZTAwNmYNCj4gICAgICAgICQgZ3VpeCBwYWNrYWdlIC1wIH4v LmNvbmZpZy9ndWl4L2N1cnJlbnQgLS1yb2xsLWJhY2sNCj4gICAgICAgIHN3aXRjaGVkIGZyb20g Z2VuZXJhdGlvbiAzIHRvIDINCj4NCj4+IFRoZXJlIGFyZSB0d28gcmVxdWlyZW1lbnRzIGl0IGZ1 bGZpbGxzIGluIHRlcm1zIG9mIGNvbXBhdGliaWxpdHk6DQo+DQo+ICAgMS4gVGhlIG1vZGlmaWVk IOKAmGJ1aWxkLWF1eC9idWlsZC1zZWxmLnNjbeKAmSBzdGlsbCBkb2VzIHRoZSByaWdodCB0aGlu Zw0KPiAgICAgIHdoZW4gZXZhbHVhdGVkIGJ5IGFuIOKAnG9sZOKAnSBHdWl44oCUdGhhdCBpcywg aXQgcHJvZHVjZXMgYSBidW5jaCBvZg0KPiAgICAgIG1vZHVsZXMgZm9yIHVzZSBpbiB+Ly5jb25m aWcvZ3VpeC9sYXRlc3QgYXMgYmVmb3JlLg0KPg0KPiAgIDIuIFRoZSBtb2RpZmllZCDigJhndWl4 IHB1bGzigJkgcHJvZHVjZXMgfi8uY29uZmlnL2d1aXgvY3VycmVudCBldmVuIHdoZW4NCj4gICAg ICBpbnZva2VkIG9uIGEgY29tbWl0IG9mIGEgcGFzdCBHdWl4LiAgVGhhdCBpcywgaXQgYXV0b21h dGljYWxseQ0KPiAgICAgIHByb2R1Y2VzIGEg4oCYZ3VpeOKAmSBjb21tYW5kIHVzaW5nIHRoZSBt b2R1bGVzIHJldHVybmVkIGJ5IHRoZSBvbGQNCj4gICAgICDigJhidWlsZC1zZWxmLnNjbeKAmS4N Cj4NCj4NCj4gV2UgY291bGQgYWRkIOKAmGd1aXggcHVsbOKAmSBvcHRpb25zIGZvciBjb252ZW5p ZW50OiDigJgtLXJvbGwtYmFja+KAmSwNCj4g4oCYLS1wcm9maWxl4oCZLCBldGMuDQo+DQoNCk5p Y2V+DQoNCj4gR29pbmcgZm9yd2FyZCwgYWRkaXRpb25hbCDigJxjaGFubmVsc+KAnSBjb3VsZCBi ZSBwcmVzZW50ZWQgYXMgZW50cmllcyBpbg0KPiB0aGUgfi8uY29uZmlnL2d1aXgvY3VycmVudCBt YW5pZmVzdC4NCj4NCj4gQ2F2ZWF0czoNCj4NCj4gICAxLiBUaGUgfi8uY29uZmlnL2d1aXgvY3Vy cmVudCBwcm9maWxlIHJlYWxseSBsaXZlcyB0aGVyZS4gIFRoYXQgaXMsDQo+ICAgICAgdW5saWtl IH4vLmd1aXgtcHJvZmlsZSwgaXTigJlzIG5vdCBpbiAvdmFyL2d1aXgvcHJvZmlsZXMvcGVyLXVz ZXIuDQo+ICAgICAgVGhhdCBjb3VsZCBiZSBhbiBpc3N1ZSBmb3IgY2x1c3RlciBzZXR1cHMgd2hl cmUgaG9tZSBkaXJlY3Rvcmllcw0KPiAgICAgIGFyZSBub3Qgc2Nhbm5lZCBieSB0aGUgR3VpeCBH Qy4gIENsdXN0ZXIgZm9sa3MsIHBsZWFzZSB0ZWxsIG1lIQ0KDQpXaGF0IGRvZXMgdGhhdCBtZWFu PyBXZSBoYXZlIGEgZ3VpeCBkaXJlY3RvcnkgdW5kZXIgJEhPTUUvLmNvbmZpZywNCmluc2lkZSB0 aGVyZSdzIGEgc3ltbGluayB0byAvZ251L3N0b3JlLy4uLi1ndWl4LTxjb21taXQ+LiBEb2VzICJy ZWFsbHkNCmxpdmVzIHRoZXJlIiBtZWFuIHRoZSBuZXcgcHJvZmlsZSBpcyBub3QgYSBzeW1saW5r IGJ1dCBhIGNvbmNyZXRlDQpkaXJlY3Rvcnkgb3IgaGFyZCBsaW5rPw0KPg0KPiAgIDIuIFRoZSB0 cmFuc2xhdGVkIEluZm8gbWFudWFsIGlzIG5vdCBidWlsdC4gIEp1bGllbjogY291bGQgeW91IHR1 cm4NCj4gICAgICB0aGUgYmlnIOKAmHhyZWZfY29tbWFuZOKAmSBpbiBhIHNjcmlwdCBvciBzb21l dGhpbmcgdGhhdCB3ZSBjYW4gbW9yZQ0KPiAgICAgIGVhc2lseSByZXVzZSBpbiAoZ3VpeCBzZWxm KT8NCj4NCj4gICAzLiBDKysgY29kZSBpcyBub3QgYnVpbHQuICBJIHdvbmRlciB3aGljaCB3aWxs IGNvbWUgZmlyc3Q6IGdldHRpbmcgcmlkDQo+ICAgICAgb2YgdGhlIEMrKyBjb2RlLCBvciBidWls ZGluZyBpdD8gIDotKQ0KPg0KSW4gdGhlIGZ1dHVyZSB3b3JsZCwgaG93IGRvIHdlIHVwZGF0ZSBn dWl4IGRhZW1vbj8gSXMndCBzdGlsbCBydW5uaW5nDQpndWl4IHB1bGwgJiYgZ3VpeCBwYWNrYWdl IC11IHVuZGVyIHJvb3QgdXNlcj8NCg== From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 06 Jun 2018 13:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152829149013260 (code B ref 22629); Wed, 06 Jun 2018 13:25:02 +0000 Received: (at 22629) by debbugs.gnu.org; 6 Jun 2018 13:24:50 +0000 Received: from localhost ([127.0.0.1]:36018 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQYQk-0003Rn-Gg for submit@debbugs.gnu.org; Wed, 06 Jun 2018 09:24:50 -0400 Received: from eggs.gnu.org ([208.118.235.92]:40708) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQYQi-0003RY-Vm for 22629@debbugs.gnu.org; Wed, 06 Jun 2018 09:24:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fQYQa-0004Xp-IE for 22629@debbugs.gnu.org; Wed, 06 Jun 2018 09:24:43 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:36700) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fQYQa-0004XV-Ej; Wed, 06 Jun 2018 09:24:40 -0400 Received: from [193.50.110.188] (port=52612 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fQYQZ-0004wE-VR; Wed, 06 Jun 2018 09:24:40 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87602yu7bd.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 18 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 06 Jun 2018 15:24:37 +0200 In-Reply-To: (Konrad Hinsen's message of "Tue, 05 Jun 2018 13:45:31 +0200") Message-ID: <87in6wjbe2.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello Konrad, Konrad Hinsen skribis: >>> Just wondering: does this mean that I could substitute Guix from my loc= al >>> source tree simply by doing >>> >>> ./pre-inst-env guix package -p ~/.config/guix/current -i guix >> >> That would just install the snapshot that the =E2=80=98guix=E2=80=99 pac= kage refers to >> (it=E2=80=99s defined in (gnu packages package-management)).) > > Fine, so if I run update-guix-package.scm and then do the install, I get > what I expect, right? Yes (even with current =E2=80=98master=E2=80=99), but it=E2=80=99s quite he= avyweight since you end up recompiling all of Guix. > I am looking for a reasonably straightforward way to have everything in > my Guix universe (the guix command line tool, emacs-guix, guile, geiser, > ...) consistently use my personal version of the package definitions. Would =E2=80=98guix package --manifest=E2=80=99 suffice? Perhaps along wit= h =E2=80=98guix pull --commit=3DXXX=E2=80=99? In the not-too-distant future I think we can add some sort of manifest support for =E2=80=98guix pull=E2=80=99 such that you can store the list of= channel URLs and commit IDs in one file and instantiate that. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 06 Jun 2018 13:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Fis Trivial Cc: "22629@debbugs.gnu.org" <22629@debbugs.gnu.org> Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152829169413520 (code B ref 22629); Wed, 06 Jun 2018 13:29:02 +0000 Received: (at 22629) by debbugs.gnu.org; 6 Jun 2018 13:28:14 +0000 Received: from localhost ([127.0.0.1]:36023 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQYU1-0003Vz-VN for submit@debbugs.gnu.org; Wed, 06 Jun 2018 09:28:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41433) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQYU0-0003Vo-Lh for 22629@debbugs.gnu.org; Wed, 06 Jun 2018 09:28:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fQYTp-0007z2-Pu for 22629@debbugs.gnu.org; Wed, 06 Jun 2018 09:28:07 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:36729) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fQYTp-0007yv-Li; Wed, 06 Jun 2018 09:28:01 -0400 Received: from [193.50.110.188] (port=52618 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fQYTp-0004BV-4o; Wed, 06 Jun 2018 09:28:01 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 18 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 06 Jun 2018 15:27:59 +0200 In-Reply-To: (Fis Trivial's message of "Tue, 5 Jun 2018 16:47:20 +0000") Message-ID: <87d0x4jb8g.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello! Fis Trivial skribis: >> The result of running =E2=80=98guix pull=E2=80=99 is a =E2=80=9Cpro= file=E2=80=9D available under >> =E2=80=98~/.config/guix/current=E2=80=99 containing the latest Guix. = Thus, make sure to >> add it to the beginning of your search path so that you use the latest >> version, and similarly for the Info manual (*note Documentation::): >> >> export PATH=3D"$HOME/.config/guix/current/bin:$PATH" >> export INFOPATH=3D"$HOME/.config/guix/current/share/info:$INFOPAT= H" >> > > This sounds like something could be done by guix itself, choosing the > right profile path by $HOME. Since guix has absolute control about this > piece of information? I think it would be bad for Guix to modify your ~/.bashrc directly, so it=E2=80=99s better to let users do that. GuixSD will have the right PATH and INFOPATH by default, though. >> Caveats: >> >> 1. The ~/.config/guix/current profile really lives there. That is, >> unlike ~/.guix-profile, it=E2=80=99s not in /var/guix/profiles/per-= user. >> That could be an issue for cluster setups where home directories >> are not scanned by the Guix GC. Cluster folks, please tell me! > > What does that mean? We have a guix directory under $HOME/.config, > inside there's a symlink to /gnu/store/...-guix-. Does "really > lives there" mean the new profile is not a symlink but a concrete > directory or hard link? Please see how ~/.guix-profile and /var/guix/profiles/per-user/$USER/guix-profile work together. Basically generations show up in /var/guix/profiles, whereas ~/.guix-profile is a fixed symlink. >> 3. C++ code is not built. I wonder which will come first: getting rid >> of the C++ code, or building it? :-) >> > In the future world, how do we update guix daemon? Is't still running > guix pull && guix package -u under root user? In the future world, =E2=80=98guix pull=E2=80=99 updates everything: client= -side and daemon. Currently it=E2=80=99s still client-side only. HTH! Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 06 Jun 2018 15:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152830045227150 (code B ref 22629); Wed, 06 Jun 2018 15:55:01 +0000 Received: (at 22629) by debbugs.gnu.org; 6 Jun 2018 15:54:12 +0000 Received: from localhost ([127.0.0.1]:36971 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQalH-00073q-Ug for submit@debbugs.gnu.org; Wed, 06 Jun 2018 11:54:12 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:39321) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQalG-00073i-OC for 22629@debbugs.gnu.org; Wed, 06 Jun 2018 11:54:11 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 508F621D24; Wed, 6 Jun 2018 11:54:10 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Wed, 06 Jun 2018 11:54:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=+7m76TxLcv+O6BUGkYwGqp2HxkvE4 8UbHcZ3Bika1BM=; b=Y9Ip/n0yKcohCz5rhto0fIMzs0BQ0noRo0hnWLpJSf/Bn lYQv76miUhaKZ+YWZcGPRTJX6P9wvzkLFvGzlZUYipDTWjwx8JukBdx4BR/O8yAu +w5nqfLFyo4Qh6MCLnDNrDuXa3oHGYR7j64ZY9Evv716dMDPMrGRlpFXEHw89ZbE q6SupwKFrN/0VK05mszrVD0prT2muhsNG5JBACtk/kfgso7r4d/btcXt338ZAmuj tBbWdrljT8O+FxmUOR+KFNGbmR+pXHNSybtZOgj5OmRWuPZzQPJK1NMi5g8UC6hx 1ujlVnsuI6/Jlj+FG0QFzwJcr1mJcP0CUV14nxBiA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=+7m76T xLcv+O6BUGkYwGqp2HxkvE48UbHcZ3Bika1BM=; b=FayQMH9bTiszWhf3AKf5nk QhD02wtpGx8lSDOIb2WX6h+MKirosoxEcS6ssv2vD4lS/evhf78G8nIoPb1IN9AU KjhKjD1vHSbhgDcKP9KGWeyoVgNkBrmbEEwkWAjz4dSSzFPZ08W1WFIGZR8wq2q+ CgtsMOdzWD+217X45KOG24bXMHAE6imlewt0LddOpNh/NwD8lz7EkiaYUoOlF3Qb JfPaTGmR8fUCp3Oyyr6FCptay7UOuwD+mkcK+vwyCVfs6/9GbDCTdJFPTwDcSzjX cCh7Qmk3AClxj99xoWrXRESNFXhLuG9J1/GvDgcmiGTmx66uXqFqyqw3RxsaXu0g == X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Sender: Received: from ordinateur-de-catherine--konrad.home (lfbn-1-713-147.w86-246.abo.wanadoo.fr [86.246.188.147]) by mail.messagingengine.com (Postfix) with ESMTPA id 81D99E425A; Wed, 6 Jun 2018 11:54:09 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <87in6wjbe2.fsf@gnu.org> References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87602yu7bd.fsf@gnu.org> <87in6wjbe2.fsf@gnu.org> Date: Wed, 06 Jun 2018 17:54:08 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Ludo, >> Fine, so if I run update-guix-package.scm and then do the install, I get >> what I expect, right? > > Yes (even with current =E2=80=98master=E2=80=99), but it=E2=80=99s quite = heavyweight since you > end up recompiling all of Guix. Not great, but doable from time to time. >> I am looking for a reasonably straightforward way to have everything in >> my Guix universe (the guix command line tool, emacs-guix, guile, geiser, >> ...) consistently use my personal version of the package definitions. > > Would =E2=80=98guix package --manifest=E2=80=99 suffice? Perhaps along w= ith =E2=80=98guix pull > --commit=3DXXX=E2=80=99? 'guix pull --commit=3DXXX' would be of use if it works with an URL pointing to a local repository (haven't tried yet). I'd also have to point GUILE_LOAD_PATH to wherever 'guix pull' stores the source code tree, which looks doable as well if that's a stable location. > In the not-too-distant future I think we can add some sort of manifest > support for =E2=80=98guix pull=E2=80=99 such that you can store the list = of channel URLs > and commit IDs in one file and instantiate that. That sounds really nice :-) Thanks for all the good stuff BTW! Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 06 Jun 2018 20:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152831819520793 (code B ref 22629); Wed, 06 Jun 2018 20:50:02 +0000 Received: (at 22629) by debbugs.gnu.org; 6 Jun 2018 20:49:55 +0000 Received: from localhost ([127.0.0.1]:37093 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQfNT-0005PJ-7C for submit@debbugs.gnu.org; Wed, 06 Jun 2018 16:49:55 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42379) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQfNS-0005P7-A5 for 22629@debbugs.gnu.org; Wed, 06 Jun 2018 16:49:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fQfNM-0007PD-EJ for 22629@debbugs.gnu.org; Wed, 06 Jun 2018 16:49:49 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:44376) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fQfNM-0007On-9g; Wed, 06 Jun 2018 16:49:48 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=48146 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fQfNL-0001Pb-FU; Wed, 06 Jun 2018 16:49:48 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87602yu7bd.fsf@gnu.org> <87in6wjbe2.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 18 Prairial an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 06 Jun 2018 22:49:45 +0200 In-Reply-To: (Konrad Hinsen's message of "Wed, 06 Jun 2018 17:54:08 +0200") Message-ID: <87y3frfxna.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Konrad Hinsen skribis: >>> I am looking for a reasonably straightforward way to have everything in >>> my Guix universe (the guix command line tool, emacs-guix, guile, geiser, >>> ...) consistently use my personal version of the package definitions. >> >> Would =E2=80=98guix package --manifest=E2=80=99 suffice? Perhaps along = with =E2=80=98guix pull >> --commit=3DXXX=E2=80=99? > > 'guix pull --commit=3DXXX' would be of use if it works with an URL > pointing to a local repository (haven't tried yet). I'd also > have to point GUILE_LOAD_PATH to wherever 'guix pull' stores the source > code tree, which looks doable as well if that's a stable location. You can already run =E2=80=9Cguix pull --commit=3DX --url=3D$PWD=E2=80=9D o= r similar, and modules currently end up ~/.config/guix/latest. Cheers, Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Fis Trivial Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 06 Jun 2018 20:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: "22629@debbugs.gnu.org" <22629@debbugs.gnu.org>, Fis Trivial Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152831869221543 (code B ref 22629); Wed, 06 Jun 2018 20:59:01 +0000 Received: (at 22629) by debbugs.gnu.org; 6 Jun 2018 20:58:12 +0000 Received: from localhost ([127.0.0.1]:37107 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQfVU-0005bO-06 for submit@debbugs.gnu.org; Wed, 06 Jun 2018 16:58:12 -0400 Received: from mail-oln040092013023.outbound.protection.outlook.com ([40.92.13.23]:60288 helo=NAM05-CO1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQfVS-0005b7-Qc for 22629@debbugs.gnu.org; Wed, 06 Jun 2018 16:58:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WNzzh3zZuEtiwSX8eNEs7k9G0zspng36zobR+pTEat8=; b=ITi3m6RV+Ivpl0ra88W0Me00V2+R2ID10+TkH28lOAe/RWM2VyJmnrv3QCJYQ60lQYqRs2bjXgDQXmXxJmKtuPM6ae0XUX2WrmN1JeBri8aXr+C2G6GG8nPrpOSGMFX7IyJuDhyX9pgYvRcvk85/s66KpBWJ9c1cu+OUE77kWyHFa+eFIanvHVVZz8U5mTsSULe1gsIFRJFm61aG9TviNWOuJBWgnNmh/mdn7Ajz9/wAimV9QUCzJWTdDmhB5uz3WyFgaA6E/0xw9S8xv27nJ5lYelnjD7hhvx0WrnId27z90hnMtd8hiivc9NjyljJFrDh7QPUqD5wEHaJRKThR4w== Received: from CO1NAM05FT012.eop-nam05.prod.protection.outlook.com (10.152.96.55) by CO1NAM05HT180.eop-nam05.prod.protection.outlook.com (10.152.97.126) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.841.6; Wed, 6 Jun 2018 20:58:04 +0000 Received: from BLUPR16MB0500.namprd16.prod.outlook.com (10.152.96.52) by CO1NAM05FT012.mail.protection.outlook.com (10.152.96.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.841.6 via Frontend Transport; Wed, 6 Jun 2018 20:58:04 +0000 Received: from BLUPR16MB0500.namprd16.prod.outlook.com ([fe80::bd9a:15be:747e:94fe]) by BLUPR16MB0500.namprd16.prod.outlook.com ([fe80::bd9a:15be:747e:94fe%2]) with mapi id 15.20.0841.015; Wed, 6 Jun 2018 20:58:03 +0000 From: Fis Trivial Thread-Topic: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Thread-Index: AQHT+O3/R8KKChVi9UanXy2+PwzoX6RR59UAgAFaxrmAAH2egA== Date: Wed, 6 Jun 2018 20:58:03 +0000 Message-ID: References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87d0x4jb8g.fsf@gnu.org> In-Reply-To: <87d0x4jb8g.fsf@gnu.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HK0PR03CA0054.apcprd03.prod.outlook.com (2603:1096:203:52::18) To BLUPR16MB0500.namprd16.prod.outlook.com (2a01:111:e400:c46a::11) x-incomingtopheadermarker: OriginalChecksum:32FA87E568F99DF4D4D81B8EF0B8E149C6E194F23EF98CA865C396EF30C41BE7; UpperCasedChecksum:EDD552BA3C55E516CA5AA2E0D44DD073C11895FA034FAB535958A2601E4B2FCB; SizeAsReceived:7668; Count:50 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [z4sc/x0qi7vedcEBput++yDENhAaO4EO] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CO1NAM05HT180; 7:KkILyHDWAiKhPXNQa/2etzb5J+S115PSSv4VHEeNiYByqXBe2bok2FXcCOTIwj4+enYfObeUzB1KvxqkLU5CIDvukFT4dkNl8KmYcYtADwtSHeMPJRT5JvW6mK2yC/CBRKbgGrn3c+m8JSn2Y9nj9Gf5JyMa/f3nZGjUcZDdsNI9PRl/Lw3ELrzA7sqgSNNNmwLEpBn2Ijg6idwEsx89EJdTk4CiB09l/QnroXQJIt6MkPZinjBz8VluzWMiGRgp x-incomingheadercount: 50 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(201702181274)(2017031322404)(1601125500)(1603101448)(1701031045); SRVR:CO1NAM05HT180; x-ms-exchange-slblob-mailprops: kw4jv30d2ySqNb6JiiNI6/iCnts/6o1Eoubozs6dZB0l4bBkIwbtBsmWDoLW6foSQGb2vImNrPlzAzCKvrBR5nDT9WSEjbDAzo+dadjjhycYS7XGzoE1ZWuFuh3ht9SqWnvupEqyt+2CgHgUS5Ma68kcfSY3gz3Qy8xQ7HqReS/t0Xfprb1k2JTccFTWJFNLfuICuP0AWrEAxaG2Mku6iw9r3aIIvRsS12mCxrnNClvKZJ3JMxVdPTqRv0bGqTZbWVDtidSwIrlIIiLQSO3U/webCi/kJonT+qrucHEfCzYsRTU3bnfKVaEhFTKLkGctLYPf3QpEDEXFjQnx3Z3l5LtJqVAqd5CyG0S83paH59fSHtg9Ic7SlcPjcIavW0mPwRWUi7lXxuNWBW6VAkB6Ql+/PBvBXmd+VMggO/uSJL1PoaZUmOYW2Ze8h3djGX8edCYkcdxixNKyA2CHwbac+ZI/KTHlbaozg5Q6SSVMauZqaBQZwbYN9y4YbxuO8D3dvuBpReFZeNIz3duVJmp2HFKP1c6wnJMUfRTMtist0YVG1ep0dcKt5IYnLAM4aRfKUvyNaG5+RD+rYcThX/reW7H4fkHU1oWx3TwVT+V/1Ksd5lWZs1Ok9ED2uGAwSlOfDa852OzHcyqTD2JuyEY76bEJwr+fE2jSGHjhPRuWkZQ= x-ms-traffictypediagnostic: CO1NAM05HT180: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:CO1NAM05HT180; BCL:0; PCL:0; RULEID:; SRVR:CO1NAM05HT180; x-forefront-prvs: 06952FC175 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(189003)(199004)(51914003)(97736004)(11346002)(73972006)(6916009)(54906003)(74316002)(14454004)(105586002)(446003)(83332001)(33656002)(25786009)(476003)(106356001)(55016002)(8936002)(82202002)(229853002)(26005)(7696005)(76176011)(3280700002)(6506007)(5660300001)(6346003)(59450400001)(2900100001)(3660700001)(102836004)(9686003)(5250100002)(87572001)(386003)(305945005)(4326008)(6246003)(39060400002)(6436002)(8676002)(68736007)(99286004)(93886005)(81156014)(20460500001)(86362001)(486006)(104016004)(15852004); DIR:OUT; SFP:1901; SCL:1; SRVR:CO1NAM05HT180; H:BLUPR16MB0500.namprd16.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:; received-spf: None (protection.outlook.com: hotmail.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=ybbs.daans@hotmail.com; x-microsoft-antispam-message-info: Tq5EReo49MXrwLlQ5h50fbOTBJgjRd18VhJvovIGm6d3ilqKWOt4pwXLWBpJ557ZmQHa0UfxdsYpAQWGAzUeCaPLzMCIB5QL0s1Se27rkfdFc2DMHaaGQkso4111hJDlmQ4/cuqtmiUSLLQ4qy88fdLNQd8Qy2i+L1EA0DxXxrFI/cJskXno7ff6f0mip/yA Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 3d8c278e-ea22-485e-66b3-08d5cbf031b7 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: dd759f05-a917-4aa0-a2f5-4cc35c50e0c8 X-MS-Exchange-CrossTenant-Network-Message-Id: 3d8c278e-ea22-485e-66b3-08d5cbf031b7 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: dd759f05-a917-4aa0-a2f5-4cc35c50e0c8 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2018 20:58:03.8392 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1NAM05HT180 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) DQo+DQo+Pj4gICAgICBUaGUgcmVzdWx0IG9mIHJ1bm5pbmcg4oCYZ3VpeCBwdWxs4oCZIGlzIGEg 4oCccHJvZmlsZeKAnSBhdmFpbGFibGUgdW5kZXINCj4+PiAgIOKAmH4vLmNvbmZpZy9ndWl4L2N1 cnJlbnTigJkgY29udGFpbmluZyB0aGUgbGF0ZXN0IEd1aXguICBUaHVzLCBtYWtlIHN1cmUgdG8N Cj4+PiAgIGFkZCBpdCB0byB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgc2VhcmNoIHBhdGggc28gdGhh dCB5b3UgdXNlIHRoZSBsYXRlc3QNCj4+PiAgIHZlcnNpb24sIGFuZCBzaW1pbGFybHkgZm9yIHRo ZSBJbmZvIG1hbnVhbCAoKm5vdGUgRG9jdW1lbnRhdGlvbjo6KToNCj4+Pg0KPj4+ICAgICAgICBl eHBvcnQgUEFUSD0iJEhPTUUvLmNvbmZpZy9ndWl4L2N1cnJlbnQvYmluOiRQQVRIIg0KPj4+ICAg ICAgICBleHBvcnQgSU5GT1BBVEg9IiRIT01FLy5jb25maWcvZ3VpeC9jdXJyZW50L3NoYXJlL2lu Zm86JElORk9QQVRIIg0KPj4+DQo+Pg0KPj4gVGhpcyBzb3VuZHMgbGlrZSBzb21ldGhpbmcgY291 bGQgYmUgZG9uZSBieSBndWl4IGl0c2VsZiwgY2hvb3NpbmcgdGhlDQo+PiByaWdodCBwcm9maWxl IHBhdGggYnkgJEhPTUUuIFNpbmNlIGd1aXggaGFzIGFic29sdXRlIGNvbnRyb2wgYWJvdXQgdGhp cw0KPj4gcGllY2Ugb2YgaW5mb3JtYXRpb24/DQo+DQo+IEkgdGhpbmsgaXQgd291bGQgYmUgYmFk IGZvciBHdWl4IHRvIG1vZGlmeSB5b3VyIH4vLmJhc2hyYyBkaXJlY3RseSwgc28NCj4gaXTigJlz IGJldHRlciB0byBsZXQgdXNlcnMgZG8gdGhhdC4NCj4NCg0KV2VsbCwgSSBtZWFuIGEgd3JhcHBl ciBzY3JpcHQgbG9va3Mgc2ltaWxhciB0byB0aGlzIGluIC91c3IvYmluIG9yDQovdXNyL2xvY2Fs L2JpbjoNCg0KICAgICAgIyEvcGF0aC90by9zdG9yZS9iYXNoDQogICAgICAjIEEgd3JhcHBlciBu YW1lZCBndWl4IGxpdmVzIGluIC91c3IvYmluLyBvciAvdXNyL2xvY2FsL2Jpbg0KICAgICAgZXhl YyAkSE9NRS8uY29uZmlnL2d1aXgvY3VycmVudC9iaW4vZ3VpeCAiJEAiDQoNCkkgbWlnaHQgYmUg d3JvbmcsIHBsZWFzZSBmb3JnaXZlIG15IHBvb3Iga25vd2xlZGdlLg0KDQo+IEd1aXhTRCB3aWxs IGhhdmUgdGhlIHJpZ2h0IFBBVEggYW5kIElORk9QQVRIIGJ5IGRlZmF1bHQsIHRob3VnaC4NCj4N Cj4+PiBDYXZlYXRzOg0KPj4+DQo+Pj4gICAxLiBUaGUgfi8uY29uZmlnL2d1aXgvY3VycmVudCBw cm9maWxlIHJlYWxseSBsaXZlcyB0aGVyZS4gIFRoYXQgaXMsDQo+Pj4gICAgICB1bmxpa2Ugfi8u Z3VpeC1wcm9maWxlLCBpdOKAmXMgbm90IGluIC92YXIvZ3VpeC9wcm9maWxlcy9wZXItdXNlci4N Cj4+PiAgICAgIFRoYXQgY291bGQgYmUgYW4gaXNzdWUgZm9yIGNsdXN0ZXIgc2V0dXBzIHdoZXJl IGhvbWUgZGlyZWN0b3JpZXMNCj4+PiAgICAgIGFyZSBub3Qgc2Nhbm5lZCBieSB0aGUgR3VpeCBH Qy4gIENsdXN0ZXIgZm9sa3MsIHBsZWFzZSB0ZWxsIG1lIQ0KPj4NCj4+IFdoYXQgZG9lcyB0aGF0 IG1lYW4/IFdlIGhhdmUgYSBndWl4IGRpcmVjdG9yeSB1bmRlciAkSE9NRS8uY29uZmlnLA0KPj4g aW5zaWRlIHRoZXJlJ3MgYSBzeW1saW5rIHRvIC9nbnUvc3RvcmUvLi4uLWd1aXgtPGNvbW1pdD4u IERvZXMgInJlYWxseQ0KPj4gbGl2ZXMgdGhlcmUiIG1lYW4gdGhlIG5ldyBwcm9maWxlIGlzIG5v dCBhIHN5bWxpbmsgYnV0IGEgY29uY3JldGUNCj4+IGRpcmVjdG9yeSBvciBoYXJkIGxpbms/DQo+ DQo+IFBsZWFzZSBzZWUgaG93IH4vLmd1aXgtcHJvZmlsZSBhbmQNCj4gL3Zhci9ndWl4L3Byb2Zp bGVzL3Blci11c2VyLyRVU0VSL2d1aXgtcHJvZmlsZSB3b3JrIHRvZ2V0aGVyLiAgQmFzaWNhbGx5 DQo+IGdlbmVyYXRpb25zIHNob3cgdXAgaW4gL3Zhci9ndWl4L3Byb2ZpbGVzLCB3aGVyZWFzIH4v Lmd1aXgtcHJvZmlsZSBpcyBhDQo+IGZpeGVkIHN5bWxpbmsuDQo+DQoNClRoYW5rcyBmb3IgdGhl IGV4cGxhbmF0aW9uLCBidXQgcnVubmluZyAkbHMgc2hvd3M6DQoNCmxyd3hyd3hyd3guIDEgZmlz IGZpcyA0NCBNYXIgMjggMTY6NDEgLmd1aXgtcHJvZmlsZSAtPiAvdmFyL2d1aXgvcHJvZmlsZXMv cGVyLXVzZXIvZmlzL2d1aXgtcHJvZmlsZQ0KDQpZb3UgYXJlIHRhbGtpbmcgYWJvdXQgdGhlIHNh bWUgZGlyZWN0b3J5DQoiL3Zhci9ndWl4L3Byb2ZpbGVzL3Blci11c2VyLyRVU0VSL2d1aXgtcHJv ZmlsZSIgYW5kICJ+Ly5ndWl4LXByb2ZpbGUiLg0KDQpUaGF0J3MgZmluZSwgSSBhbSB3YWl0aW5n IGZvciB0aGUgbmV3IGZlYXR1cmUgdG8gbGFuZCBob21lIGluIG15DQpkZXZpY2UgYW55d2F5LiBJ IHdpbGwgaW5zcGVjdCBtb3JlIGNsb3NlbHkgdGhlbi4NCg0KPj4+ICAgMy4gQysrIGNvZGUgaXMg bm90IGJ1aWx0LiAgSSB3b25kZXIgd2hpY2ggd2lsbCBjb21lIGZpcnN0OiBnZXR0aW5nIHJpZA0K Pj4+ICAgICAgb2YgdGhlIEMrKyBjb2RlLCBvciBidWlsZGluZyBpdD8gIDotKQ0KPj4+DQo+PiBJ biB0aGUgZnV0dXJlIHdvcmxkLCBob3cgZG8gd2UgdXBkYXRlIGd1aXggZGFlbW9uPyBJcyd0IHN0 aWxsIHJ1bm5pbmcNCj4+IGd1aXggcHVsbCAmJiBndWl4IHBhY2thZ2UgLXUgdW5kZXIgcm9vdCB1 c2VyPw0KPg0KPiBJbiB0aGUgZnV0dXJlIHdvcmxkLCDigJhndWl4IHB1bGzigJkgdXBkYXRlcyBl dmVyeXRoaW5nOiBjbGllbnQtc2lkZSBhbmQNCj4gZGFlbW9uLiAgQ3VycmVudGx5IGl04oCZcyBz dGlsbCBjbGllbnQtc2lkZSBvbmx5Lg0KPg0KDQpUaGF0IHNvdW5kcyByZWFsbHkgbmljZSEgVGhh bmtzIQ0KDQo+IEhUSCENCj4NCg0KSW50ZXJlc3RpbmcsIHlvdSBuZXZlciBydW4gb3V0IG9mIGFj cm9ueW0gOikuIElmIGl0IG1lYW5zICJob3BlIHRoaXMNCmhlbHAiLCBzdXJlLCB0aGFua3MgZm9y IHRoZSByZXBseS4NCg0KPiBMdWRv4oCZLg0K From unknown Tue Aug 19 23:11:30 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#22629: closed (Re: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix) Message-ID: References: <87efhgi880.fsf@gnu.org> <87vb5vsffd.fsf@gnu.org> X-Gnu-PR-Message: they-closed 22629 X-Gnu-PR-Package: guix Reply-To: 22629@debbugs.gnu.org Date: Sat, 09 Jun 2018 10:08:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1528538882-16801-1" This is a multi-part message in MIME format... ------------=_1528538882-16801-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #22629: Towards a new 'guix pull' which was filed against the guix package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 22629@debbugs.gnu.org. --=20 22629: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D22629 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1528538882-16801-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 22629-done) by debbugs.gnu.org; 9 Jun 2018 10:07:38 +0000 Received: from localhost ([127.0.0.1]:40329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRamX-0004ML-T8 for submit@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:38 -0400 Received: from eggs.gnu.org ([208.118.235.92]:37665) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRamW-0004M8-G9 for 22629-done@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRamQ-00047g-11 for 22629-done@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:31 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45456) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRamP-00047a-Tl for 22629-done@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:29 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=47764 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fRamP-0004mh-AU for 22629-done@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:29 -0400 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: 22629-done@debbugs.gnu.org Subject: Re: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> Date: Sat, 09 Jun 2018 12:07:27 +0200 In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> ("Ludovic \=\?utf-8\?Q\?Cou\?\= \=\?utf-8\?Q\?rt\=C3\=A8s\=22's\?\= message of "Thu, 31 May 2018 16:43:33 +0200") Message-ID: <87efhgi880.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22629-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello Guix! Ludovic Court=C3=A8s skribis: > Here is the =E2=80=9Cnew=E2=80=9D =E2=80=98guix pull=E2=80=99 that we dis= cussed notably in this thread: > > https://bugs.gnu.org/22629 > > The major difference is that instead of just building a bunch of modules > and putting them under ~/.config/guix/latest, it now produces a > standalone package (with bin/guix, share/info/guix.info, etc.) and puts > it in a profile under ~/.config/guix/current. Quoth the manual: I have just pushed the new =E2=80=98guix pull=E2=80=99, with a few improvem= ents compared to the patches I had sent: =E2=80=A2 Both guix.info and all of guix.LANG.info are now built. =E2=80=A2 The derivation that builds locale data depends only on the po/ directory, so it won=E2=80=99t be rebuilt every time. Likewise for the derivation that builds the manual. =E2=80=A2 Meta-data about what was pulled is kept in manifest entries, us= ing the =E2=80=98properties=E2=80=99 discussed in . Currently the UI doesn=E2=80=99t use it but you can see that info in ~/.config/guix/current/manifest. Let me know how it goes! Ludo=E2=80=99. ------------=_1528538882-16801-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 11 Feb 2016 10:35:36 +0000 Received: from localhost ([127.0.0.1]:35689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTob2-0000j8-LV for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:36 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38582) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTob0-0000iw-BS for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aToau-0002uC-8F for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:29 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:60338) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToau-0002u8-5A for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:28 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57781) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToat-0007jR-4H for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aToao-0002tW-QE for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:26 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52848) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToao-0002tS-Nu for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:22 -0500 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:60334 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aToao-0007Cj-4w for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:22 -0500 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: bug-guix@gnu.org Subject: Towards a new 'guix pull' X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 23 =?utf-8?Q?Pluvi=C3=B4se?= an 224 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x3D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Thu, 11 Feb 2016 11:35:18 +0100 Message-ID: <87vb5vsffd.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.3 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.3 (-----) Hello! Here=E2=80=99s a series of improvements that I think we should make in =E2= =80=98guix pull=E2=80=99: =E2=80=A2 Use Git instead of downloading a whole snapshot every time. Th= e Git checkout would be kept in ~/.cache/guix/pull/checkouts, say. A related question is whether to use Git itself, which is pretty big per =E2=80=98guix size=E2=80=99, or to use some libgit2 bindings such as (the closure of libgit2 is 435=C2=A0MiB; that of Git is 761=C2=A0MiB.) =E2=80=A2 Build & install not only Scheme code, but also locales and the = Info manual. =E2=80=A2 Have a =E2=80=9Cchannel=E2=80=9D mechanism, similar to =E2=80= =98nix-channel=E2=80=99, that would allow users to have several Guix variants available in parallel instead of just =E2=80=9Clatest=E2=80=9D. Could work like this: guix channel add latest git://git.sv.gnu.org/guix.git master guix channel add stable git://git.sv.gnu.org/guix.git stable guix channel pull latest guix channel set latest # here i see the latest versions of everything guix channel set stable # and here everything is old but super stable ;-) All 3 items can be done separately, I think. Any takers? :-) Ludo=E2=80=99. PS: I do not mention the issue of authenticating code here, which is obviously very important and deserves to be treated separately. Related to that is the question of making sure that what you think is the latest version really is the latest version. We need someone to sign certificates saying what the latest commit ID of a repo is. See the =E2=80=9CThe Update Framework=E2=80=9D paper! ------------=_1528538882-16801-1-- From unknown Tue Aug 19 23:11:30 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Maxim Cournoyer Subject: bug#28471: closed (Re: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix) Message-ID: References: <87efhgi880.fsf@gnu.org> <87tw03r91x.fsf@gmail.com> X-Gnu-PR-Message: they-closed 28471 X-Gnu-PR-Package: guix Reply-To: 28471@debbugs.gnu.org Date: Sat, 09 Jun 2018 10:08:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1528538882-16801-3" This is a multi-part message in MIME format... ------------=_1528538882-16801-3 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #22629: guix pull doesn't update the user manual which was filed against the guix package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 28471@debbugs.gnu.org. --=20 22629: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D22629 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1528538882-16801-3 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 22629-done) by debbugs.gnu.org; 9 Jun 2018 10:07:38 +0000 Received: from localhost ([127.0.0.1]:40329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRamX-0004ML-T8 for submit@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:38 -0400 Received: from eggs.gnu.org ([208.118.235.92]:37665) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fRamW-0004M8-G9 for 22629-done@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRamQ-00047g-11 for 22629-done@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:31 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45456) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRamP-00047a-Tl for 22629-done@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:29 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=47764 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fRamP-0004mh-AU for 22629-done@debbugs.gnu.org; Sat, 09 Jun 2018 06:07:29 -0400 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: 22629-done@debbugs.gnu.org Subject: Re: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> Date: Sat, 09 Jun 2018 12:07:27 +0200 In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> ("Ludovic \=\?utf-8\?Q\?Cou\?\= \=\?utf-8\?Q\?rt\=C3\=A8s\=22's\?\= message of "Thu, 31 May 2018 16:43:33 +0200") Message-ID: <87efhgi880.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22629-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello Guix! Ludovic Court=C3=A8s skribis: > Here is the =E2=80=9Cnew=E2=80=9D =E2=80=98guix pull=E2=80=99 that we dis= cussed notably in this thread: > > https://bugs.gnu.org/22629 > > The major difference is that instead of just building a bunch of modules > and putting them under ~/.config/guix/latest, it now produces a > standalone package (with bin/guix, share/info/guix.info, etc.) and puts > it in a profile under ~/.config/guix/current. Quoth the manual: I have just pushed the new =E2=80=98guix pull=E2=80=99, with a few improvem= ents compared to the patches I had sent: =E2=80=A2 Both guix.info and all of guix.LANG.info are now built. =E2=80=A2 The derivation that builds locale data depends only on the po/ directory, so it won=E2=80=99t be rebuilt every time. Likewise for the derivation that builds the manual. =E2=80=A2 Meta-data about what was pulled is kept in manifest entries, us= ing the =E2=80=98properties=E2=80=99 discussed in . Currently the UI doesn=E2=80=99t use it but you can see that info in ~/.config/guix/current/manifest. Let me know how it goes! Ludo=E2=80=99. ------------=_1528538882-16801-3 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 15 Sep 2017 20:39:24 +0000 Received: from localhost ([127.0.0.1]:43140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dsxOV-0004h3-Va for submit@debbugs.gnu.org; Fri, 15 Sep 2017 16:39:24 -0400 Received: from eggs.gnu.org ([208.118.235.92]:36591) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dsxOS-0004gp-8n for submit@debbugs.gnu.org; Fri, 15 Sep 2017 16:39:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dsxOM-000184-CO for submit@debbugs.gnu.org; Fri, 15 Sep 2017 16:39:15 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:47584) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dsxOM-00017e-9v for submit@debbugs.gnu.org; Fri, 15 Sep 2017 16:39:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55789) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dsxOL-0008T3-Bp for bug-guix@gnu.org; Fri, 15 Sep 2017 16:39:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dsxOI-0000zG-9G for bug-guix@gnu.org; Fri, 15 Sep 2017 16:39:13 -0400 Received: from mail-it0-x231.google.com ([2607:f8b0:4001:c0b::231]:54746) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dsxOI-0000vo-4n for bug-guix@gnu.org; Fri, 15 Sep 2017 16:39:10 -0400 Received: by mail-it0-x231.google.com with SMTP id e134so4729885ite.3 for ; Fri, 15 Sep 2017 13:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=alVuVkGvTiGZt7eo9oMPVrxhJIP1JiKGpxJv57PlG7k=; b=HWY3wAQG0kh1CgKYSsq0vnpbBPrfLc6hSEl/U7v4yIhK8ioHJLlMRh0UoaiS5EY8eI yvnXDeJz7XpTaNzyVxuOSO0zcQSNq5ewsjjRnMkGB7UBRcHIm4iAME7jMDkJaAGi3WX9 PAACvsUPLkLdzRZqIUOhf2+r/Ut4VJ2lbav3vvxvhqV1qfONd/X1cHBCtLAKa+wfUYg0 W2KC2z5laW308Ty24OpKnXCfAIBq4+Q/LXdEBVDOvvZ1jP3pyv4cpcAwNWUFSrjT6ctL G1de/FT8/KdYXhwq1W7LIgKTiUJCR8UX4vsILurNIUlu9znrYQiBSElMuP7qC4PDuutm 3nNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=alVuVkGvTiGZt7eo9oMPVrxhJIP1JiKGpxJv57PlG7k=; b=s0vxzOBo0uJB9qjx0hA6TKauDbnnmrhQso9Uy4uPEhqp9qQo3X8rt8K+haXsDhJz0b auVbTJlMuWc6xVjKYztZjq7F/xxO7yQw4pZjSCjUrCwIa55vM3NGCx26yWvU1FbE+0Rm Ou8xgIi0Nu5HKLVUI7ZDkbasNbbg4MTfwuYglvzEzOM2oL6fmN/P2f8xn02vRhcri2rX jjxpFWvh2LaAduB+QBD+nWZSTq3QJRwSsbv6e3e/uMAZyN7ozeRFSBOnrBZXFz+yXbVf wxu3Bo4sqeB4rZp5n16HylTxtqG15DMbBMcCMI/NKsK6bUYhQvNpzgd9EYGxdWXPwlkY i4dw== X-Gm-Message-State: AHPjjUilVElvtVkL3asE4myrHJl8g0LeSJvSnnGyYTpIQyY9M3xeGJMY LDMh+o1GpgbB3Lv+ X-Google-Smtp-Source: AOwi7QCpaoGXeQ6pLHPdx31vaXP8pcaM31cPa0RBw5Pn4PTLi27Mt7YpZeFS+kQMqiWv0wSPKJ3wLQ== X-Received: by 10.36.4.151 with SMTP id 145mr7871619itb.33.1505507947863; Fri, 15 Sep 2017 13:39:07 -0700 (PDT) Received: from apteryx ([45.72.233.254]) by smtp.gmail.com with ESMTPSA id d3sm868408iog.0.2017.09.15.13.39.07 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Sep 2017 13:39:07 -0700 (PDT) From: Maxim Cournoyer To: bug-guix Subject: guix pull doesn't update the user manual Date: Fri, 15 Sep 2017 16:39:06 -0400 Message-ID: <87tw03r91x.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) guix pull should build and install the latest documentation of Guix to the user profile so that `info guix' always displays the current documentation. This seems to confuse Guix users every now and then, myself included, and the work around of cloning a full copy of the guix sources just to build the manual is not user friendly nor trivial. ------------=_1528538882-16801-3-- From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: bug#28471: closed (Re: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix) Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 13 Jun 2018 21:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org, 28471@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.152892639923592 (code B ref 22629); Wed, 13 Jun 2018 21:47:01 +0000 Received: (at 22629) by debbugs.gnu.org; 13 Jun 2018 21:46:39 +0000 Received: from localhost ([127.0.0.1]:46985 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fTDbC-00068S-MN for submit@debbugs.gnu.org; Wed, 13 Jun 2018 17:46:38 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33956) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fTDbB-00068A-Hy for 22629@debbugs.gnu.org; Wed, 13 Jun 2018 17:46:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fTDb5-0004FM-Hy for 22629@debbugs.gnu.org; Wed, 13 Jun 2018 17:46:32 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33444) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fTDaz-0004Bo-2g; Wed, 13 Jun 2018 17:46:25 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=58782 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fTDay-0003dt-M4; Wed, 13 Jun 2018 17:46:24 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87efhgi880.fsf@gnu.org> <87tw03r91x.fsf@gmail.com> Date: Wed, 13 Jun 2018 23:46:23 +0200 In-Reply-To: (GNU bug Tracking System's message of "Sat, 09 Jun 2018 10:08:02 +0000") Message-ID: <87bmcenyvk.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello! > =E2=80=A2 Meta-data about what was pulled is kept in manifest entries, = using > the =E2=80=98properties=E2=80=99 discussed in . > Currently the UI doesn=E2=80=99t use it but you can see that info in > ~/.config/guix/current/manifest. Commit e2f8be0664609223369f01290b69b44196783ab3 adds =E2=80=98guix pull -l= =E2=80=99, which produces output like this: --8<---------------cut here---------------start------------->8--- Generation 1 Jun 10 2018 00:18:18 guix 65956ad repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe Generation 2 Jun 11 2018 11:02:49 guix e0cc7f6 repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d Generation 3 Jun 13 2018 23:31:07 (current) guix 844cc1c repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 844cc1c8f394f03b404c5bb3aee086922373490c --8<---------------cut here---------------end--------------->8--- In the future it could also display information such as the number of packages available, the number of added/upgraded packages, and so on. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: Chris Marusich Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 19 Jul 2018 04:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153197557328243 (code B ref 22629); Thu, 19 Jul 2018 04:47:01 +0000 Received: (at 22629) by debbugs.gnu.org; 19 Jul 2018 04:46:13 +0000 Received: from localhost ([127.0.0.1]:47412 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fg0pR-0007LS-38 for submit@debbugs.gnu.org; Thu, 19 Jul 2018 00:46:13 -0400 Received: from mail-pf0-f180.google.com ([209.85.192.180]:39865) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fg0pN-0007LD-CH for 22629@debbugs.gnu.org; Thu, 19 Jul 2018 00:46:09 -0400 Received: by mail-pf0-f180.google.com with SMTP id j8-v6so3259315pff.6 for <22629@debbugs.gnu.org>; Wed, 18 Jul 2018 21:46:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=pIKcrcOkyH8KJC3Ze02I0qsOnupm3e60qKagojt6Lis=; b=ANK11y/sjGxT9oMjaVexJtAPnEs7mO3jMtVHR9ZyLgHF8+dcg2bTMew394goCoX7d3 MNuD0uERA3uKPc6vwcDlPy2/+3hMN+l5p3aYtTR+z46jREFK1+Pl1ZnRNBW4SV5G13oY 1qUpkCFm0QvO23BmpW3ssmM8QchvG3XLxaLdpZhCrj1P9JSS0jjEPWREuvYjHGxXV2ZQ chsILxYBLI5Q2ku4P1aWtlVcZ6Z9YOo9D9w2e/mguTOWik4KtmNM03311fGIGTnjjTYO SJTKTOCcihKoM74ElAFLg214+iB14Iji7PW05Rwz0WKu2ABJsDSoxexvEBUYCVlp6aaM hRnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=pIKcrcOkyH8KJC3Ze02I0qsOnupm3e60qKagojt6Lis=; b=DKcEFGIH6kEIuZMrfW7+1s4X6eakFi52jpwiD/jDBLMSHwnDJ1WwqxWJNe9mGC+2VP HaDlf7VT0psG4ZUxJcLR+/rbJM8tZdV7zIANHU1DPDpyYQDSUYL/+LE0bvmYcpARPsn1 J/MpI6qXj/XYRe9gaJ2zIwHF+phsslq0eBw8uwXaUHa8Q/R+8Vi1DlMl92ojfvpj8XnI z3ExZpHltUFWxClLINz98HR20Bw7vREW+Z8G2qz3NG/OryEZKY2id1oLhv0dQWzkVuJw DKxMuDjOW2gF0PmPXHmwft4AoIqWf8eiBhZ9BnsZ8Lvf99X6rWzUuTLBOIc81ID0G9vL PNsg== X-Gm-Message-State: AOUpUlET/x4vVG5mzYYIfXHsQovSufnh6SiOBBtGQQrGNCiLHeOCXHsc 2mAWudxbDnESUM/B8prOMD6sww== X-Google-Smtp-Source: AAOMgpeOWpFuRWjErFSoXaKPUPyT9ovkbwS/kCTiIeOO5XzrbBMU0v16KyRvuIGXzr8au6DSjfoxtw== X-Received: by 2002:a63:ed56:: with SMTP id m22-v6mr8433772pgk.148.1531975562822; Wed, 18 Jul 2018 21:46:02 -0700 (PDT) Received: from garuda.local ([2601:602:9d02:4725:6495:ba21:1ebe:620a]) by smtp.gmail.com with ESMTPSA id g15-v6sm13926937pfg.98.2018.07.18.21.46.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 18 Jul 2018 21:46:01 -0700 (PDT) From: Chris Marusich References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> Date: Wed, 18 Jul 2018 21:45:51 -0700 In-Reply-To: <20180531144337.16298-1-ludo@gnu.org> ("Ludovic \=\?utf-8\?Q\?Cou\?\= \=\?utf-8\?Q\?rt\=C3\=A8s\=22's\?\= message of "Thu, 31 May 2018 16:43:33 +0200") Message-ID: <87601bkf40.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo, Ludovic Court=C3=A8s writes: > Here is the =E2=80=9Cnew=E2=80=9D =E2=80=98guix pull=E2=80=99 that we dis= cussed notably in this thread: > > https://bugs.gnu.org/22629 Although I've been enjoying the new guix pull for a while now, I just today found the time to take a peek at these code changes. It's always educational to see how you write your code! I was surprised that "guix pull" doesn't build the guix package via the usual mechanisms (e.g., the way it would be built if I ran "guix build guix"). The new "guix pull" code builds a profile, so it seems like we could put packages in there (e.g., a guix package that inherits from the original but replaces the origin with a Git checkout). However, instead of re-using the build logic encapsulated in the guix package, it looks like we build Guix piece by piece using custom build logic in (guix self). Why do we do that? These improvements are great! I'm just curious about the motivation for the custom build logic. I'm guessing there is some sort of complication to simply using the guix package that is non-obvious, but I can't see what it is. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAltQF38ACgkQ3UCaFdgi Rp1ZBw//aibeMy1QxaCnUWh1W9vlZHJz8WyieYt6ivh3KEeiQk8UAgTe72MckmH7 MGCKKaztZVyezJeqzg6YNxOnGCHOfVPav/RdC6K8crrE3xw9XHFIZlFzxfp/BGnD 5n3nI7xTnrVqOhrNl/O7Hw+PKu/ICoZsT26TZhDG/rcxDauDdRFrId8fGEx+/I7k NcHIi25l2hRHbGEQa/9zmO+8XKRxqUzuhObl2pFDj8cU32I7MxkvVzlhYyJl8q6F rdFN3pthu49ljq8mr1ExcpqUCcrpW0aRnnYL6ONsd6JfgYqt++EsN049NA0Q5wd/ 9Fu5pk3OGUSD8/Xt3CG+nfnTmpqpDDHgUaF6AmB14Xm1melvgdjhx7l1IRcm6IwF phcDVFOKFQ96e2nVs6e4KzwC9/OQYpVsF07gPNTKewbmjC3jBIiq/4T5OTSw58f/ joB0Ne8eOvQ2iwz5CurTJJ/uW27Smlw5teSvzXKTZW/pzKGPvGC651cvmRRTicVK gYBdHu5A3ISIJLkkjZMrrervmPK2nwc0vgEV/YtCmT6LkFS3quXpyan8L/2M3S9y mc6EvfsQfLQ1vTFz5gD9ueY4ph22r8Gf2uEZk6zDm3MCLOk93/A9K6JWxxyxzsnR ICM1FZa/BXmNFldqnSjts9wm/BSCuhMGJ0L3WClwwZx1WcLzVsU= =Cdz8 -----END PGP SIGNATURE----- --=-=-=-- From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 19 Jul 2018 12:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Chris Marusich Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153200254930775 (code B ref 22629); Thu, 19 Jul 2018 12:16:02 +0000 Received: (at 22629) by debbugs.gnu.org; 19 Jul 2018 12:15:49 +0000 Received: from localhost ([127.0.0.1]:47595 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fg7qX-0007zz-3D for submit@debbugs.gnu.org; Thu, 19 Jul 2018 08:15:49 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43908) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fg7qV-0007uY-EA for 22629@debbugs.gnu.org; Thu, 19 Jul 2018 08:15:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fg7qM-0005JD-NI for 22629@debbugs.gnu.org; Thu, 19 Jul 2018 08:15:41 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52205) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fg7qM-0005J0-Gk; Thu, 19 Jul 2018 08:15:38 -0400 Received: from [193.50.110.227] (port=51310 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fg7qL-0006Xc-Jp; Thu, 19 Jul 2018 08:15:38 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87fu45ve2z.fsf@gnu.org> <20180531144337.16298-1-ludo@gnu.org> <87601bkf40.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 1 Thermidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 19 Jul 2018 14:15:35 +0200 In-Reply-To: <87601bkf40.fsf@gmail.com> (Chris Marusich's message of "Wed, 18 Jul 2018 21:45:51 -0700") Message-ID: <87fu0fv2u0.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello Chris, Thanks for your feedback! Chris Marusich skribis: > I was surprised that "guix pull" doesn't build the guix package via the > usual mechanisms (e.g., the way it would be built if I ran "guix build > guix"). The new "guix pull" code builds a profile, so it seems like we > could put packages in there (e.g., a guix package that inherits from the > original but replaces the origin with a Git checkout). However, instead > of re-using the build logic encapsulated in the guix package, it looks > like we build Guix piece by piece using custom build logic in (guix > self). Why do we do that? There=E2=80=99s a couple of problems that we=E2=80=99re trying to fix, whic= h were discussed at : 1. Bootstrapping: how do we built a new Guix from an already-installed, older Guix? 2. Efficiency: how do we avoid recompiling every since Scheme file at each revision? The answer to #2 is, of course, to have a finer-grain view on what needs to be built. We have makefiles that have view at the file level, and here we essentially want to do what makefiles do, but we also want to introduce dependencies (our makefiles do not declare dependencies among Scheme files, which sometimes lead to those infamous ABI issues.) We could have defined package objects to describe each of the various subparts of Guix: a =E2=80=9Cguix-core=E2=80=9D package, a =E2=80=9Cguix-pa= ckages=E2=80=9D package, etc. But it=E2=80=99s not a good fit: these aren=E2=80=99t really packages, ther= e=E2=80=99s no UI to access them as such anyway, and we=E2=80=99re closer to the abstraction lev= el of a makefile than to the abstraction level of a package. So I chose to define a custom type in (guix self). Each node represents a group of files, in particular Scheme files that need to be compiled; nodes can have edges (the =E2=80=98dependencies=E2=80=99 field). = On top of that there are helper procedures to create and manipulate nodes. For instance, =E2=80=98scheme-nodes=E2=80=99 creates a node that builds the clo= sure of a list of .scm files, minus the files already built by its dependencies. The end result is that the full Guix consists of half a dozen of Scheme derivations. Derivations at the root of the DAG (e.g., =E2=80=9Cguix-core= =E2=80=9D) hopefully change quite infrequently, and as such we don=E2=80=99t have to rebuild everything at each revision. As I wrote before in the issue above, there=E2=80=99s room for improvement.= In particular we could split nodes further. I hope this clarifies things! Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 28 Aug 2018 15:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.1535469407857 (code B ref 22629); Tue, 28 Aug 2018 15:17:02 +0000 Received: (at 22629) by debbugs.gnu.org; 28 Aug 2018 15:16:47 +0000 Received: from localhost ([127.0.0.1]:35799 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fufjW-0000Df-D4 for submit@debbugs.gnu.org; Tue, 28 Aug 2018 11:16:46 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46092) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fufjT-0000DR-Rs for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:16:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fufjL-0007r2-7X for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:16:34 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46805) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fufjL-0007qw-2q for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:16:31 -0400 Received: from [193.50.110.186] (port=47834 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fufjK-0001td-OP for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:16:30 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> Date: Tue, 28 Aug 2018 17:16:29 +0200 In-Reply-To: <87vb5vsffd.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 11 Feb 2016 11:35:18 +0100") Message-ID: <87pny2iks2.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Guix! ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > =E2=80=A2 Have a =E2=80=9Cchannel=E2=80=9D mechanism, similar to =E2=80= =98nix-channel=E2=80=99, that would > allow users to have several Guix variants available in parallel > instead of just =E2=80=9Clatest=E2=80=9D. Could work like this: > > guix channel add latest git://git.sv.gnu.org/guix.git master > guix channel add stable git://git.sv.gnu.org/guix.git stable > guix channel pull latest > guix channel set latest > # here i see the latest versions of everything > guix channel set stable > # and here everything is old but super stable ;-) The patches that follow implement this last bit, though in a slightly different way. Users would now have the option to provide ~/.config/guix/channels.scm along these lines: (cons (channel (name 'guix-hpc) (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git") (branch "origin/master")) %default-channels) =E2=80=98guix pull=E2=80=99 then pulls both from =E2=80=98%default-channels= =E2=80=99, a one-element list containing our Savannah repo, and from that =E2=80=98guix-hpc=E2=80=99 repo= . It builds both Guix itself and the modules in =E2=80=98guix-hpc=E2=80=99, with a depe= ndency on the just-built Guix. The ~/.config/guix/current profile then contains two entries: --8<---------------cut here---------------start------------->8--- $ guix pull -l [=E2=80=A6] Generacio 18 Aug 27 2018 09:54:40 guix 1ca5499 repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 1ca54999db34b0197e6c7fa3f0a852fc0d193e70 10 new packages: avogadro, emacs-git-annex, find-circ, guile-aa-tree, lep= ton-eda, r-a3, r-abcanalysis, r-manipulatewidget, r-miniui, r-slam 43 packages upgraded: byobu@5.127, cpupower@4.18.5, darcs@2.14.1, drumkv1= @0.9.2, duplicity@0.7.18, emacs-recent-addresses@0.1-1.afbbfdc, font-gnu-unifont@11.0.02, freefal= l@4.18.5, gdb-arm-none-eabi@8.1.1, gdb@8.1.1, ghc-integer-logarithms@1.0.2.1, ghc-optparse-applicative@0.1= 4.2.0, ghc-quickcheck-instances@0.3.18, ghc-scientific@0.3.6.2, ghc-smallcheck@1.1.5, ghc-zlib@0.6.2, guile-lib= @0.2.6.1, guile2.0-lib@0.2.6.1, guile2.2-lib@0.2.6.1, keepassxc@2.3.4, libgig@4.1.0, libx11@1.6.6, linu= x-libre-arm-generic@4.18.5, linux-libre-arm-omap2plus@4.18.5, linux-libre@4.18.5, ncmpc@0.29, opens= sh@7.8p1, padthv1@0.9.2, parallel@20180822, perf@4.18.5, qjackctl@0.5.3, r-car@3.0-1, r-catools@= 1.17.1.1, r-devtools@1.13.6, r-digest@0.6.16, r-dplyr@0.7.6, r-rcpp@0.12.18, r-synchronicity@1.3.5, = r-trimcluster@0.1-2.1, samplv1@0.9.2, synthv1@0.9.2, tuxguitar@1.5.2, yubico-piv-tool@1.6.1 Generacio 19 Aug 27 2018 16:20:48 guix d894ab8 repository URL: file:///home/ludo/src/guix branch: origin/wip-channels commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300 guix-hpc dd3df5e repository URL: file:///home/ludo/src/guix-hpc branch: origin/wip-channel-test commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb 11 new packages: chameleon, eztrace, fxt, litl, maphys, pastix, simgrid, = starpu, starpu, starpu-fxt, starpu-simgrid 4 packages upgraded: capstone@3.0.5-rc2, emacs-racket-mode@0.0.2-2.1b7882= 7, python-capstone@3.0.5-rc2, python2-capstone@3.0.5-rc2 --8<---------------cut here---------------end--------------->8--- GUIX_PACKAGE_PATH is no longer needed (though it=E2=80=99s still supported): ~/.config/guix/current/bin/guix automatically finds packages defined in the =E2=80=98guix-hpc=E2=80=99 channel. The only missing bit for this patch series is documentation for channels (including a prominent disclaimer about API compatibility). I=E2=80=99ll w= rite it if people agree with the overall approach. Implementation ~~~~~~~~~~~~~~ (guix channels) implements the =E2=80=9Cchannel=E2=80=9D and =E2=80=9Cchann= el instance=E2=80=9D abstractions. It provides tools to get the latest instance of channel and to build a list of instances. There must always be a channel called =E2=80=98guix=E2=80=99, which all other instances depend on. (guix scripts pull) now does little more than implementing the CLI, while (guix channels) does all the heavy lifting. Limitations ~~~~~~~~~~~ Currently third-party channels are expected to provide nothing but package modules. Those package modules should live at the root of the repository; for example, the modules/ directory at https://gitlab.inria.fr/guix-hpc/guix-hpc doesn=E2=80=99t work, you have to =E2=80=9Cgit mv modules/inria .=E2=80=9D for things to work. Both limitations could be lifted by honoring a special meta-data file in repositories. But I think that can come later. Third-party channels currently all implicitly depend on the =E2=80=98guix= =E2=80=99 channel, but it=E2=80=99s not possible to express dependencies among channe= ls. It may be useful, but it can probably come later, too. If a channel fails to build, the user gets a backtrace and it=E2=80=99s up = to them to figure out what to do. May need to be improved. :-) Not really a limitation, but (guix describe) relies on argv[0] to find channel meta-data. I=E2=80=99m not a fan of that but it works in practice. More importantly, it=E2=80=99s the only way I could think of to retrieve =E2=80=9Csilent=E2=80=9D meta-data (repo URL, commit, etc.) as well as chan= nel directories where packages should be searched for. Future work ~~~~~~~~~~~ With (guix channels) we=E2=80=99ll be able to implement things like =E2=80= =9Copen an inferior corresponding to commit X=E2=80=9D. In turn, that means we can su= pport commit IDs in manifests, and then =E2=80=9Cguix package -m manifest.scm=E2= =80=9D will open an inferior for the requested commit ID and instantiate the thing. With (guix describe) we can, of course, implement a =E2=80=98guix describe= =E2=80=99 command. We can also improve provenance tracking, for instance by storing as a manifest entry property the channel instance an installed package comes from. Thoughts? Ricardo? Thanks in advance for your feedback! Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 1/3] discovery: Add 'scheme-modules*'. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 28 Aug 2018 15:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15354694981052 (code B ref 22629); Tue, 28 Aug 2018 15:19:01 +0000 Received: (at 22629) by debbugs.gnu.org; 28 Aug 2018 15:18:18 +0000 Received: from localhost ([127.0.0.1]:35809 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fufl4-0000Gt-2h for submit@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:18 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47221) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fufl2-0000GX-C0 for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fufkw-0000UX-IF for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:11 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46890) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fufkp-0000RT-PL; Tue, 28 Aug 2018 11:18:03 -0400 Received: from [193.50.110.186] (port=47860 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fufkp-00025l-GU; Tue, 28 Aug 2018 11:18:03 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Tue, 28 Aug 2018 17:17:49 +0200 Message-Id: <20180828151751.4657-1-ludo@gnu.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <87pny2iks2.fsf@gnu.org> References: <87pny2iks2.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/self.scm (scheme-modules*): Move to... * guix/discovery.scm (scheme-modules*): ... here. New procedure. Make 'sub-directory' an optional parameter. --- guix/discovery.scm | 13 ++++++++++++- guix/self.scm | 7 ------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/guix/discovery.scm b/guix/discovery.scm index 2b627d108..3fc6e2c9e 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +27,7 @@ #:use-module (ice-9 ftw) #:export (scheme-files scheme-modules + scheme-modules* fold-modules all-modules fold-module-public-variables)) @@ -115,6 +116,16 @@ name and the exception key and arguments." (string-append directory "/" sub-directory) directory)))) +(define* (scheme-modules* directory #:optional sub-directory) + "Return the list of module names found under SUB-DIRECTORY in DIRECTORY. +This is a source-only variant that does not try to load files." + (let ((prefix (string-length directory))) + (map (lambda (file) + (file-name->module-name (string-drop file prefix))) + (scheme-files (if sub-directory + (string-append directory "/" sub-directory) + directory))))) + (define* (fold-modules proc init path #:key (warn (const #f))) "Fold over all the Scheme modules present in PATH, a list of directories. Call (PROC MODULE RESULT) for each module that is found." diff --git a/guix/self.scm b/guix/self.scm index 90649db17..81f9b0cfd 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -206,13 +206,6 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (local-file file #:recursive? #t))) (find-files (string-append directory "/" sub-directory) pred))) -(define (scheme-modules* directory sub-directory) - "Return the list of module names found under SUB-DIRECTORY in DIRECTORY." - (let ((prefix (string-length directory))) - (map (lambda (file) - (file-name->module-name (string-drop file prefix))) - (scheme-files (string-append directory "/" sub-directory))))) - (define* (sub-directory item sub-directory) "Return SUB-DIRECTORY within ITEM, which may be a file name or a file-like object." -- 2.18.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 2/3] Add (guix describe) and use it to initialize '%package-search-path'. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 28 Aug 2018 15:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15354694981059 (code B ref 22629); Tue, 28 Aug 2018 15:19:02 +0000 Received: (at 22629) by debbugs.gnu.org; 28 Aug 2018 15:18:18 +0000 Received: from localhost ([127.0.0.1]:35811 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fufl4-0000Gv-Bh for submit@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:18 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fufl2-0000GY-Q6 for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fufkw-0000Up-Kw for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:11 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46891) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fufkr-0000Ru-Bt; Tue, 28 Aug 2018 11:18:06 -0400 Received: from [193.50.110.186] (port=47860 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fufkq-00025l-4b; Tue, 28 Aug 2018 11:18:05 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Tue, 28 Aug 2018 17:17:50 +0200 Message-Id: <20180828151751.4657-2-ludo@gnu.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180828151751.4657-1-ludo@gnu.org> References: <87pny2iks2.fsf@gnu.org> <20180828151751.4657-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/describe.scm: New file. * Makefile.am (MODULES): Add it. * gnu/packages.scm (%package-module-path): Honor 'package-path-entries'. --- Makefile.am | 1 + gnu/packages.scm | 22 ++++++++------ guix/describe.scm | 73 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 8 deletions(-) create mode 100644 guix/describe.scm diff --git a/Makefile.am b/Makefile.am index 324674a60..b6efd6d62 100644 --- a/Makefile.am +++ b/Makefile.am @@ -86,6 +86,7 @@ MODULES = \ guix/derivations.scm \ guix/grafts.scm \ guix/inferior.scm \ + guix/describe.scm \ guix/gnu-maintenance.scm \ guix/self.scm \ guix/upstream.scm \ diff --git a/gnu/packages.scm b/gnu/packages.scm index 7b954769e..e690d459f 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -30,6 +30,7 @@ #:select ((package-name->name+version . hyphen-separated-name->name+version))) #:autoload (guix profiles) (packages->manifest) + #:use-module (guix describe) #:use-module (ice-9 vlist) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -136,16 +137,21 @@ for system '~a'") ;; to narrow the search. (let* ((not-colon (char-set-complement (char-set #\:))) (environment (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "") - not-colon))) - ;; Automatically add items from $GUIX_PACKAGE_PATH to Guile's search path. - (for-each (lambda (directory) - (set! %load-path (cons directory %load-path)) - (set! %load-compiled-path - (cons directory %load-compiled-path))) - environment) + not-colon)) + (channels (package-path-entries))) + ;; Automatically add channels and items from $GUIX_PACKAGE_PATH to Guile's + ;; search path. For historical reasons, $GUIX_PACKAGE_PATH goes to the + ;; front; channels go to the back so that they don't override Guix' own + ;; modules. + (set! %load-path + (append environment %load-path channels)) + (set! %load-compiled-path + (append environment %load-compiled-path channels)) (make-parameter - (append environment `((,%distro-root-directory . "gnu/packages")))))) + (append environment + `((,%distro-root-directory . "gnu/packages")) + channels)))) (define %patch-path ;; Define it after '%package-module-path' so that '%load-path' contains user diff --git a/guix/describe.scm b/guix/describe.scm new file mode 100644 index 000000000..3122a762f --- /dev/null +++ b/guix/describe.scm @@ -0,0 +1,73 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix describe) + #:use-module (guix memoization) + #:use-module (guix profiles) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match) + #:export (package-path-entries)) + +;;; Commentary: +;;; +;;; This module provides supporting code to allow a Guix instance to find, at +;;; run time, which profile it's in (profiles created by 'guix pull'). That +;;; allows it to read meta-information about itself (e.g., repository URL and +;;; commit ID) and to find other channels available in the same profile. It's +;;; a bit like ELPA's pkg-info.el. +;;; +;;; Code: + +(define current-profile + (mlambda () + "Return the profile (created by 'guix pull') the calling process lives in, +or #f if this is not applicable." + (match (command-line) + ((program . _) + (and (string-suffix? "/bin/guix" program) + ;; Note: We want to do _lexical dot-dot resolution_. Using ".." + ;; for real would instead take us into the /gnu/store directory + ;; that ~/.config/guix/current/bin points to, whereas we want to + ;; obtain ~/.config/guix/current. + (let ((candidate (dirname (dirname program)))) + (and (file-exists? (string-append candidate "/manifest")) + candidate))))))) + +(define current-profile-entries + (mlambda () + "Return the list of entries in the 'guix pull' profile the calling process +lives in, or #f if this is not applicable." + (match (current-profile) + (#f '()) + (profile + (let ((manifest (profile-manifest profile))) + (manifest-entries manifest)))))) + +(define package-path-entries + (mlambda () + "Return a list of package path entries to be added to the package search +path. These entries are taken from the 'guix pull' profile the calling +process lives in, when applicable." + ;; Filter out Guix itself. + (filter-map (lambda (entry) + (and (not (string=? (manifest-entry-name entry) + "guix")) + (string-append (manifest-entry-item entry) + "/share/guile/site/" + (effective-version)))) + (current-profile-entries)))) -- 2.18.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH 3/3] DRAFT Add (guix channels) and use it in (guix scripts pull). Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 28 Aug 2018 15:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15354695011073 (code B ref 22629); Tue, 28 Aug 2018 15:19:02 +0000 Received: (at 22629) by debbugs.gnu.org; 28 Aug 2018 15:18:21 +0000 Received: from localhost ([127.0.0.1]:35814 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fufl6-0000HE-Ph for submit@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:21 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fufl5-0000Gb-1c for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fufkx-0000W1-Bv for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 11:18:13 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46892) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fufks-0000S3-64; Tue, 28 Aug 2018 11:18:07 -0400 Received: from [193.50.110.186] (port=47860 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fufkr-00025l-N9; Tue, 28 Aug 2018 11:18:06 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Tue, 28 Aug 2018 17:17:51 +0200 Message-Id: <20180828151751.4657-3-ludo@gnu.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180828151751.4657-1-ludo@gnu.org> References: <87pny2iks2.fsf@gnu.org> <20180828151751.4657-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) DRAFT: Missing documentation for ~/.config/guix/channels.scm. * guix/channels.scm: New file. * Makefile.am (MODULES): Add it. * guix/scripts/pull.scm: Use it. (%self-build-file, %pull-version, build-from-source) (whole-package-for-legacy, derivation->manifest-entry): Remove. These now exist in a similar formin (guix channels). (build-and-install): Change 'source' to 'instances'. Remove #:url, #:branch, and #:commit. Rewrite using 'channel-instances->manifest'. (channel-list): New procedure. (guix-pull): Parameterize %REPOSITORY-CACHE-DIRECTORY. Call 'honor-lets-encrypt-certificates!' unconditionally. Load ~/.config/guix/channels.scm. Rewrite to use (guix channels). [use-le-certs?]: Remove. * po/guix/POTFILES.in: Add (guix channels). --- Makefile.am | 1 + guix/channels.scm | 292 ++++++++++++++++++++++++++++++++++++++++++ guix/scripts/pull.scm | 198 +++++++++++----------------- po/guix/POTFILES.in | 1 + 4 files changed, 372 insertions(+), 120 deletions(-) create mode 100644 guix/channels.scm diff --git a/Makefile.am b/Makefile.am index b6efd6d62..af6870cf6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -87,6 +87,7 @@ MODULES = \ guix/grafts.scm \ guix/inferior.scm \ guix/describe.scm \ + guix/channels.scm \ guix/gnu-maintenance.scm \ guix/self.scm \ guix/upstream.scm \ diff --git a/guix/channels.scm b/guix/channels.scm new file mode 100644 index 000000000..ec3e05eaf --- /dev/null +++ b/guix/channels.scm @@ -0,0 +1,292 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix channels) + #:use-module (guix git) + #:use-module (guix records) + #:use-module (guix gexp) + #:use-module (guix discovery) + #:use-module (guix monads) + #:use-module (guix profiles) + #:use-module (guix derivations) + #:use-module (guix store) + #:use-module (guix i18n) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-11) + #:autoload (guix self) (whole-package) + #:use-module (ice-9 match) + #:export (channel + channel? + channel-name + channel-url + channel-branch + channel-commit + channel-location + + %default-channels + + channel-instance? + channel-instance-channel + channel-instance-commit + channel-instance-checkout + + latest-channel-instances + channel-instance-derivations + latest-channel-derivations + channel-instances->manifest)) + +;;; Commentary: +;;; +;;; This module implements "channels." A channel is usually a source of +;;; package definitions. There's a special channel, the 'guix' channel, that +;;; provides all of Guix, including its commands and its documentation. +;;; User-defined channels are expected to typically provide a bunch of .scm +;;; files meant to be added to the '%package-search-path'. +;;; +;;; This module provides tools to fetch and update channels from a Git +;;; repository and to build them. +;;; +;;; Code: + +(define-record-type* channel make-channel + channel? + (name channel-name) + (url channel-url) + (branch channel-branch (default "master")) + (commit channel-commit (default #f)) + (location channel-location + (default (current-source-location)) (innate))) +;; TODO: Add a way to express dependencies among channels. + +(define %default-channels + ;; Default list of channels. + (list (channel + (name 'guix) + (branch "origin/master") + (url "https://git.savannah.gnu.org/git/guix.git")))) + +(define (guix-channel? channel) + "Return true if CHANNEL is the 'guix' channel." + (eq? 'guix (channel-name channel))) + +(define-record-type + (channel-instance channel commit checkout) + channel-instance? + (channel channel-instance-channel) + (commit channel-instance-commit) + (checkout channel-instance-checkout)) + +(define (channel-reference channel) + "Return the \"reference\" for CHANNEL, an sexp suitable for +'latest-repository-commit'." + (match (channel-commit channel) + (#f `(branch . ,(channel-branch channel))) + (commit `(commit . ,(channel-commit channel))))) + +(define (latest-channel-instances store channels) + "Return a list of channel instances corresponding to the latest checkouts of +CHANNELS." + (map (lambda (channel) + (format (current-error-port) + (G_ "Updating channel '~a' from Git repository at '~a'...~%") + (channel-name channel) + (channel-url channel)) + (let-values (((checkout commit) + (latest-repository-commit store (channel-url channel) + #:ref (channel-reference + channel)))) + (channel-instance channel commit checkout))) + channels)) + +(define %self-build-file + ;; The file containing code to build Guix. This serves the same purpose as + ;; a makefile, and, similarly, is intended to always keep this name. + "build-aux/build-self.scm") + +(define %pull-version + ;; This is the version of the 'guix pull' protocol. It specifies what's + ;; expected from %SELF-BUILD-FILE. The initial version ("0") was when we'd + ;; place a set of compiled Guile modules in ~/.config/guix/latest. + 1) + +(define (standard-module-derivation name source dependencies) + "Return a derivation that builds the Scheme modules in SOURCE and that +depend on DEPENDENCIES, a list of lowerable objects. The assumption is that +SOURCE contains package modules to be added to '%package-module-path'." + (define modules + (scheme-modules* source)) + + ;; FIXME: We should load, say SOURCE/.guix-channel.scm, which would allow + ;; channel publishers to specify things such as the sub-directory where .scm + ;; files live, files to exclude from the channel, preferred substitute URLs, + ;; etc. + (mlet* %store-monad ((compiled + (compiled-modules modules + #:name name + #:module-path (list source) + #:extensions dependencies))) + + (gexp->derivation name + (with-extensions dependencies + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (let ((go (string-append #$output "/lib/guile/" + (effective-version) + "/site-ccache")) + (scm (string-append #$output + "/share/guile/site/" + (effective-version)))) + (mkdir-p (dirname go)) + (symlink #$compiled go) + (mkdir-p (dirname scm)) + (symlink #$source scm)))))))) + +(define* (build-from-source name source + #:key verbose? commit + (dependencies '())) + "Return a derivation to build Guix from SOURCE, using the self-build script +contained therein. Use COMMIT as the version string." + ;; Running the self-build script makes it easier to update the build + ;; procedure: the self-build script of the Guix-to-be-installed contains the + ;; right dependencies, build procedure, etc., which the Guix-in-use may not + ;; be know. + (define script + (string-append source "/" %self-build-file)) + + (if (file-exists? script) + (let ((build (save-module-excursion + (lambda () + (primitive-load script))))) + ;; BUILD must be a monadic procedure of at least one argument: the + ;; source tree. + ;; + ;; Note: BUILD can return #f if it does not support %PULL-VERSION. In + ;; the future we'll fall back to a previous version of the protocol + ;; when that happens. + (build source #:verbose? verbose? #:version commit + #:pull-version %pull-version)) + + ;; Build a set of modules that extend Guix using the standard method. + (standard-module-derivation name source dependencies))) + +(define* (build-channel-instance instance #:optional (dependencies '())) + "Return, as a monadic value, the derivation for INSTANCE, a channel +instance. DEPENDENCIES is a list of extensions providing Guile modules that +INSTANCE depends on." + (build-from-source (symbol->string + (channel-name (channel-instance-channel instance))) + (channel-instance-checkout instance) + #:commit (channel-instance-commit instance) + #:dependencies dependencies)) + +(define (channel-instance-derivations instances) + "Return the list of derivations to build INSTANCES, in the same order as +INSTANCES." + (define core-instance + ;; The 'guix' channel is treated specially: it's an implicit dependency of + ;; all the other channels. + (find (lambda (instance) + (guix-channel? (channel-instance-channel instance))) + instances)) + + (mlet %store-monad ((core (build-channel-instance core-instance))) + (mapm %store-monad + (lambda (instance) + (if (eq? instance core-instance) + (return core) + (build-channel-instance instance + (list core)))) + instances))) + +(define latest-channel-derivations + (let ((latest-channel-instances (store-lift latest-channel-instances))) + (lambda (channels) + "Return, as a monadic value, the list of derivations for the latest +instances of CHANNELS." + (mlet %store-monad ((instances (latest-channel-instances channels))) + (channel-instance-derivations instances))))) + +(define (whole-package-for-legacy name modules) + "Return a full-blown Guix package for MODULES, a derivation that builds Guix +modules in the old ~/.config/guix/latest style." + (define packages + (resolve-interface '(gnu packages guile))) + + (letrec-syntax ((list (syntax-rules (->) + ((_) + '()) + ((_ (module -> variable) rest ...) + (cons (module-ref (resolve-interface + '(gnu packages module)) + 'variable) + (list rest ...))) + ((_ variable rest ...) + (cons (module-ref packages 'variable) + (list rest ...)))))) + (whole-package name modules + + ;; In the "old style", %SELF-BUILD-FILE would simply return a + ;; derivation that builds modules. We have to infer what the + ;; dependencies of these modules were. + (list guile-json guile-git guile-bytestructures + (ssh -> guile-ssh) (tls -> gnutls))))) + +(define (old-style-guix? drv) + "Return true if DRV corresponds to a ~/.config/guix/latest style of +derivation." + ;; Here we rely on a gross historical fact: that derivations produced by the + ;; "old style" (before commit 8a0d9bc8a3f153159d9e239a151c0fa98f1e12d8, + ;; dated May 30, 2018) did not depend on "guix-command.drv". + (not (find (lambda (input) + (string-suffix? "-guix-command.drv" + (derivation-input-path input))) + (derivation-inputs drv)))) + +(define (channel-instances->manifest instances) + "Return a profile manifest with entries for all of INSTANCES, a list of +channel instances." + (define instance->entry + (match-lambda + ((instance drv) + (let ((commit (channel-instance-commit instance)) + (channel (channel-instance-channel instance))) + (with-monad %store-monad + (return (manifest-entry + (name (symbol->string (channel-name channel))) + (version (string-take commit 7)) + (item (if (guix-channel? channel) + (if (old-style-guix? drv) + (whole-package-for-legacy + (string-append name "-" version) + drv) + drv) + drv)) + (properties + `((source (repository + (version 0) + (url ,(channel-url channel)) + (branch ,(channel-branch channel)) + (commit ,commit)))))))))))) + + (mlet* %store-monad ((derivations (channel-instance-derivations instances)) + (entries (mapm %store-monad instance->entry + (zip instances derivations)))) + (return (manifest entries)))) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index ee68c21a4..d7931506b 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -30,26 +30,19 @@ #:use-module (guix grafts) #:use-module (guix memoization) #:use-module (guix monads) + #:use-module (guix channels) #:autoload (guix inferior) (open-inferior) #:use-module (guix scripts build) - #:autoload (guix self) (whole-package) #:use-module (guix git) #:use-module (git) #:use-module (gnu packages) - #:autoload (gnu packages ssh) (guile-ssh) - #:autoload (gnu packages tls) (gnutls) #:use-module ((guix scripts package) #:select (build-and-use-profile)) - #:use-module ((guix build utils) - #:select (with-directory-excursion delete-file-recursively)) - #:use-module ((guix build download) - #:select (%x509-certificate-directory)) #:use-module (gnu packages base) #:use-module (gnu packages guile) #:use-module ((gnu packages bootstrap) #:select (%bootstrap-guile)) #:use-module ((gnu packages certs) #:select (le-certs)) #:use-module (srfi srfi-1) - #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) @@ -57,9 +50,6 @@ #:use-module (ice-9 vlist) #:export (guix-pull)) -(define %repository-url - (or (getenv "GUIX_PULL_URL") "https://git.savannah.gnu.org/git/guix.git")) - ;;; ;;; Command-line options. @@ -67,9 +57,7 @@ (define %default-options ;; Alist of default option values. - `((repository-url . ,%repository-url) - (ref . (branch . "origin/master")) - (system . ,(%current-system)) + `((system . ,(%current-system)) (substitutes? . #t) (build-hook? . #t) (graft? . #t) @@ -142,70 +130,6 @@ Download and deploy the latest version of Guix.\n")) (define indirect-root-added (store-lift add-indirect-root)) -(define %self-build-file - ;; The file containing code to build Guix. This serves the same purpose as - ;; a makefile, and, similarly, is intended to always keep this name. - "build-aux/build-self.scm") - -(define %pull-version - ;; This is the version of the 'guix pull' protocol. It specifies what's - ;; expected from %SELF-BUILD-FILE. The initial version ("0") was when we'd - ;; place a set of compiled Guile modules in ~/.config/guix/latest. - 1) - -(define* (build-from-source source - #:key verbose? commit) - "Return a derivation to build Guix from SOURCE, using the self-build script -contained therein. Use COMMIT as the version string." - ;; Running the self-build script makes it easier to update the build - ;; procedure: the self-build script of the Guix-to-be-installed contains the - ;; right dependencies, build procedure, etc., which the Guix-in-use may not - ;; be know. - (let* ((script (string-append source "/" %self-build-file)) - (build (primitive-load script))) - ;; BUILD must be a monadic procedure of at least one argument: the source - ;; tree. - ;; - ;; Note: BUILD can return #f if it does not support %PULL-VERSION. In the - ;; future we'll fall back to a previous version of the protocol when that - ;; happens. - (build source #:verbose? verbose? #:version commit - #:pull-version %pull-version))) - -(define (whole-package-for-legacy name modules) - "Return a full-blown Guix package for MODULES, a derivation that builds Guix -modules in the old ~/.config/guix/latest style." - (whole-package name modules - - ;; In the "old style", %SELF-BUILD-FILE would simply return a - ;; derivation that builds modules. We have to infer what the - ;; dependencies of these modules were. - (list guile-json guile-git guile-bytestructures - guile-ssh gnutls))) - -(define* (derivation->manifest-entry drv - #:key url branch commit) - "Return a manifest entry for DRV, which represents Guix at COMMIT. Record -URL, BRANCH, and COMMIT as a property in the manifest entry." - (mbegin %store-monad - (what-to-build (list drv)) - (built-derivations (list drv)) - (let ((out (derivation->output-path drv))) - (return (manifest-entry - (name "guix") - (version (string-take commit 7)) - (item (if (file-exists? (string-append out "/bin/guix")) - drv - (whole-package-for-legacy (string-append name "-" - version) - drv))) - (properties - `((source (repository - (version 0) - (url ,url) - (branch ,branch) - (commit ,commit)))))))))) - (define (display-profile-news profile) "Display what's up in PROFILE--new packages, and all that." (match (memv (generation-number profile) @@ -223,8 +147,8 @@ URL, BRANCH, and COMMIT as a property in the manifest entry." #:heading (G_ "New in this revision:\n")))) (_ #t))) -(define* (build-and-install source config-dir - #:key verbose? url branch commit) +(define* (build-and-install instances config-dir + #:key verbose?) "Build the tool from SOURCE, and install it in CONFIG-DIR." (define update-profile (store-lift build-and-use-profile)) @@ -232,15 +156,9 @@ URL, BRANCH, and COMMIT as a property in the manifest entry." (define profile (string-append config-dir "/current")) - (mlet* %store-monad ((drv (build-from-source source - #:commit commit - #:verbose? verbose?)) - (entry (derivation->manifest-entry drv - #:url url - #:branch branch - #:commit commit))) + (mlet %store-monad ((manifest (channel-instances->manifest instances))) (mbegin %store-monad - (update-profile profile (manifest (list entry))) + (update-profile profile manifest) (return (display-profile-news profile))))) (define (honor-lets-encrypt-certificates! store) @@ -426,45 +344,91 @@ and ALIST2 differ, display HEADING upfront." ((numbers ...) (list-generations profile numbers))))))))) +(define (channel-list file opts) + "Return the list of channels to use. If FILE exists, channels are read from +there; otherwise %DEFAULT-CHANNELS is used. Apply channel transformations +specified in OPTS (resulting from '--url', '--commit', or '--branch'), if +any." + (define channels + (if (file-exists? file) + (load* file (make-user-module '((guix channels)))) + %default-channels)) + + (define (environment-variable) + (match (getenv "GUIX_PULL_URL") + (#f #f) + (url + (warning (G_ "The 'GUIX_PULL_URL' environment variable is deprecated. +Use '~/.config/guix/channels.scm' instead.")) + url))) + + (let ((ref (assoc-ref opts 'ref)) + (url (or (assoc-ref opts 'url) + (environment-variable)))) + (if (or ref url) + (match channels + ((one) + ;; When there's only one channel, apply '--url', '--commit', and + ;; '--branch' to this specific channel. + (let ((url (or url (channel-url one)))) + (list (match ref + (('commit . commit) + (channel (inherit one) + (url url) (commit commit) (branch #f))) + (('branch . branch) + (channel (inherit one) + (url url) (commit #f) (branch branch))) + (#f + (channel (inherit one) (url url))))))) + (_ + ;; Otherwise bail out. + (leave + (G_ "'--url', '--commit', and '--branch' are not applicable~%")))) + channels))) + (define (guix-pull . args) - (define (use-le-certs? url) - (string-prefix? "https://git.savannah.gnu.org/" url)) - (with-error-handling (with-git-error-handling - (let* ((opts (parse-command-line args %options - (list %default-options))) - (url (assoc-ref opts 'repository-url)) - (ref (assoc-ref opts 'ref)) - (cache (string-append (cache-directory) "/pull"))) + (let* ((opts (parse-command-line args %options + (list %default-options))) + (cache (string-append (cache-directory) "/pull")) + (channel-file (string-append (config-directory) "/channels.scm")) + (channels (channel-list channel-file opts))) + (cond ((assoc-ref opts 'query) (process-query opts)) ((assoc-ref opts 'dry-run?) #t) ;XXX: not very useful (else (with-store store - (parameterize ((%graft? (assoc-ref opts 'graft?))) + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (%repository-cache-directory cache)) (set-build-options-from-command-line store opts) - ;; For reproducibility, always refer to the LE certificates - ;; when we know we're talking to Savannah. - (when (use-le-certs? url) - (honor-lets-encrypt-certificates! store)) - - (format (current-error-port) - (G_ "Updating from Git repository at '~a'...~%") - url) - - (let-values (((checkout commit) - (latest-repository-commit store url - #:ref ref - #:cache-directory - cache))) + ;; When certificates are already installed, use them. + ;; Otherwise, use the Let's Encrypt certificates, which we + ;; know Savannah uses. + (let ((certs (or (getenv "SSL_CERT_DIR") "/etc/ssl/certs"))) + (unless (file-exists? certs) + (honor-lets-encrypt-certificates! store))) + (let ((instances (latest-channel-instances store channels))) (format (current-error-port) - (G_ "Building from Git commit ~a...~%") - commit) + (N_ "Building from this channel:~%" + "Building from these channels:~%" + (length instances))) + (for-each (lambda (instance) + (let ((channel + (channel-instance-channel instance))) + (format (current-error-port) + " ~10a~a\t~a~%" + (channel-name channel) + (channel-url channel) + (string-take + (channel-instance-commit instance) + 7)))) + instances) (parameterize ((%guile-for-build (package-derivation store @@ -472,13 +436,7 @@ and ALIST2 differ, display HEADING upfront." %bootstrap-guile (canonical-package guile-2.2))))) (run-with-store store - (build-and-install checkout (config-directory) - #:url url - #:branch (match ref - (('branch . branch) - branch) - (_ #f)) - #:commit commit + (build-and-install instances (config-directory) #:verbose? (assoc-ref opts 'verbose?))))))))))))) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index d11f408d4..7f881355e 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -38,4 +38,5 @@ guix/upstream.scm guix/ui.scm guix/http-client.scm guix/nar.scm +guix/channels.scm nix/nix-daemon/guix-daemon.cc -- 2.18.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: Pjotr Prins Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 28 Aug 2018 17:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153547705320774 (code B ref 22629); Tue, 28 Aug 2018 17:25:02 +0000 Received: (at 22629) by debbugs.gnu.org; 28 Aug 2018 17:24:13 +0000 Received: from localhost ([127.0.0.1]:35852 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fuhit-0005Ox-GX for submit@debbugs.gnu.org; Tue, 28 Aug 2018 13:24:11 -0400 Received: from mail.thebird.nl ([94.142.245.5]:37892) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fuhiq-0005Oj-UW for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 13:24:09 -0400 Received: by mail.thebird.nl (Postfix, from userid 1000) id DF9B48E85; Tue, 28 Aug 2018 19:24:02 +0200 (CEST) Date: Tue, 28 Aug 2018 19:24:02 +0200 From: Pjotr Prins Message-ID: <20180828172402.el7y6quy5hjgzua6@thebird.nl> References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87pny2iks2.fsf@gnu.org> User-Agent: NeoMutt/20170113 (1.7.2) X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Ludo, I am so ready to try this! GUIX_PACKAGE_PATH is killing me though it got a lot better after latest guix pull developments. Tell me what to run. Pj. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: Mark H Weaver Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 28 Aug 2018 19:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15354860302289 (code B ref 22629); Tue, 28 Aug 2018 19:54:01 +0000 Received: (at 22629) by debbugs.gnu.org; 28 Aug 2018 19:53:50 +0000 Received: from localhost ([127.0.0.1]:35947 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fuk3h-0000ar-Pz for submit@debbugs.gnu.org; Tue, 28 Aug 2018 15:53:49 -0400 Received: from world.peace.net ([64.112.178.59]:36162) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fuk3d-0000ac-Ky for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 15:53:46 -0400 Received: from mhw by world.peace.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1fuk3X-0005U1-O3; Tue, 28 Aug 2018 15:53:39 -0400 From: Mark H Weaver References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> Date: Tue, 28 Aug 2018 15:52:06 -0400 In-Reply-To: <87pny2iks2.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 28 Aug 2018 17:16:29 +0200") Message-ID: <877ekagtg9.fsf@netris.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Ludovic, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Currently third-party channels are expected to provide nothing but > package modules. I'd like to say again that I have grave concerns that this could be the death-knell for long-term innovation in Guix. It's likely that whenever a change is proposed that will break these third-party channels, there will be resistance, and efforts to preserve backward compatibility. Even things as seemingly innocuous as moving a package from one module to another will impact these third-party channels, not to mention changing our internal APIs or making fundamental changes to the way packages are specified. Part of why I'm so interested in Guix is because it currently has nearly unconstrained potential to grow into something far more beautiful and elegant than it is today. I fear that with the introduction of channels, that potential will be drastically curtailed, and that we're essentially trading our future potential for what will in practice, most likely, be primarily used to facilitate the use of non-free software on Guix. When I start to see signs of resistance to changes for the sake of third-party channels, then I'll know I was right to be fearful, and Guix will become far less interesting to me. Mark From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 28 Aug 2018 21:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Mark H Weaver Cc: Ricardo Wurmus , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153549316421572 (code B ref 22629); Tue, 28 Aug 2018 21:53:02 +0000 Received: (at 22629) by debbugs.gnu.org; 28 Aug 2018 21:52:44 +0000 Received: from localhost ([127.0.0.1]:36104 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fulul-0005br-CK for submit@debbugs.gnu.org; Tue, 28 Aug 2018 17:52:44 -0400 Received: from eggs.gnu.org ([208.118.235.92]:38550) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fuluj-0005be-D7 for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 17:52:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fulub-0005Dx-1J for 22629@debbugs.gnu.org; Tue, 28 Aug 2018 17:52:35 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57737) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fuluR-0004xz-HM; Tue, 28 Aug 2018 17:52:25 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=55118 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fuluR-0001fN-7y; Tue, 28 Aug 2018 17:52:23 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> Date: Tue, 28 Aug 2018 23:52:21 +0200 In-Reply-To: <877ekagtg9.fsf@netris.org> (Mark H. Weaver's message of "Tue, 28 Aug 2018 15:52:06 -0400") Message-ID: <87o9dmb1m2.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Mark, Mark H Weaver skribis: > I'd like to say again that I have grave concerns that this could be the > death-knell for long-term innovation in Guix. It's likely that whenever > a change is proposed that will break these third-party channels, there > will be resistance, and efforts to preserve backward compatibility. It is a risk and I acknowledge that. In the 4 years of existence of GUIX_PACKAGE_PATH, we=E2=80=99ve never encountered this issue. To what extent would that change? I don=E2=80=99t= know. I want to preserve the existing incentives to work in Guix proper, or to work closely with the project when integration in Guix proper makes little sense=E2=80=94for WIP packages, custom package variants, or domain-specific packages like those I mentioned in my message. I do not see ourselves advertising channels as the primary way to add packages. BTW, Andy=E2=80=99s Potluck offered a solution to the compatibility issue t= hat=E2=80=99s still on the table: . > I fear that with the introduction of channels, that potential will be > drastically curtailed, and that we're essentially trading our future > potential for what will in practice, most likely, be primarily used to > facilitate the use of non-free software on Guix. Non-free software will be one use case. There are other use cases though, as mentioned above; these are the ones I=E2=80=99m interested in. It=E2=80=99s a dilemma. I=E2=80=99d like to think that we can have our cak= e and eat it too; that we can give users this flexibility (which is =E2=80=9Cbuilt in=E2= =80=9D since it=E2=80=99s just a matter of setting the load path) without jeopardizing development of Guix itself, and without creating the conditions for the proliferation of non-free package channels. Whether it works this way would depend not on the technical details but on the group=E2=80=99s behavi= or. Thoughts? Thanks, Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 29 Aug 2018 04:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Mark H Weaver , Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153551574814078 (code B ref 22629); Wed, 29 Aug 2018 04:10:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Aug 2018 04:09:08 +0000 Received: from localhost ([127.0.0.1]:36262 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1furn1-0003f0-QX for submit@debbugs.gnu.org; Wed, 29 Aug 2018 00:09:08 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:53125) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1furmz-0003es-KP for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 00:09:06 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 28C4221FA2; Wed, 29 Aug 2018 00:09:05 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Wed, 29 Aug 2018 00:09:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=GrVL72LHh9ms22y9TVGG2TrCfcT+U 0/B33bE8MKn0o0=; b=Wb1t6o9jprYCLNKrXEwb29kHUoMtGiv0DHdsmmOoHWeex IzLJjQVYwJCOvsjkKG9YBmDAHAJUSW3A80f00FzFLaA3RyTSYsRpQO303a2KW22E Iokrr85x/dxcDOdzYkwD5HsAKEf/W5cyrXobk+77cgz809/t9gCL95NqCeqsX7Fp IRgJB5MPccXId8cb51Y5gsliykBqTPLQINZeCcLrQuObvXbEPE0r7/wI8386aGr1 YNOPy7TiBXDd09p0ykAzqdGb+WCVFrsy65RuTaxzUlhS14eAmYeR6FaEAmmeCRha WMs9NB8Lj1ZtwhxLKd8+aWr3/XpnG829ysrGZqWmw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=GrVL72 LHh9ms22y9TVGG2TrCfcT+U0/B33bE8MKn0o0=; b=Q6ajVK1t+onK6zTzBN8vDD UFYi1VSikuoxDeOdQhb9bryN5Q0x0EwANzaKL9mJbP6sldTBT8Fmn1tniDWbR6hO DKLG1Y3vSb7b+xxCzlbquR2CWv8rgLfUjaAhZgX/s+hj3S4uEtRKF3ajHR1bZCGn cmluP8GWSSK4urhlkITscbO8LM8KX/avvNaC1gMoRd/UiXlw+vQDOI8mzSCc1iqv BT/tsSPwYqr001RQDMYW7Zzfpfb9bBQRsXGoacc7exckM7PNYJjdtvmYthPWUb49 LOv01mAk+6lo8p4rorCPEsbdAzbkADlsheOijVaWy7yITK+FgfHk70BbHdZV8UKw == X-ME-Proxy: X-ME-Sender: Received: from ordinateur-de-catherine--konrad.home (lfbn-1-4181-102.w92-169.abo.wanadoo.fr [92.169.174.102]) by mail.messagingengine.com (Postfix) with ESMTPA id 5C2CCE442E; Wed, 29 Aug 2018 00:09:04 -0400 (EDT) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> From: Konrad Hinsen Message-ID: Date: Wed, 29 Aug 2018 06:09:02 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: <877ekagtg9.fsf@netris.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr-classic Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Mark, > I'd like to say again that I have grave concerns that this could be the > death-knell for long-term innovation in Guix. It's likely that whenever> a change is proposed that will break these third-party channels, there> will be resistance, and efforts to preserve backward compatibility. I understand your point, but the problem you mention is, in my opinion, not so much due to channels but due to different priorities of different users. Which means that it will come up even without channels as the Guix user base grows. Look at the wider Linux world: there are people who want to live on the bleeding edge and run Arch Linux, and there are others who value stability and run CentOS. Today's Guix is more on the bleeding edge side. My understanding of your commment is that you would like to make sure it stays there. But that also means severely limiting Guix' potential user base. I see channels as an opportunity to have Guix "dialects" addressing different needs and yet remain interoperable, although I am the first to admit that I have no clear idea of how this would work out in practice, more from the social than the technical point of view. But the goal looks very attractive. Looking at my own use of Guix, I am happy with its bleeding edge approach for the software I use for research, but I'd much prefer a slower pace and more stability for stuff like Emacs and TeX that are "boring infrastructure" for me. > Even things as seemingly innocuous as moving a package from one module > to another will impact these third-party channels, not to mention > changing our internal APIs or making fundamental changes to the way > packages are specified. So... could we reduce the dependence of package specifications on such things? Package definitions use a small DSL that could be versioned, allowing change while maintaining compatibility. Module dependencies are more annoying, but do we need them? Package definitions are grouped into modules mostly for convenience. All packages have globally unique names, so could we use those to specify inputs? Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: Alex Sassmannshausen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 29 Aug 2018 09:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Mark H Weaver Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 22629@debbugs.gnu.org Reply-To: alex@pompo.co Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153553500013093 (code B ref 22629); Wed, 29 Aug 2018 09:30:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Aug 2018 09:30:00 +0000 Received: from localhost ([127.0.0.1]:36398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fuwnX-0003P6-OO for submit@debbugs.gnu.org; Wed, 29 Aug 2018 05:29:59 -0400 Received: from [82.153.16.8] (port=57827 helo=ronja.pompo.co) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fuwnV-0003Ot-KW for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 05:29:58 -0400 Received: from rosser (unknown [87.236.135.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ronja.pompo.co (Postfix) with ESMTPSA id BD149402FB; Wed, 29 Aug 2018 09:29:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pompo.co; s=mail; t=1535534991; bh=K2Cxt+/dXb6nAKRcFOvQo23p67M1o/Leue8Mg5W58A8=; h=References:From:To:Cc:Subject:Reply-To:In-reply-to:Date:From; b=g2iRy4PXsdZJxU9sIBYtn5+lJlgqm5KG7jcdQZ1oYO/QQwTX74UsRkZMt3uqzT1zZ wohnfAhI/4y6Ug8xRzsppjTIUpvkKT5yiUEiLOhGNonz4vcnGI8XfeNLXNdhKeiJX1 fxys5xiunpI/Q8PcHrtimZxTiq06lAYrhm8vw8gI= References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> User-agent: mu4e 1.0; emacs 26.1 From: Alex Sassmannshausen In-reply-to: <877ekagtg9.fsf@netris.org> Date: Wed, 29 Aug 2018 11:29:50 +0200 Message-ID: <87zhx5msfl.fsf@pompo.co> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Mark H Weaver writes: > Hi Ludovic, > > ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) writes: >> Currently third-party channels are expected to provide nothing but >> package modules. > > I'd like to say again that I have grave concerns that this could be the > death-knell for long-term innovation in Guix. It's likely that whenever > a change is proposed that will break these third-party channels, there > will be resistance, and efforts to preserve backward compatibility. [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Mark H Weaver writes: > Hi Ludovic, > > ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> Currently third-party channels are expected to provide nothing but >> package modules. > > I'd like to say again that I have grave concerns that this could be the > death-knell for long-term innovation in Guix. It's likely that whenever > a change is proposed that will break these third-party channels, there > will be resistance, and efforts to preserve backward compatibility. I understand your concerns and want to acknowledge those. My primary interest in channels at the moment comes from believing that having a "stable" channel would be incredibly useful to increase adoption rate of Guix. And for me. Currently upgrading my system involves doing a guix pull, then, over the course of a few days, doing guix package -u and bailing out if I start building a large program. After this I do guix system build, and bail out if a large program starts building. In either case, if an upgrade broke a dependency then I'm kind of stuck at the old versions of my profile. Finally, when I've upgrade profile and system, I immediately run guix pull to prepare for the next cycle. I consider myself pretty capable, and I find this process stressful =E2=80= =94 I certainly cannot envisage most of my currently interested friends going through this process=E2=80=A6 But like I say, this is not to discount your concerns, it is merely to add to the list of reasons why channels might be important. Best wishes, Alex > Even things as seemingly innocuous as moving a package from one module > to another will impact these third-party channels, not to mention > changing our internal APIs or making fundamental changes to the way > packages are specified. > > Part of why I'm so interested in Guix is because it currently has nearly > unconstrained potential to grow into something far more beautiful and > elegant than it is today. > > I fear that with the introduction of channels, that potential will be > drastically curtailed, and that we're essentially trading our future > potential for what will in practice, most likely, be primarily used to > facilitate the use of non-free software on Guix. > > When I start to see signs of resistance to changes for the sake of > third-party channels, then I'll know I was right to be fearful, and > Guix will become far less interesting to me. > > Mark From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 29 Aug 2018 14:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: Mark H Weaver , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153555276516926 (code B ref 22629); Wed, 29 Aug 2018 14:27:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Aug 2018 14:26:05 +0000 Received: from localhost ([127.0.0.1]:37245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv1Q4-0004Ow-Lb for submit@debbugs.gnu.org; Wed, 29 Aug 2018 10:26:04 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42318) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv1Q1-0004OR-4A for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 10:26:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fv1Pt-0003YO-SF for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 10:25:55 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48363) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fv1Pt-0003YE-DO; Wed, 29 Aug 2018 10:25:53 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=36784 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fv1Ps-0003W4-VN; Wed, 29 Aug 2018 10:25:53 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 12 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 29 Aug 2018 16:25:51 +0200 In-Reply-To: (Konrad Hinsen's message of "Wed, 29 Aug 2018 06:09:02 +0200") Message-ID: <87efeh9rm8.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Konrad, Konrad Hinsen skribis: > Look at the wider Linux world: there are people who want to live on > the bleeding edge and run Arch Linux, and there are others who value > stability and run CentOS. Today's Guix is more on the bleeding edge > side. My understanding of your commment is that you would like to make > sure it stays there. But that also means severely limiting Guix' > potential user base. Mark=E2=80=99s concern is not about whether packages are the latest version, etc. It=E2=80=99s about the constraints that could result from widespread development of channels outside Guix proper: technically all of Guix is just a library, so widespread development of external channels could force us Guix developers to keep the API stable. This, in turn, would limit our ability to make significant changes to Guix. > I see channels as an opportunity to have Guix "dialects" addressing > different needs and yet remain interoperable, although I am the first > to admit that I have no clear idea of how this would work out in > practice, more from the social than the technical point of view. But > the goal looks very attractive. Looking at my own use of Guix, I am > happy with its bleeding edge approach for the software I use for > research, but I'd much prefer a slower pace and more stability for > stuff like Emacs and TeX that are "boring infrastructure" for me. =E2=80=9CDialect=E2=80=9D sounds a bit strong, but I agree that such uses c= ould be interesting and beneficial, to users and to Guix. >> Even things as seemingly innocuous as moving a package from one module >> to another will impact these third-party channels, not to mention >> changing our internal APIs or making fundamental changes to the way >> packages are specified. > > So... could we reduce the dependence of package specifications on such > things? Package definitions use a small DSL that could be versioned, > allowing change while maintaining compatibility. Module dependencies > are more annoying, but do we need them? Package definitions are > grouped into modules mostly for convenience. All packages have > globally unique names, so could we use those to specify inputs? This is exactly that kind of issue Mark is concerned with: currently we don=E2=80=99t have to worry at all about this, and it=E2=80=99s great to ha= ve that freedom. I=E2=80=99d rather not build fancy mechanisms just for the sake of external channels, and I certainly don=E2=80=99t want to commit to API stability. We won=E2=80=99t break the API every day intentionally either, but my point is= that support for external channels will be =E2=80=9Cbest effort=E2=80=9D (as it = already is with GUIX_PACKAGE_PATH). I think it=E2=80=99s useful and practical nonethe= less. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 29 Aug 2018 15:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: Mark H Weaver , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153555662222908 (code B ref 22629); Wed, 29 Aug 2018 15:31:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Aug 2018 15:30:22 +0000 Received: from localhost ([127.0.0.1]:37294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv2QI-0005xQ-6y for submit@debbugs.gnu.org; Wed, 29 Aug 2018 11:30:22 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:38131) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv2QH-0005xI-2u for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 11:30:21 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 003BB22086; Wed, 29 Aug 2018 11:30:18 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Wed, 29 Aug 2018 11:30:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=y/4F+lL4AukRolg8gNKUd4VL8o3uK 5/qmh54Mg1Dlvc=; b=bX11FaocVrp7j5HmoeC5phlMqjrbm3lCLJ43KiBNYrdGK IWknRsY/etyV468y42uNni1P7QkivhHuSiQHEUHyl+bbIRjY+d8Oy4Y8Vf2snmRp bOQIbcGIxW0SQj8dDO27OF80S8ssa6RGxJK3MjDtcr85uum0BSAw1D+0KlH2s0qo DJ3ChH2yRePia+UJPsUwnPp5Y/m22ViI8RnQBx9673yer89EV1EjH7SNEVgApsbz MIjRyalgCHqiDoahXF17ufAUCDQZMugVv3NjMY8pmYZGXOGfGxr9BN3bWLmoZIaw yztkrAkHaLNK5G2iRjXb31TN3qbMmcD5O8LD2qHhw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=y/4F+l L4AukRolg8gNKUd4VL8o3uK5/qmh54Mg1Dlvc=; b=hNSoaXrsGbGKf/6BuHWxgb X75Jl77c9/6X9YXvRHnOMZ+XR7QsPmcDjQEgp0xU8yePKqx0iEG6b4tg4FQSlgWE UwJwEj9KktOhXcxfQItDyU3LBzI/+5317AhOPqHGp/ekrudMtwBjhyVusbiYo5SP HuMnO5Dr07kjO5Rljcn/FwyNRDFeuDjWbir3wi+JAUEdzhEzE9Z250w14B7LcKf7 Wf8veG2qaR9xn0pwtbCU8/FkS8YXXoB4FLCuEj2zT+Icdp1tvrfKE86bJ9n3YOGs CIb4bWeRErnrzyehNyRO0Q6zhec/saFAQ4tt6fVI6awKnPKGz9ZPt0BfhR1i9+tw == X-ME-Proxy: X-ME-Sender: Received: from ordinateur-de-catherine--konrad.home (lfbn-1-4181-102.w92-169.abo.wanadoo.fr [92.169.174.102]) by mail.messagingengine.com (Postfix) with ESMTPA id 8C27B102AB; Wed, 29 Aug 2018 11:30:15 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <87efeh9rm8.fsf@gnu.org> References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87efeh9rm8.fsf@gnu.org> Date: Wed, 29 Aug 2018 17:30:14 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Ludo, > Mark=E2=80=99s concern is not about whether packages are the latest versi= on, > etc. It=E2=80=99s about the constraints that could result from widespread > development of channels outside Guix proper: technically all of Guix is That's how I understood it as well. If/when Guix becomes somebody else's dependency, then there will be pressure on stability in Guix itself. My point is that this will happen anyway if Guix is adopted more widely. Every manifest file, personal or shared as part of a software package ("guix.scm"), relies on the same technical details as a channel. Introducing channels only makes the issue more visible. And this is really the same issue as with the stability of the packages themselves, Guix being a kind of superpackage. Most people want agility for the software layer they are most concerned with, and stability for all layers below it. For Mark (and certainly others here), Guix happens to be the layer they are most concerned with. > I=E2=80=99d rather not build fancy mechanisms just for the sake of extern= al > channels, and I certainly don=E2=80=99t want to commit to API stability. = We At this point, certainly not. But I agree with Mark that, if channels "take off", there will be pressure in that direction. Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels not needed for a stable branch (was: Channels!) Resent-From: Mark H Weaver Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 29 Aug 2018 17:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Alex Sassmannshausen , Konrad Hinsen Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15355629457799 (code B ref 22629); Wed, 29 Aug 2018 17:16:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Aug 2018 17:15:45 +0000 Received: from localhost ([127.0.0.1]:37350 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv44G-00021j-RO for submit@debbugs.gnu.org; Wed, 29 Aug 2018 13:15:45 -0400 Received: from world.peace.net ([64.112.178.59]:38102) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv44F-00021W-U9 for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 13:15:44 -0400 Received: from mhw by world.peace.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1fv44A-0004ln-0B; Wed, 29 Aug 2018 13:15:38 -0400 From: Mark H Weaver References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> Date: Wed, 29 Aug 2018 13:14:03 -0400 In-Reply-To: <87zhx5msfl.fsf@pompo.co> (Alex Sassmannshausen's message of "Wed, 29 Aug 2018 11:29:50 +0200") Message-ID: <87lg8pccys.fsf_-_@netris.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, Alex Sassmannshausen writes: > My primary interest in channels at the moment comes from believing that > having a "stable" channel would be incredibly useful to increase > adoption rate of Guix. And for me. Konrad Hinsen writes: > Look at the wider Linux world: there are people who want to live on > the bleeding edge and run Arch Linux, and there are others who value > stability and run CentOS. Today's Guix is more on the bleeding edge > side. My understanding of your commment is that you would like to make > sure it stays there. But that also means severely limiting Guix' > potential user base. Both of you seem to have reached the conclusion that third-party channels are a prerequisite for having a 'stable' branch. I disagree. I agree with both of you that a 'stable' branch of Guix would be tremendously useful. I've often wanted it myself, and I still do. My point is that I want to keep our APIs internal and unfrozen for the same reason that Linux, the kernel project, does. Linux refuses to support out-of-tree drivers and modules, and thereby retains its freedom to change their internal APIs. Often they change how things work internally and this entails doing massive find-replace on every driver in the tree. This has been a crucially important factor in their long-term success. Does this stop the Linux developers from offering stable branches, or third-parties from maintaining older stable versions of Linux in their own Git repositories? Clearly not. It's been done all along. We should persue a similar model. The crucial thing is to always keep the package modules together with the rest of Guix. If you want to clone Guix to a third-party repository, I have no problem with that. Just keep it all together, and maintain the entire tree as an undivided whole. "guix pull" already supports the ability to fetch from an arbitrary branch, or even from an arbitrary upstream source, so we already have what we need to start a 'stable' branch, or for a third-party to do that if they wanted to. Regards, Mark From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels not needed for a stable branch (was: Channels!) Resent-From: Ricardo Wurmus Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 29 Aug 2018 18:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Mark H Weaver Cc: Konrad Hinsen , Alex Sassmannshausen , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153556721822272 (code B ref 22629); Wed, 29 Aug 2018 18:27:01 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Aug 2018 18:26:58 +0000 Received: from localhost ([127.0.0.1]:37415 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv5BB-0005nA-P7 for submit@debbugs.gnu.org; Wed, 29 Aug 2018 14:26:57 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21136) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv5B9-0005n0-LE for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 14:26:56 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1535567197; cv=none; d=zoho.com; s=zohoarc; b=RO7nMPpnQl53J8bbid7VtJqItHIbr3IFpZoFPAV71bwFfFhG6xLfDZiIqyJKzTeC0Y60Sj9IVG3+Qn6g2ZWoS9ru2iGAUAccq76/3MZ8UzldCpNZzyhf5XPwsMT+Gi5+FnGk2QNHGoBYgBcoR8LdIh3VmktS+4/dn3MjZDpo1os= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1535567197; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results; bh=zCA4tlX9kDHiK9mqZsNwMLblfeZARQWkcyxQ8ALfLGM=; b=XKynQI2qBW9tGGD9X4SP0MIFGg519P9p1iThAmn7BexLhm392zAiXqC8ZQZEaV2jf+xZbCOC7M72/xVNhlCSjmKSLiaM3+M2lpFjyp57qhMZJMGIuZDC5q/TqqFdSMXw4Hb+NkeuV2lQtItyjAIYLnr0EcnC1d+NKSTgZpVqIVo= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1535567197; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; l=2323; bh=zCA4tlX9kDHiK9mqZsNwMLblfeZARQWkcyxQ8ALfLGM=; b=SFmDKMHNubZ2tBx3ZKlWkLkKZ79ovE4DY+3OrIYq2mQIlxZN0wU0POTw7Rl5Gb6f jp6lUyoSNd6t2RXyMS5aiNqmNJjlPssYEpyw6enzZ2YFq674QkRgim+e2C2Nl2j2eMC A92YWQMoowfxHYIM0phUBZKWB0Qh3j5fyd/rURpk= Received: from localhost (port-92-200-60-110.dynamic.qsc.de [92.200.60.110]) by mx.zohomail.com with SMTPS id 1535567196295901.3746066647864; Wed, 29 Aug 2018 11:26:36 -0700 (PDT) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> User-agent: mu4e 1.0; emacs 26.1 From: Ricardo Wurmus In-reply-to: <87lg8pccys.fsf_-_@netris.org> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Wed, 29 Aug 2018 20:26:32 +0200 Message-ID: <87zhx59gh3.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Mark, > I'd like to say again that I have grave concerns that this could be the > death-knell for long-term innovation in Guix. It's likely that whenever > a change is proposed that will break these third-party channels, there > will be resistance, and efforts to preserve backward compatibility. GUIX_PACKAGE_PATH already had that same problem (and did not provide a solution for it). With channels we can at least add more information about a collection of modules, e.g. what version of Guix it is known to work with. So channels really flesh out the feature provided by GUIX_PACKAGE_PATH, elevating it from a simple environment variable to one that can take additional context into account. I think that=E2=80=99s a worthwhile step to take. I agree with your sentiment that a mechanism based on a simple environment variable does not instill confidence, whereas a special mechanism like channels could signal to users that it=E2=80=99s a feature t= hat provides some guarantees. But I disagree with your assertion that this would be =E2=80=9Ca death-knell to innovation=E2=80=9D. That seems like an= exaggeration to me. > My point is that I want to keep our APIs internal and unfrozen for the > same reason that Linux, the kernel project, does. Linux refuses to > support out-of-tree drivers and modules, and thereby retains its freedom > to change their internal APIs. Often they change how things work > internally and this entails doing massive find-replace on every driver > in the tree. This has been a crucially important factor in their > long-term success. [=E2=80=A6] > We should persue a similar model. The crucial thing is to always keep > the package modules together with the rest of Guix. I agree. That is and remains our recommendation. I still want most packages to end up in Guix proper. There are collections of packages for which this does not make sense, though, and I think that it is better to have a more formal mechanism that can also be used to describe the limits of compatibility than just a simple environment variable. I also agree with you that we don=E2=80=99t need channels for providing a s= table branch. The biggest obstacle to providing a stable branch is not technical, but it requires people maintaining it. -- Ricardo From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 29 Aug 2018 20:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: Mark H Weaver , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153557583818384 (code B ref 22629); Wed, 29 Aug 2018 20:51:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Aug 2018 20:50:38 +0000 Received: from localhost ([127.0.0.1]:37487 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv7QE-0004mS-J0 for submit@debbugs.gnu.org; Wed, 29 Aug 2018 16:50:38 -0400 Received: from eggs.gnu.org ([208.118.235.92]:37258) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv7QC-0004mG-Qm for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 16:50:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fv7Q6-0006Z3-Sa for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 16:50:31 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58209) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fv7Q6-0006Yt-Ni; Wed, 29 Aug 2018 16:50:30 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=44058 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fv7Q6-0006yP-Fc; Wed, 29 Aug 2018 16:50:30 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87efeh9rm8.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 12 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 29 Aug 2018 22:50:29 +0200 In-Reply-To: (Konrad Hinsen's message of "Wed, 29 Aug 2018 17:30:14 +0200") Message-ID: <87efeg99t6.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello Konrad, Konrad Hinsen skribis: >> Mark=E2=80=99s concern is not about whether packages are the latest vers= ion, >> etc. It=E2=80=99s about the constraints that could result from widespre= ad >> development of channels outside Guix proper: technically all of Guix is > > That's how I understood it as well. If/when Guix becomes somebody else's > dependency, then there will be pressure on stability in Guix itself. > > My point is that this will happen anyway if Guix is adopted more widely. > Every manifest file, personal or shared as part of a software package > ("guix.scm"), relies on the same technical details as a > channel. Introducing channels only makes the issue more visible. True. Manifests can rely on fewer details of the API than a channel though, particularly if they use =E2=80=98specifications->manifests=E2=80= =99. (BTW code in channels could use =E2=80=98specification->package=E2=80=99 as= well to increase decoupling a bit.) > And this is really the same issue as with the stability of the packages > themselves, Guix being a kind of superpackage. Most people want agility > for the software layer they are most concerned with, and stability for > all layers below it. For Mark (and certainly others here), Guix happens > to be the layer they are most concerned with. Yeah. Thanks, Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels not needed for a stable branch Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 29 Aug 2018 21:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Mark H Weaver Cc: Konrad Hinsen , Alex Sassmannshausen , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153557653419629 (code B ref 22629); Wed, 29 Aug 2018 21:03:02 +0000 Received: (at 22629) by debbugs.gnu.org; 29 Aug 2018 21:02:14 +0000 Received: from localhost ([127.0.0.1]:37515 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv7bS-00056X-H7 for submit@debbugs.gnu.org; Wed, 29 Aug 2018 17:02:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:40364) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fv7bQ-00056L-Qb for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 17:02:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fv7bK-0004AD-IM for 22629@debbugs.gnu.org; Wed, 29 Aug 2018 17:02:07 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58635) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fv7bK-0004A6-EV; Wed, 29 Aug 2018 17:02:06 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=44262 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fv7bK-0006j0-6j; Wed, 29 Aug 2018 17:02:06 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 12 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 29 Aug 2018 23:02:04 +0200 In-Reply-To: <87lg8pccys.fsf_-_@netris.org> (Mark H. Weaver's message of "Wed, 29 Aug 2018 13:14:03 -0400") Message-ID: <87mut47upf.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello Guix, Mark H Weaver skribis: > Both of you seem to have reached the conclusion that third-party > channels are a prerequisite for having a 'stable' branch. I disagree. Same here. We could already be doing that (I=E2=80=99m skeptical about the feasibility, maintainability, and relevance of a =E2=80=9Cstable=E2=80=9D b= ranch in the sense of Debian stable, but that=E2=80=99s another story.) > I agree with both of you that a 'stable' branch of Guix would be > tremendously useful. I've often wanted it myself, and I still do. > > My point is that I want to keep our APIs internal and unfrozen for the > same reason that Linux, the kernel project, does. Linux refuses to > support out-of-tree drivers and modules, and thereby retains its freedom > to change their internal APIs. Often they change how things work > internally and this entails doing massive find-replace on every driver > in the tree. This has been a crucially important factor in their > long-term success. I had this example in mind too: the kernel technically supports out-of-tree modules, but kernel developers have always resisted pressure to freeze APIs. Because this policy has been stated upfront very clearly and has remained unchanged, out-of-tree module developers know that that the compatibility burden is on them. There=E2=80=99s flexibility, along with a strong incentive to get things in the mainline kernel. This is the outcome I=E2=80=99d like to achieve: give users some welcome flexibility, but make it clear that it=E2=80=99s best-effort. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels not needed for a stable branch (was: Channels!) Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 05:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ricardo Wurmus , Mark H Weaver Cc: 22629@debbugs.gnu.org, Alex Sassmannshausen Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153560868029208 (code B ref 22629); Thu, 30 Aug 2018 05:58:01 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 05:58:00 +0000 Received: from localhost ([127.0.0.1]:37817 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvFxw-0007b2-7C for submit@debbugs.gnu.org; Thu, 30 Aug 2018 01:58:00 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:53747) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvFxu-0007au-AG for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 01:57:58 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id D9ECA21F74; Thu, 30 Aug 2018 01:57:57 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Thu, 30 Aug 2018 01:57:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=J4pdh+fPPHIb6zKm+CyViSFbeMylA HuPcmcg71z7x4Y=; b=Tzvo7Uz8F3JDr2nyTwygrH/M4s3ApCwVZFZUwMSATBJDt zX9tkfsSuXc4LCCIUb8LrJoLoSBkdPe5wlaIpq7FQIzHq1DEDDChu+YClZps8FC6 uZ/JGxHyBGug9FZSj+lmwVzZOTqSayVWpQRdfuoQ/MtanQEpllDBT1BTKptnZYsx GCgVbLDV/mxIlECa52hNgxuvQoilmvay5Fc9csLPZC7zhL4vocTZJOlBqcCOPRK2 0qFHDy1yNWSnEhbGD6FIb/sPGvJLVCG7GBrJkrVUiWdA0RebJA3r0Be0gjs798ya /jjaplZ1VYFvfENQjxOXXsxtHYte+7OI2Ay71BYAw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=J4pdh+ fPPHIb6zKm+CyViSFbeMylAHuPcmcg71z7x4Y=; b=OfwhXD6W6nqQ/eXq6u+onh rjIYVh1SuQm1jXG6apqNLhxxKlKSgz3DkXtHrKHARXdIveoojoBDJOY4M7icU08h vicTemvZjt880JEdVHbUOHlUG376jUGiP4hSob5l3VAx1feV7npsexPOElZQVlhT be8mjlca6TX7/oBjfcequF+LPvsx1azO5q3QjOELVG36Nx5l+NCZSZ4+xXtw+a47 CmEAOw4jN6ktPPaeoYI9yXkzMEicrZYsIl8JFvpdWD+9TT+2ASLTtO2pARcPJL1R x7LuqQN+1m5XPMcEaaet/RQaTvWOGW8vjNT91Ycp8uCDtnoAVw+V3J9pI+QGlE4g == X-ME-Proxy: X-ME-Sender: Received: from ordinateur-de-catherine--konrad.home (lfbn-1-4181-102.w92-169.abo.wanadoo.fr [92.169.174.102]) by mail.messagingengine.com (Postfix) with ESMTPA id 6EE0A10288; Thu, 30 Aug 2018 01:57:56 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <87zhx59gh3.fsf@elephly.net> References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> Date: Thu, 30 Aug 2018 07:57:55 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Ricardo, > I also agree with you that we don=E2=80=99t need channels for providing a= stable > branch. The biggest obstacle to providing a stable branch is not > technical, but it requires people maintaining it. Look at this from the opposite end: if you were interested in maintaining a stable software distribution, would you choose a quickly evolving package manager such as Guix as the basis? I'd say no, and I am speaking from experience because I did actually maintain stable software installations for a couple of years. You want to concentrate on critical bug fixes and avoid anything else that could perturb the stability of your system. For me this whole discussion isn't about technicalities. Channels are just a convenience layer on top of what can already be done with GUIX_PACKAGE_PATH and manifest files. The real issue is how such features are advertised: as a way to bolt on your own developments, following Guix evolution closely, or as a way to provide decoupled autonomous branches such as stable software. So I agree with Ludo that a communication along the lines of > I had this example in mind too: the kernel technically supports > out-of-tree modules, but kernel developers have always resisted pressure > to freeze APIs. > > Because this policy has been stated upfront very clearly and has > remained unchanged, out-of-tree module developers know that that the > compatibility burden is on them. There=E2=80=99s flexibility, along with= a > strong incentive to get things in the mainline kernel. should be sufficient to avoid the issue that Mark has raised here. But it also discourages people interested in stable software installations from using or contributing to Guix. Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels not needed for a stable branch Resent-From: Mark H Weaver Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 06:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: Ricardo Wurmus , 22629@debbugs.gnu.org, Alex Sassmannshausen Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15356114311204 (code B ref 22629); Thu, 30 Aug 2018 06:44:02 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 06:43:51 +0000 Received: from localhost ([127.0.0.1]:37835 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvGgJ-0000JM-Cn for submit@debbugs.gnu.org; Thu, 30 Aug 2018 02:43:51 -0400 Received: from world.peace.net ([64.112.178.59]:40704) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvGgH-0000J9-Mp for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 02:43:49 -0400 Received: from mhw by world.peace.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1fvGgA-0001KX-VZ; Thu, 30 Aug 2018 02:43:43 -0400 From: Mark H Weaver References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> Date: Thu, 30 Aug 2018 02:42:06 -0400 In-Reply-To: (Konrad Hinsen's message of "Thu, 30 Aug 2018 07:57:55 +0200") Message-ID: <875zzs9wzl.fsf@netris.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Konrad Hinsen writes: >> I also agree with you that we don=E2=80=99t need channels for providing = a stable >> branch. The biggest obstacle to providing a stable branch is not >> technical, but it requires people maintaining it. > > Look at this from the opposite end: if you were interested in > maintaining a stable software distribution, would you choose a quickly > evolving package manager such as Guix as the basis? I'd say no, and I am > speaking from experience because I did actually maintain stable software > installations for a couple of years. You want to concentrate on critical > bug fixes and avoid anything else that could perturb the stability of > your system. I'm not sure what you're trying to argue above. To me, it looks like an argument in favor of my position, namely that a stable version of Guix should include _all_ of Guix, not just the packages. If you want to maintain a stable distribution, why would you want to combine stable package descriptions with quickly evolving infrastructure that makes up the rest of Guix? If you want stability, wouldn't it be better to keep a stable branch of _all_ of Guix, so that both the package descriptions _and_ the infrastructure upon which those packages depend are kept stable? This is exactly what a 'stable' branch in a git repository would provide, and moreover "guix pull" already has everything that's needed to support this. All that's needed are people to maintain such a branch. If we again compare this to Linux (the kernel project) and their refusal to support out-of-tree drivers: I'm arguing in favor of the Linux approach, where stable kernels are based on git branches that include a _all_ of Linux. Your position, transposed to Linux, would seem to be in favor of third-parties supporting stable drivers, which would then be combined with the latest version of the rest of the kernel. Am I misunderstanding your argument? Can you please clarify? Mark From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels not needed for a stable branch Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 10:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Mark H Weaver Cc: Ricardo Wurmus , 22629@debbugs.gnu.org, Alex Sassmannshausen Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153562386420603 (code B ref 22629); Thu, 30 Aug 2018 10:12:01 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 10:11:04 +0000 Received: from localhost ([127.0.0.1]:37932 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvJuo-0005MD-8W for submit@debbugs.gnu.org; Thu, 30 Aug 2018 06:11:03 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:43563) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvJum-0005Lp-MR for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 06:11:01 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 6DCF121FC0; Thu, 30 Aug 2018 06:10:59 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Thu, 30 Aug 2018 06:10:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=9zg8A/qySqJsY4Hwa8HjLh3rZZUXh0g5qV43e3LzSiA=; b=FJ9VvN6R QW/WILEogtp1Io4j4ogcjkn64c8PuZlgX31+dNWCAwCgtPDGuX0UPclHSGCvva3/ 7Hya0xq9pYj8C3RcjWYgCKN2nQ9Fz0g2QsCmZvozsZ4DV5FL4vvDpQSQ6hLebN6i zp7dBL3nB5ueKHKqCiT36uqcELRGLrceLRQdYHRB5if4Ym+83M7t09MJ70/0tbyb iRifalS+88Z2X9OKYrx/Z/nB+9fwJxhA7SusEOiJ+fHLfObXAn9IP4BMnuDfoE95 u9dJ6w/vDfMQiBODqgY7NYy5/PhiFmyS2FlwKHFhHtbJAleM4frRK7W79Yz06zYa RKm1rlsVSd9Gpw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=9zg8A/qySqJsY4Hwa8HjLh3rZZUXh 0g5qV43e3LzSiA=; b=cxMFED4sz4/Z4/xAtQM7YZpZGwKngqTCrHUQ3plmzJaE6 QhT2Q8/RCFdOA+OgvXZpULDIMwuZ7mmLVcqpZyftI9X8KF6JuI4uQhIm4WV3WeXz P+gXgC26V4FDEM4bHTQDUaz3vNk/v8kG7sUin4jKMNTrIpdZEixhxR+IgrjSf6KX k9l2lMFQIk5FuPT8cGdT4KR0oxeLmXxMT5JackkINqSbHy2xo0/b3MPnuIVnD/2A sr6yYin6uIjK3/tR9HXGoQSxI0kHLbQMnnwiBhIzDYN5DotVHiVO5gpnuodrlNN/ ZRCgmz/cLq7Jelx9FdjlG4tt230h9rKIx5jfPtT5Q== X-ME-Proxy: X-ME-Sender: Received: from KHs-MacBook.local (soleil-ext.synchrotron.fr [195.221.0.206]) by mail.messagingengine.com (Postfix) with ESMTPA id 2013510292; Thu, 30 Aug 2018 06:10:58 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <875zzs9wzl.fsf@netris.org> References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> Date: Thu, 30 Aug 2018 12:10:56 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Mark, > I'm not sure what you're trying to argue above. To me, it looks like an > argument in favor of my position, namely that a stable version of Guix > should include _all_ of Guix, not just the packages. All, probably not, some, probably yes. What I am arguing is that the productive coexistence of a stable version with the bleeding-edge version requires agreement on a stable foundation. Where exactly the borderline lies between this foundation and what is built on top of it is not a question I am sufficiently qualified to answer. The minimal stable foundation would have to include the file system layout of profiles, to make sure that users can mix packages from both versions safely. It would also be highly desirable to share the store, whose layout would then have to be part of the foundation as well. Moreover, I suspect it would be preferable or even necessary to have only one daemon running - if that's true, then the daemon's communication protocol would have be part of the foundation as well. Without a common foundation, a stable version would have to be a completely autonomous fork, which should then probably adopt a different name as well. I don't think this is desirable, in particular for GuixSD which would lose most of its interest if it required multiple package managers. Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 12:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: Mark H Weaver , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153563150815654 (code B ref 22629); Thu, 30 Aug 2018 12:19:02 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 12:18:28 +0000 Received: from localhost ([127.0.0.1]:38014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvLu8-00044Q-Bf for submit@debbugs.gnu.org; Thu, 30 Aug 2018 08:18:28 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46439) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvLu7-00044D-KF for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 08:18:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvLty-0003jL-LQ for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 08:18:22 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45029) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvLty-0003jD-Eb; Thu, 30 Aug 2018 08:18:18 -0400 Received: from [193.50.110.186] (port=42842 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvLty-0003VU-6n; Thu, 30 Aug 2018 08:18:18 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 13 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 30 Aug 2018 14:18:16 +0200 In-Reply-To: (Konrad Hinsen's message of "Thu, 30 Aug 2018 12:10:56 +0200") Message-ID: <874lfcxd2v.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Konrad, Konrad Hinsen skribis: > The minimal stable foundation would have to include the file system > layout of profiles, to make sure that users can mix packages from both > versions safely. It would also be highly desirable to share the store, > whose layout would then have to be part of the foundation as well. > > Moreover, I suspect it would be preferable or even necessary to have > only one daemon running - if that's true, then the daemon's > communication protocol would have be part of the foundation as well. > > Without a common foundation, a stable version would have to be a > completely autonomous fork, which should then probably adopt a different > name as well. I don't think this is desirable, in particular for GuixSD > which would lose most of its interest if it required multiple package > managers. These are all things that very rarely, if ever, changed over the last 5 years. I expect the change rate to remain the same. :-) You seem to be arguing of a =E2=80=9Cstable=E2=80=9D branch in the sense th= at the Guix tools (the CLI in particular) wouldn=E2=80=99t change much, is that correct? I=E2=80=99m asking because there are several ways to define =E2=80=9Cstable= .=E2=80=9D Initially I thought what you had in mind was like the =E2=80=9Cstable=E2=80=9D branch= in Debian, meaning that packages only get security updates. To me that=E2=80=99s a different thing. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: Alex Sassmannshausen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 14:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: Konrad Hinsen , 22629@debbugs.gnu.org Reply-To: alex@pompo.co Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15356382303143 (code B ref 22629); Thu, 30 Aug 2018 14:11:02 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 14:10:30 +0000 Received: from localhost ([127.0.0.1]:39255 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvNeY-0000od-0m for submit@debbugs.gnu.org; Thu, 30 Aug 2018 10:10:30 -0400 Received: from [82.153.16.8] (port=51966 helo=ronja.pompo.co) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvNeV-0000oP-Ls for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 10:10:28 -0400 Received: from rosser (unknown [87.236.135.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ronja.pompo.co (Postfix) with ESMTPSA id D221A402FB; Thu, 30 Aug 2018 14:10:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pompo.co; s=mail; t=1535638221; bh=zDDuZ7JYFBUJK5dCnNGZ999MmKaEaALWyyf/c+sfDys=; h=References:From:To:Cc:Subject:Reply-To:In-reply-to:Date:From; b=NN/M8PGa4faAbMx9DNCJg56EURBlMLWtf/jAfTSo7pIkLvD//6L2t9jaL13+EtEi+ 2hXUcxvS7n36QvjNQdTQSL95kSQu01Lg00YIJC99Q3BRfiJPTMrEN3LGy7DYUpl4kW NWlaHgTMmeorJZ6ziDRQntMZCWXpv0LJ3qjUdz/M= References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> User-agent: mu4e 1.0; emacs 26.1 From: Alex Sassmannshausen In-reply-to: <874lfcxd2v.fsf_-_@gnu.org> Date: Thu, 30 Aug 2018 16:10:20 +0200 Message-ID: <87wos8lzcj.fsf@pompo.co> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Ludovic =?UTF-8?Q?Court=C3=A8s?= writes: > Hi Konrad, > > Konrad Hinsen skribis: > >> The minimal stable foundation would have to include the file system >> layout of profiles, to make sure that users can mix packages from both >> versions safely. It would also be highly desirable to share the store, >> whose layout would then have to be part of the foundation as well. >> >> Moreover, I suspect it would be preferable or even necessary to have >> only one daemon running - if that's true, then the daemon's >> communication protocol would have be part of the foundation as well. >> >> Without a common foundation, a stable version would have to be a >> completely autonomous fork, which should then probably adopt a different >> name as well. I don't think this is desirable, in particular for GuixSD >> which would lose most of its interest if it required multiple package >> managers. > > These are all things that very rarely, if ever, changed over the last 5 > years. I expect the change rate to remain the same. :-) > > You seem to be arguing of a =?UTF-8?Q?=E2=80=9Cstable=E2=80=9D?= branch in the sense that the Guix > tools (the CLI in particular) =?UTF-8?Q?wouldn=E2=80=99t?= change much, is that correct? > > =?UTF-8?Q?I=E2=80=99m?= asking because there are several ways to define =?UTF-8?Q?=E2=80=9Cstable.=E2=80=9D?= Initially > I thought what you had in mind was like the =?UTF-8?Q?=E2=80=9Cstable=E2=80=9D?= branch in Debian, > meaning that packages only get security updates. To me =?UTF-8?Q?that=E2=80=99s?= a > different thing. [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Ludovic Court=C3=A8s writes: > Hi Konrad, > > Konrad Hinsen skribis: > >> The minimal stable foundation would have to include the file system >> layout of profiles, to make sure that users can mix packages from both >> versions safely. It would also be highly desirable to share the store, >> whose layout would then have to be part of the foundation as well. >> >> Moreover, I suspect it would be preferable or even necessary to have >> only one daemon running - if that's true, then the daemon's >> communication protocol would have be part of the foundation as well. >> >> Without a common foundation, a stable version would have to be a >> completely autonomous fork, which should then probably adopt a different >> name as well. I don't think this is desirable, in particular for GuixSD >> which would lose most of its interest if it required multiple package >> managers. > > These are all things that very rarely, if ever, changed over the last 5 > years. I expect the change rate to remain the same. :-) > > You seem to be arguing of a =E2=80=9Cstable=E2=80=9D branch in the sense = that the Guix > tools (the CLI in particular) wouldn=E2=80=99t change much, is that corre= ct? > > I=E2=80=99m asking because there are several ways to define =E2=80=9Cstab= le.=E2=80=9D Initially > I thought what you had in mind was like the =E2=80=9Cstable=E2=80=9D bran= ch in Debian, > meaning that packages only get security updates. To me that=E2=80=99s a > different thing. I don't know if this is what Konrad desires, but from my perspective, a desirable part of the definition of stable would be a that the build farms have produced a set of binaries/substitutes for a given Guix revision that is "good enough". Where good enough might mean something like "no more build failures than the previous iteration", or "no more build failures on common desktop applications" or other some exciting metric (the exact definition is not really important right now). The main concern here would be that we try to avoid end users from having unexpected build failures or even missing substitutes after doing a guix pull. Alex From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 14:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= , Alex Sassmannshausen Cc: Mark H Weaver , 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15356404126727 (code B ref 22629); Thu, 30 Aug 2018 14:47:02 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 14:46:52 +0000 Received: from localhost ([127.0.0.1]:39299 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvODk-0001kR-Iy for submit@debbugs.gnu.org; Thu, 30 Aug 2018 10:46:52 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:52055) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvODe-0001kF-Il for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 10:46:48 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id E062120F1D; Thu, 30 Aug 2018 10:46:45 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Thu, 30 Aug 2018 10:46:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=1X9tQQkbjA3X6xjH6v4lDBzZ1DQlv HcWJONwJWVzYkM=; b=JL6OrNc1R7WuM8gzN9MebtL658WERrV8qJwrhxJ/cTJT+ 3OzwimSfOw8whNjuzf2KvCfn69Ddxt14Xjr1BklgAHYr0/gk3dqqTn2/ebpYTSPF I4FEAddDjEdmV+9lwatKqQNfPBYMkRNSqenHpcTMRfcmus4p86oPLTkEgRPess7N fb0xO3Z9o2fbtWbl+YX7SthneYsQmSrSlM77SXCtVazuPfE23SR8Bxt3t4brMjqA R4sj2nTNktgzafkh2mFewWSXHMmrS++kVR4OKU62h0SHVh2VDomnBiHLq4A2SzTD yGCQ3YRIEyjBCTuf3W/Lf9xJ/PvvYwULPeQnUXn+w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=1X9tQQ kbjA3X6xjH6v4lDBzZ1DQlvHcWJONwJWVzYkM=; b=Ov1nwFOVvUHX7d1Z3OJqvP eb0ey50APd+at61WTZlhb/IxLyRx3RYP5gjjP4WA3IQUK5zooJdws8L94c9+FLcA iqArQmraYm7nm6uT/ONjeR85EPVE8XRt9w9Z8AEyy8W5Z1YKSIc3FaGbx1uQUA7v fmyGzrxx5vdaZaJ/3i7WncU5QVLvwmLCJQcvVHPBw0TvJoV+Bl3lB4Gg8pBPuXLL XWoByRtQoC9GNs0mqnBsTzW5Chm2GAqj+4EFBsbjHbmUY42SHPd/XHcd/bQNEX0N o2VHoAWcavFPj8R4gOH65EeAWI0x6RULLmDvtLaL5MdGXWV74+22kOpUJI88pFow == X-ME-Proxy: X-ME-Sender: Received: from kh-MacBookPro (soleil-ext.synchrotron.fr [195.221.0.206]) by mail.messagingengine.com (Postfix) with ESMTPA id A3C1310293; Thu, 30 Aug 2018 10:46:44 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <874lfcxd2v.fsf_-_@gnu.org> References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> Date: Thu, 30 Aug 2018 16:46:43 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Ludo and Alex, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > These are all things that very rarely, if ever, changed over the last 5 > years. I expect the change rate to remain the same. :-) That's reassuring! > You seem to be arguing of a =E2=80=9Cstable=E2=80=9D branch in the sense = that the Guix > tools (the CLI in particular) wouldn=E2=80=99t change much, is that corre= ct? > > I=E2=80=99m asking because there are several ways to define =E2=80=9Cstab= le.=E2=80=9D Initially > I thought what you had in mind was like the =E2=80=9Cstable=E2=80=9D bran= ch in Debian, > meaning that packages only get security updates. To me that=E2=80=99s a > different thing. What I have in mind is whatever it takes to build a stable software system. That includes stable ingredients (packages) but also stable glue, meaning the package definitions and the build system that produces the binaries from them. Stability of the Guix CLI is much less relevant from my point of view. Alex Sassmannshausen writes: > I don't know if this is what Konrad desires, but from my perspective, a > desirable part of the definition of stable would be a that the build > farms have produced a set of binaries/substitutes for a given Guix > revision that is "good enough". That's another very practically relevant notion of stability. Mine goes beyond that though. For example, I'd require all packages to build and pass tests at all times. Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: Channels! Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 21:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153566458419820 (code B ref 22629); Thu, 30 Aug 2018 21:30:02 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 21:29:44 +0000 Received: from localhost ([127.0.0.1]:39485 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvUVb-00059c-VF for submit@debbugs.gnu.org; Thu, 30 Aug 2018 17:29:44 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33548) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvUVY-00059K-Mg for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:29:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvUVS-0007bq-J1 for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:29:35 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58967) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvUVS-0007bQ-F3 for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:29:34 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=53184 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvUVS-0005I8-04 for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:29:34 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> Date: Thu, 30 Aug 2018 23:29:32 +0200 In-Reply-To: <87pny2iks2.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 28 Aug 2018 17:16:29 +0200") Message-ID: <87lg8nr1ab.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > The patches that follow implement this last bit, though in a slightly > different way. Users would now have the option to provide > ~/.config/guix/channels.scm along these lines: > > (cons (channel > (name 'guix-hpc) > (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git") > (branch "origin/master")) > %default-channels) What follows is version 2 of the patches, which I=E2=80=99d like to push wi= thin a day or two. The main changes are: 1. Added documentation for channels and ~/.config/guix/channels.scm. In particular I added a warning about compatibility that summarizes what we discussed. Please let me know what you think. 2. Added -C/--channels option to =E2=80=98guix pull=E2=80=99 to specify a= channel file. 3. Fixed =E2=80=98update-NEWS.scm=E2=80=99, which assumed that the last i= tem of (%package-module-path) is Guix=E2=80=99s own set of modules. We also = find this pattern in guix-artwork.git/website and probably in other places, so we=E2=80=99ll have to adjust them. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH v2 1/3] discovery: Add 'scheme-modules*'. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 21:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153566474120157 (code B ref 22629); Thu, 30 Aug 2018 21:33:02 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 21:32:21 +0000 Received: from localhost ([127.0.0.1]:39492 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvUY8-0005F2-Nj for submit@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:20 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33988) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvUY6-0005Ei-HT for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvUY0-0000Bx-Kd for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:13 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59005) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvUXv-000093-Gr; Thu, 30 Aug 2018 17:32:08 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=53190 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvUXu-0000FZ-Gm; Thu, 30 Aug 2018 17:32:07 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 30 Aug 2018 23:31:50 +0200 Message-Id: <20180830213152.3404-1-ludo@gnu.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <87lg8nr1ab.fsf@gnu.org> References: <87lg8nr1ab.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/self.scm (scheme-modules*): Move to... * guix/discovery.scm (scheme-modules*): ... here. New procedure. Make 'sub-directory' an optional parameter. --- guix/discovery.scm | 13 ++++++++++++- guix/self.scm | 7 ------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/guix/discovery.scm b/guix/discovery.scm index 2b627d108..3fc6e2c9e 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +27,7 @@ #:use-module (ice-9 ftw) #:export (scheme-files scheme-modules + scheme-modules* fold-modules all-modules fold-module-public-variables)) @@ -115,6 +116,16 @@ name and the exception key and arguments." (string-append directory "/" sub-directory) directory)))) +(define* (scheme-modules* directory #:optional sub-directory) + "Return the list of module names found under SUB-DIRECTORY in DIRECTORY. +This is a source-only variant that does not try to load files." + (let ((prefix (string-length directory))) + (map (lambda (file) + (file-name->module-name (string-drop file prefix))) + (scheme-files (if sub-directory + (string-append directory "/" sub-directory) + directory))))) + (define* (fold-modules proc init path #:key (warn (const #f))) "Fold over all the Scheme modules present in PATH, a list of directories. Call (PROC MODULE RESULT) for each module that is found." diff --git a/guix/self.scm b/guix/self.scm index 90649db17..81f9b0cfd 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -206,13 +206,6 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (local-file file #:recursive? #t))) (find-files (string-append directory "/" sub-directory) pred))) -(define (scheme-modules* directory sub-directory) - "Return the list of module names found under SUB-DIRECTORY in DIRECTORY." - (let ((prefix (string-length directory))) - (map (lambda (file) - (file-name->module-name (string-drop file prefix))) - (scheme-files (string-append directory "/" sub-directory))))) - (define* (sub-directory item sub-directory) "Return SUB-DIRECTORY within ITEM, which may be a file name or a file-like object." -- 2.18.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH v2 2/3] Add (guix describe) and use it to initialize '%package-search-path'. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 21:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153566474320166 (code B ref 22629); Thu, 30 Aug 2018 21:33:02 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 21:32:23 +0000 Received: from localhost ([127.0.0.1]:39494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvUYB-0005FC-0U for submit@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:23 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34002) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvUY7-0005Ek-GB for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvUY1-0000CL-5b for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:14 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59007) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvUXw-0000AL-Vz; Thu, 30 Aug 2018 17:32:09 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=53190 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvUXv-0000FZ-Od; Thu, 30 Aug 2018 17:32:08 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 30 Aug 2018 23:31:51 +0200 Message-Id: <20180830213152.3404-2-ludo@gnu.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180830213152.3404-1-ludo@gnu.org> References: <87lg8nr1ab.fsf@gnu.org> <20180830213152.3404-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/describe.scm: New file. * Makefile.am (MODULES): Add it. * gnu/packages.scm (%default-package-module-path): New variable. (%package-module-path): Honor 'package-path-entries'. * build-aux/update-NEWS.scm (main): Use %DEFAULT-PACKAGE-MODULE-PATH instead of (last (%package-module-path)). --- Makefile.am | 1 + build-aux/update-NEWS.scm | 9 +++-- gnu/packages.scm | 27 ++++++++++----- guix/describe.scm | 73 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 guix/describe.scm diff --git a/Makefile.am b/Makefile.am index 324674a60..b6efd6d62 100644 --- a/Makefile.am +++ b/Makefile.am @@ -86,6 +86,7 @@ MODULES = \ guix/derivations.scm \ guix/grafts.scm \ guix/inferior.scm \ + guix/describe.scm \ guix/gnu-maintenance.scm \ guix/self.scm \ guix/upstream.scm \ diff --git a/build-aux/update-NEWS.scm b/build-aux/update-NEWS.scm index 2e8f68c9a..a9dffef1d 100644 --- a/build-aux/update-NEWS.scm +++ b/build-aux/update-NEWS.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -128,11 +128,10 @@ paragraph." (define (main . args) (match args ((news-file data-directory) - ;; Don't browse things listed in the user's $GUIX_PACKAGE_PATH. Here we - ;; assume that the last item in (%package-module-path) is the distro - ;; directory. + ;; Don't browse things listed in the user's $GUIX_PACKAGE_PATH and + ;; in external channels. (parameterize ((%package-module-path - (list (last (%package-module-path))))) + %default-package-module-path)) (define (package-file version) (string-append data-directory "/packages-" version ".txt")) diff --git a/gnu/packages.scm b/gnu/packages.scm index 7b954769e..532297239 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -30,6 +30,7 @@ #:select ((package-name->name+version . hyphen-separated-name->name+version))) #:autoload (guix profiles) (packages->manifest) + #:use-module (guix describe) #:use-module (ice-9 vlist) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -46,6 +47,7 @@ %auxiliary-files-path %bootstrap-binaries-path %package-module-path + %default-package-module-path fold-packages @@ -130,22 +132,31 @@ for system '~a'") ("gnu/packages.scm" gnu/) ("guix.scm")))) +(define %default-package-module-path + ;; Default search path for package modules. + `((,%distro-root-directory . "gnu/packages"))) + (define %package-module-path ;; Search path for package modules. Each item must be either a directory ;; name or a pair whose car is a directory and whose cdr is a sub-directory ;; to narrow the search. (let* ((not-colon (char-set-complement (char-set #\:))) (environment (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "") - not-colon))) - ;; Automatically add items from $GUIX_PACKAGE_PATH to Guile's search path. - (for-each (lambda (directory) - (set! %load-path (cons directory %load-path)) - (set! %load-compiled-path - (cons directory %load-compiled-path))) - environment) + not-colon)) + (channels (package-path-entries))) + ;; Automatically add channels and items from $GUIX_PACKAGE_PATH to Guile's + ;; search path. For historical reasons, $GUIX_PACKAGE_PATH goes to the + ;; front; channels go to the back so that they don't override Guix' own + ;; modules. + (set! %load-path + (append environment %load-path channels)) + (set! %load-compiled-path + (append environment %load-compiled-path channels)) (make-parameter - (append environment `((,%distro-root-directory . "gnu/packages")))))) + (append environment + %default-package-module-path + channels)))) (define %patch-path ;; Define it after '%package-module-path' so that '%load-path' contains user diff --git a/guix/describe.scm b/guix/describe.scm new file mode 100644 index 000000000..3122a762f --- /dev/null +++ b/guix/describe.scm @@ -0,0 +1,73 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix describe) + #:use-module (guix memoization) + #:use-module (guix profiles) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match) + #:export (package-path-entries)) + +;;; Commentary: +;;; +;;; This module provides supporting code to allow a Guix instance to find, at +;;; run time, which profile it's in (profiles created by 'guix pull'). That +;;; allows it to read meta-information about itself (e.g., repository URL and +;;; commit ID) and to find other channels available in the same profile. It's +;;; a bit like ELPA's pkg-info.el. +;;; +;;; Code: + +(define current-profile + (mlambda () + "Return the profile (created by 'guix pull') the calling process lives in, +or #f if this is not applicable." + (match (command-line) + ((program . _) + (and (string-suffix? "/bin/guix" program) + ;; Note: We want to do _lexical dot-dot resolution_. Using ".." + ;; for real would instead take us into the /gnu/store directory + ;; that ~/.config/guix/current/bin points to, whereas we want to + ;; obtain ~/.config/guix/current. + (let ((candidate (dirname (dirname program)))) + (and (file-exists? (string-append candidate "/manifest")) + candidate))))))) + +(define current-profile-entries + (mlambda () + "Return the list of entries in the 'guix pull' profile the calling process +lives in, or #f if this is not applicable." + (match (current-profile) + (#f '()) + (profile + (let ((manifest (profile-manifest profile))) + (manifest-entries manifest)))))) + +(define package-path-entries + (mlambda () + "Return a list of package path entries to be added to the package search +path. These entries are taken from the 'guix pull' profile the calling +process lives in, when applicable." + ;; Filter out Guix itself. + (filter-map (lambda (entry) + (and (not (string=? (manifest-entry-name entry) + "guix")) + (string-append (manifest-entry-item entry) + "/share/guile/site/" + (effective-version)))) + (current-profile-entries)))) -- 2.18.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH v2 3/3] Add (guix channels) and use it in (guix scripts pull). Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 21:33:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22629@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153566475220191 (code B ref 22629); Thu, 30 Aug 2018 21:33:03 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 21:32:32 +0000 Received: from localhost ([127.0.0.1]:39497 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvUYF-0005FU-GV for submit@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:32 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34019) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvUYC-0005Ev-Ct for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvUY3-0000Dn-Dw for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 17:32:19 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59008) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvUXx-0000Av-Pj; Thu, 30 Aug 2018 17:32:09 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=53190 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvUXx-0000FZ-9A; Thu, 30 Aug 2018 17:32:09 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 30 Aug 2018 23:31:52 +0200 Message-Id: <20180830213152.3404-3-ludo@gnu.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180830213152.3404-1-ludo@gnu.org> References: <87lg8nr1ab.fsf@gnu.org> <20180830213152.3404-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) * guix/channels.scm: New file. * Makefile.am (MODULES): Add it. * guix/scripts/pull.scm: Use it. (%default-options): Remove 'repository-url' and 'ref'. (show-help, %options): Add '--channels'. (%self-build-file, %pull-version, build-from-source) (whole-package-for-legacy, derivation->manifest-entry): Remove. These now exist in a similar form in (guix channels). (build-and-install): Change 'source' to 'instances'. Remove #:url, #:branch, and #:commit. Rewrite using 'channel-instances->manifest'. (channel-list): New procedure. (guix-pull): Parameterize %REPOSITORY-CACHE-DIRECTORY. Call 'honor-lets-encrypt-certificates!' unconditionally. Load ~/.config/guix/channels.scm. Rewrite to use (guix channels). [use-le-certs?]: Remove. * po/guix/POTFILES.in: Add (guix channels). * doc/guix.texi (Invoking guix pull): Group the description of '--url', '--commit', and '--branch'. Remove mention of 'GUIX_PULL_URL'. Add references to "Channels". Document '--channels'. (Channels): New node. (Defining Packages): Link to "Channels" instead of "Package Modules". (Invoking guix edit): Link to "Package Modules" instead of "Defining Packages". (Package Modules): Document both GUIX_PACKAGE_PATH and channels. --- Makefile.am | 1 + doc/guix.texi | 271 ++++++++++++++++++++++++++++++++------- guix/channels.scm | 292 ++++++++++++++++++++++++++++++++++++++++++ guix/scripts/pull.scm | 218 ++++++++++++++----------------- po/guix/POTFILES.in | 1 + 5 files changed, 619 insertions(+), 164 deletions(-) create mode 100644 guix/channels.scm diff --git a/Makefile.am b/Makefile.am index b6efd6d62..af6870cf6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -87,6 +87,7 @@ MODULES = \ guix/grafts.scm \ guix/inferior.scm \ guix/describe.scm \ + guix/channels.scm \ guix/gnu-maintenance.scm \ guix/self.scm \ guix/upstream.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index cd0e74a2d..76d8626d7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -146,17 +146,18 @@ Package Management * Packages with Multiple Outputs:: Single source package, multiple outputs. * Invoking guix gc:: Running the garbage collector. * Invoking guix pull:: Fetching the latest Guix and distribution. +* Channels:: Customizing the package collection. * Invoking guix pack:: Creating software bundles. * Invoking guix archive:: Exporting and importing store files. Substitutes -* Official Substitute Server:: One particular source of substitutes. -* Substitute Server Authorization:: How to enable or disable substitutes. -* Substitute Authentication:: How Guix verifies substitutes. -* Proxy Settings:: How to get substitutes via proxy. -* Substitution Failure:: What happens when substitution fails. -* On Trusting Binaries:: How can you trust that binary blob? +* Official Substitute Server:: One particular source of substitutes. +* Substitute Server Authorization:: How to enable or disable substitutes. +* Substitute Authentication:: How Guix verifies substitutes. +* Proxy Settings:: How to get substitutes via proxy. +* Substitution Failure:: What happens when substitution fails. +* On Trusting Binaries:: How can you trust that binary blob? Programming Interface @@ -202,7 +203,7 @@ GNU Distribution * System Installation:: Installing the whole operating system. * System Configuration:: Configuring the operating system. -* Documentation:: Browsing software user manuals. +* Documentation:: Browsing software user manuals. * Installing Debugging Files:: Feeding the debugger. * Security Updates:: Deploying security fixes quickly. * Package Modules:: Packages from the programmer's viewpoint. @@ -264,7 +265,7 @@ Services * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. * Version Control Services:: Providing remote access to Git repositories. -* Game Services:: Game servers. +* Game Services:: Game servers. * Miscellaneous Services:: Other services. Defining Services @@ -1694,6 +1695,7 @@ guix package -i emacs-guix * Packages with Multiple Outputs:: Single source package, multiple outputs. * Invoking guix gc:: Running the garbage collector. * Invoking guix pull:: Fetching the latest Guix and distribution. +* Channels:: Customizing the package collection. * Invoking guix pack:: Creating software bundles. * Invoking guix archive:: Exporting and importing store files. @end menu @@ -2276,12 +2278,12 @@ pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes. @menu -* Official Substitute Server:: One particular source of substitutes. -* Substitute Server Authorization:: How to enable or disable substitutes. -* Substitute Authentication:: How Guix verifies substitutes. -* Proxy Settings:: How to get substitutes via proxy. -* Substitution Failure:: What happens when substitution fails. -* On Trusting Binaries:: How can you trust that binary blob? +* Official Substitute Server:: One particular source of substitutes. +* Substitute Server Authorization:: How to enable or disable substitutes. +* Substitute Authentication:: How Guix verifies substitutes. +* Proxy Settings:: How to get substitutes via proxy. +* Substitution Failure:: What happens when substitution fails. +* On Trusting Binaries:: How can you trust that binary blob? @end menu @node Official Substitute Server @@ -2746,7 +2748,8 @@ the distribution currently available on your local machine. To update that distribution, along with the Guix tools, you must run @command{guix pull}: the command downloads the latest Guix source code and package descriptions, and deploys it. Source code is downloaded from a -@uref{https://git-scm.com, Git} repository. +@uref{https://git-scm.com, Git} repository, by default the official +GNU@tie{}Guix repository, though this can be customized. On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix. Not only that, but all @@ -2821,20 +2824,23 @@ but it supports the following options: Produce verbose output, writing build logs to the standard error output. @item --url=@var{url} -Download Guix from the Git repository at @var{url}. +@itemx --commit=@var{commit} +@itemx --branch=@var{branch} +Download code from the specified @var{url}, at the given @var{commit} (a valid +Git commit ID represented as a hexadecimal string), or @var{branch}. -@vindex GUIX_PULL_URL -By default, the source is taken from its canonical Git repository at -@code{gnu.org}, for the stable branch of Guix. To use a different source, -set the @code{GUIX_PULL_URL} environment variable. +@cindex @file{channels.scm}, configuration file +@cindex configuration file for channels +These options are provided for convenience, but you can also specify your +configuration in the @file{~/.config/guix/channels.scm} file or using the +@option{--channels} option (see below). -@item --commit=@var{commit} -Deploy @var{commit}, a valid Git commit ID represented as a hexadecimal -string. - -@item --branch=@var{branch} -Deploy the tip of @var{branch}, the name of a Git branch available on -the repository at @var{url}. +@item --channels=@var{file} +@itemx -C @var{file} +Read the list of channels from @var{file} instead of +@file{~/.config/guix/channels.scm}. @var{file} must contain Scheme code that +evaluates to a list of channel objects. @xref{Channels}, for more +information. @item --list-generations[=@var{pattern}] @itemx -l [@var{pattern}] @@ -2848,9 +2854,178 @@ Use the bootstrap Guile to build the latest Guix. This option is only useful to Guix developers. @end table +The @dfn{channel} mechanism allows you to instruct @command{guix pull} which +repository and branch to pull from, as well as @emph{additional} repositories +containing package modules that should be deployed. @xref{Channels}, for more +information. + In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options}). +@node Channels +@section Channels + +@cindex @file{channels.scm}, configuration file +@cindex configuration file for channels +@cindex @command{guix pull}, configuration file +@cindex configuration of @command{guix pull} +Guix and its package collection are updated by running @command{guix pull} +(@pxref{Invoking guix pull}). By default @command{guix pull} downloads and +deploys Guix itself from the official GNU@tie{}Guix repository. This can be +customized by defining @dfn{channels} in the +@file{~/.config/guix/channels.scm} file. A channel specifies a URL and branch +of a Git repository to be deployed, and @command{guix pull} can be instructed +to pull from one or more channels. In other words, channels can be used to +@emph{customize} and to @emph{extend} Guix, as we will see below. + +@subsection Using a Custom Guix Channel + +The channel called @code{guix} specifies where Guix itself---its command-line +tools as well as its package collection---should be downloaded. For instance, +suppose you want to update from your own copy of the Guix repository at +@code{example.org}, and specifically the @code{super-hacks} branch, you can +write in @code{~/.config/guix/channels.scm} this specification: + +@lisp +;; Tell 'guix pull' to use my own repo. +(list (channel + (name 'guix) + (url "https://example.org/my-guix.git") + (branch "super-hacks"))) +@end lisp + +@noindent +From there on, @command{guix pull} will fetch code from the @code{super-hacks} +branch of the repository at @code{example.org}. + +@subsection Specifying Additional Channels + +@cindex extending the package collection (channels) +@cindex personal packages (channels) +@cindex channels, for personal packages +You can also specify @emph{additional channels} to pull from. Let's say you +have a bunch of custom package variants or personal packages that you think +would make little sense to contribute to the Guix project, but would like to +have these packages transparently available to you at the command line. You +would first write modules containing those package definitions (@pxref{Package +Modules}), maintain them in a Git repository, and then you and anyone else can +use it as an additional channel to get packages from. Neat, no? + +@c What follows stems from discussions at +@c as well as +@c earlier discussions on guix-devel@gnu.org. +@quotation Warning +Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and +publish your personal channel to the world, we would like to share a few words +of caution: + +@itemize +@item +Before publishing a channel, please consider contributing your package +definitions to Guix proper (@pxref{Contributing}). Guix as a project is open +to free software of all sorts, and packages in Guix proper are readily +available to all Guix users and benefit from the project's quality assurance +process. + +@item +When you maintain package definitions outside Guix, we, Guix developers, +consider that @emph{the compatibility burden is on you}. Remember that +package modules and package definitions are just Scheme code that uses various +programming interfaces (APIs). We want to remain free to change these APIs to +keep improving Guix, possibly in ways that break your channel. We never +change APIs gratuitously, but we will @emph{not} commit to freezing APIs +either. + +@item +Corollary: if you're using an external channel and that channel breaks, please +@emph{report the issue to the channel authors}, not to the Guix project. +@end itemize + +You've been warned! Having said this, we believe external channels are a +practical way to exert your freedom to augment Guix' package collection and to +share your improvements, which are basic tenets of +@uref{https://www.gnu.org/philosophy/free-sw.html, free software}. +@end quotation + +Once you have a Git repository containing your own package modules, you can +write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to +pull from your personal channel @emph{in addition} to the default Guix +channel(s): + +@vindex %default-channels +@lisp +;; Add my personal packages to those Guix provides. +(cons (channel + (name 'my-personal-packages) + (url "https://example.org/personal-packages.git")) + %default-channels) +@end lisp + +@noindent +Note that the snippet above is (as always!) Scheme code; we use @code{cons} to +add a channel the list of channels that the variable @code{%default-channels} +is bound to (@pxref{Pairs, @code{cons} and lists,, guile, GNU Guile Reference +Manual}). With this file in place, @command{guix pull} builds not only Guix +but also the package modules from your own repository. The result in +@file{~/.config/guix/current} is the union of Guix with your own package +modules: + +@example +$ guix pull --list-generations +@dots{} +Generation 19 Aug 27 2018 16:20:48 + guix d894ab8 + repository URL: https://git.savannah.gnu.org/git/guix.git + branch: master + commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300 + my-personal-packages dd3df5e + repository URL: https://example.org/personal-packages.git + branch: master + commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb + 11 new packages: my-gimp, my-emacs-with-cool-features, @dots{} + 4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{} +@end example + +@noindent +The output of @command{guix pull} above shows that Generation@tie{}19 includes +both Guix and packages from the @code{my-personal-packages} channel. Among +the new and upgraded packages that are listed, some like @code{my-gimp} and +@code{my-emacs-with-cool-features} might come from +@code{my-personal-packages}, while others come from the Guix default channel. + +@subsection Replicating Guix + +@cindex pinning, channels +@cindex replicating Guix +@cindex reproducibility, of Guix +The @command{guix pull --list-generations} output above shows precisely which +commits were used to build this instance of Guix. We can thus replicate it, +say, on another machine, by providing a channel specification in +@file{~/.config/guix/channels.scm} that is ``pinned'' to these commits: + +@lisp +;; Deploy specific commits of my channels of interest. +(list (channel + (name 'guix) + (url "https://git.savannah.gnu.org/git/guix.git") + (commit "d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300")) + (channel + (name 'my-personal-packages) + (url "https://example.org/personal-packages.git") + (branch "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb"))) +@end lisp + +At this point the two machines run the @emph{exact same Guix}, with access to +the @emph{exact same packages}. The output of @command{guix build gimp} on +one machine will be exactly the same, bit for bit, as the output of the same +command on the other machine. It also means both machines have access to all +the source code of Guix and, transitively, to all the source code of every +package it defines. + +This gives you super powers, allowing you to track the provenance of binary +artifacts with very fine grain, and to reproduce software environments at +will---some sort of ``meta reproducibility'' capabilities, if you will. + @node Invoking guix pack @section Invoking @command{guix pack} @@ -3431,9 +3606,9 @@ more information on how to test package definitions, and @ref{Invoking guix lint}, for information on how to check a definition for style conformance. @vindex GUIX_PACKAGE_PATH -Lastly, @pxref{Package Modules}, for information +Lastly, @pxref{Channels}, for information on how to extend the distribution by adding your own package definitions -to @code{GUIX_PACKAGE_PATH}. +in a ``channel''. Finally, updating the package definition to a new upstream version can be partly automated by the @command{guix refresh} command @@ -6255,8 +6430,8 @@ and that of Vim. If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @code{GUIX_PACKAGE_PATH} -(@pxref{Defining Packages}), you will be able to edit the package -recipes. Otherwise, you will be able to examine the read-only recipes +(@pxref{Package Modules}), you will be able to edit the package +recipes. In other cases, you will be able to examine the read-only recipes for packages currently in the store. @@ -8363,7 +8538,7 @@ For information on porting to other architectures or kernels, @menu * System Installation:: Installing the whole operating system. * System Configuration:: Configuring the operating system. -* Documentation:: Browsing software user manuals. +* Documentation:: Browsing software user manuals. * Installing Debugging Files:: Feeding the debugger. * Security Updates:: Deploying security fixes quickly. * Package Modules:: Packages from the programmer's viewpoint. @@ -8402,7 +8577,7 @@ available. @menu * Limitations:: What you can expect. * Hardware Considerations:: Supported hardware. -* USB Stick and DVD Installation:: Preparing the installation medium. +* USB Stick and DVD Installation:: Preparing the installation medium. * Preparing for Installation:: Networking, partitioning, etc. * Proceeding with the Installation:: The real thing. * Installing GuixSD in a VM:: GuixSD playground. @@ -10083,7 +10258,7 @@ declaration. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. * Version Control Services:: Providing remote access to Git repositories. -* Game Services:: Game servers. +* Game Services:: Game servers. * Miscellaneous Services:: Other services. @end menu @@ -22520,16 +22695,24 @@ name and module name must match. For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @code{GUIX_PACKAGE_PATH}. @xref{Modules and the File System,,, -guile, GNU Guile Reference Manual}, for details.}. These package definitions -will not be visible by default. Users can invoke commands such as -@command{guix package} and @command{guix build} with the -@code{-e} option so that they know where to find the package. Better -yet, they can use the -@code{-L} option of these commands to make those modules visible -(@pxref{Invoking guix build, @code{--load-path}}), or define the -@code{GUIX_PACKAGE_PATH} environment variable. This environment -variable makes it easy to extend or customize the distribution and is -honored by all the user interfaces. +guile, GNU Guile Reference Manual}, for details.}. There are two ways to make +these package definitions visible to the user interfaces: + +@enumerate +@item +By adding the directory containing your package modules to the search path +with the @code{-L} flag of @command{guix package} and other commands +(@pxref{Common Build Options}), or by setting the @code{GUIX_PACKAGE_PATH} +environment variable described below. + +@item +By defining a @dfn{channel} and configuring @command{guix pull} so that it +pulls from it. A channel is essentially a Git repository containing package +modules. @xref{Channels}, for more information on how to define and use +channels. +@end enumerate + +@code{GUIX_PACKAGE_PATH} works similarly to other search path variables: @defvr {Environment Variable} GUIX_PACKAGE_PATH This is a colon-separated list of directories to search for additional diff --git a/guix/channels.scm b/guix/channels.scm new file mode 100644 index 000000000..ec3e05eaf --- /dev/null +++ b/guix/channels.scm @@ -0,0 +1,292 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix channels) + #:use-module (guix git) + #:use-module (guix records) + #:use-module (guix gexp) + #:use-module (guix discovery) + #:use-module (guix monads) + #:use-module (guix profiles) + #:use-module (guix derivations) + #:use-module (guix store) + #:use-module (guix i18n) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-11) + #:autoload (guix self) (whole-package) + #:use-module (ice-9 match) + #:export (channel + channel? + channel-name + channel-url + channel-branch + channel-commit + channel-location + + %default-channels + + channel-instance? + channel-instance-channel + channel-instance-commit + channel-instance-checkout + + latest-channel-instances + channel-instance-derivations + latest-channel-derivations + channel-instances->manifest)) + +;;; Commentary: +;;; +;;; This module implements "channels." A channel is usually a source of +;;; package definitions. There's a special channel, the 'guix' channel, that +;;; provides all of Guix, including its commands and its documentation. +;;; User-defined channels are expected to typically provide a bunch of .scm +;;; files meant to be added to the '%package-search-path'. +;;; +;;; This module provides tools to fetch and update channels from a Git +;;; repository and to build them. +;;; +;;; Code: + +(define-record-type* channel make-channel + channel? + (name channel-name) + (url channel-url) + (branch channel-branch (default "master")) + (commit channel-commit (default #f)) + (location channel-location + (default (current-source-location)) (innate))) +;; TODO: Add a way to express dependencies among channels. + +(define %default-channels + ;; Default list of channels. + (list (channel + (name 'guix) + (branch "origin/master") + (url "https://git.savannah.gnu.org/git/guix.git")))) + +(define (guix-channel? channel) + "Return true if CHANNEL is the 'guix' channel." + (eq? 'guix (channel-name channel))) + +(define-record-type + (channel-instance channel commit checkout) + channel-instance? + (channel channel-instance-channel) + (commit channel-instance-commit) + (checkout channel-instance-checkout)) + +(define (channel-reference channel) + "Return the \"reference\" for CHANNEL, an sexp suitable for +'latest-repository-commit'." + (match (channel-commit channel) + (#f `(branch . ,(channel-branch channel))) + (commit `(commit . ,(channel-commit channel))))) + +(define (latest-channel-instances store channels) + "Return a list of channel instances corresponding to the latest checkouts of +CHANNELS." + (map (lambda (channel) + (format (current-error-port) + (G_ "Updating channel '~a' from Git repository at '~a'...~%") + (channel-name channel) + (channel-url channel)) + (let-values (((checkout commit) + (latest-repository-commit store (channel-url channel) + #:ref (channel-reference + channel)))) + (channel-instance channel commit checkout))) + channels)) + +(define %self-build-file + ;; The file containing code to build Guix. This serves the same purpose as + ;; a makefile, and, similarly, is intended to always keep this name. + "build-aux/build-self.scm") + +(define %pull-version + ;; This is the version of the 'guix pull' protocol. It specifies what's + ;; expected from %SELF-BUILD-FILE. The initial version ("0") was when we'd + ;; place a set of compiled Guile modules in ~/.config/guix/latest. + 1) + +(define (standard-module-derivation name source dependencies) + "Return a derivation that builds the Scheme modules in SOURCE and that +depend on DEPENDENCIES, a list of lowerable objects. The assumption is that +SOURCE contains package modules to be added to '%package-module-path'." + (define modules + (scheme-modules* source)) + + ;; FIXME: We should load, say SOURCE/.guix-channel.scm, which would allow + ;; channel publishers to specify things such as the sub-directory where .scm + ;; files live, files to exclude from the channel, preferred substitute URLs, + ;; etc. + (mlet* %store-monad ((compiled + (compiled-modules modules + #:name name + #:module-path (list source) + #:extensions dependencies))) + + (gexp->derivation name + (with-extensions dependencies + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (let ((go (string-append #$output "/lib/guile/" + (effective-version) + "/site-ccache")) + (scm (string-append #$output + "/share/guile/site/" + (effective-version)))) + (mkdir-p (dirname go)) + (symlink #$compiled go) + (mkdir-p (dirname scm)) + (symlink #$source scm)))))))) + +(define* (build-from-source name source + #:key verbose? commit + (dependencies '())) + "Return a derivation to build Guix from SOURCE, using the self-build script +contained therein. Use COMMIT as the version string." + ;; Running the self-build script makes it easier to update the build + ;; procedure: the self-build script of the Guix-to-be-installed contains the + ;; right dependencies, build procedure, etc., which the Guix-in-use may not + ;; be know. + (define script + (string-append source "/" %self-build-file)) + + (if (file-exists? script) + (let ((build (save-module-excursion + (lambda () + (primitive-load script))))) + ;; BUILD must be a monadic procedure of at least one argument: the + ;; source tree. + ;; + ;; Note: BUILD can return #f if it does not support %PULL-VERSION. In + ;; the future we'll fall back to a previous version of the protocol + ;; when that happens. + (build source #:verbose? verbose? #:version commit + #:pull-version %pull-version)) + + ;; Build a set of modules that extend Guix using the standard method. + (standard-module-derivation name source dependencies))) + +(define* (build-channel-instance instance #:optional (dependencies '())) + "Return, as a monadic value, the derivation for INSTANCE, a channel +instance. DEPENDENCIES is a list of extensions providing Guile modules that +INSTANCE depends on." + (build-from-source (symbol->string + (channel-name (channel-instance-channel instance))) + (channel-instance-checkout instance) + #:commit (channel-instance-commit instance) + #:dependencies dependencies)) + +(define (channel-instance-derivations instances) + "Return the list of derivations to build INSTANCES, in the same order as +INSTANCES." + (define core-instance + ;; The 'guix' channel is treated specially: it's an implicit dependency of + ;; all the other channels. + (find (lambda (instance) + (guix-channel? (channel-instance-channel instance))) + instances)) + + (mlet %store-monad ((core (build-channel-instance core-instance))) + (mapm %store-monad + (lambda (instance) + (if (eq? instance core-instance) + (return core) + (build-channel-instance instance + (list core)))) + instances))) + +(define latest-channel-derivations + (let ((latest-channel-instances (store-lift latest-channel-instances))) + (lambda (channels) + "Return, as a monadic value, the list of derivations for the latest +instances of CHANNELS." + (mlet %store-monad ((instances (latest-channel-instances channels))) + (channel-instance-derivations instances))))) + +(define (whole-package-for-legacy name modules) + "Return a full-blown Guix package for MODULES, a derivation that builds Guix +modules in the old ~/.config/guix/latest style." + (define packages + (resolve-interface '(gnu packages guile))) + + (letrec-syntax ((list (syntax-rules (->) + ((_) + '()) + ((_ (module -> variable) rest ...) + (cons (module-ref (resolve-interface + '(gnu packages module)) + 'variable) + (list rest ...))) + ((_ variable rest ...) + (cons (module-ref packages 'variable) + (list rest ...)))))) + (whole-package name modules + + ;; In the "old style", %SELF-BUILD-FILE would simply return a + ;; derivation that builds modules. We have to infer what the + ;; dependencies of these modules were. + (list guile-json guile-git guile-bytestructures + (ssh -> guile-ssh) (tls -> gnutls))))) + +(define (old-style-guix? drv) + "Return true if DRV corresponds to a ~/.config/guix/latest style of +derivation." + ;; Here we rely on a gross historical fact: that derivations produced by the + ;; "old style" (before commit 8a0d9bc8a3f153159d9e239a151c0fa98f1e12d8, + ;; dated May 30, 2018) did not depend on "guix-command.drv". + (not (find (lambda (input) + (string-suffix? "-guix-command.drv" + (derivation-input-path input))) + (derivation-inputs drv)))) + +(define (channel-instances->manifest instances) + "Return a profile manifest with entries for all of INSTANCES, a list of +channel instances." + (define instance->entry + (match-lambda + ((instance drv) + (let ((commit (channel-instance-commit instance)) + (channel (channel-instance-channel instance))) + (with-monad %store-monad + (return (manifest-entry + (name (symbol->string (channel-name channel))) + (version (string-take commit 7)) + (item (if (guix-channel? channel) + (if (old-style-guix? drv) + (whole-package-for-legacy + (string-append name "-" version) + drv) + drv) + drv)) + (properties + `((source (repository + (version 0) + (url ,(channel-url channel)) + (branch ,(channel-branch channel)) + (commit ,commit)))))))))))) + + (mlet* %store-monad ((derivations (channel-instance-derivations instances)) + (entries (mapm %store-monad instance->entry + (zip instances derivations)))) + (return (manifest entries)))) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index ee68c21a4..8400ad278 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -30,26 +30,19 @@ #:use-module (guix grafts) #:use-module (guix memoization) #:use-module (guix monads) + #:use-module (guix channels) #:autoload (guix inferior) (open-inferior) #:use-module (guix scripts build) - #:autoload (guix self) (whole-package) #:use-module (guix git) #:use-module (git) #:use-module (gnu packages) - #:autoload (gnu packages ssh) (guile-ssh) - #:autoload (gnu packages tls) (gnutls) #:use-module ((guix scripts package) #:select (build-and-use-profile)) - #:use-module ((guix build utils) - #:select (with-directory-excursion delete-file-recursively)) - #:use-module ((guix build download) - #:select (%x509-certificate-directory)) #:use-module (gnu packages base) #:use-module (gnu packages guile) #:use-module ((gnu packages bootstrap) #:select (%bootstrap-guile)) #:use-module ((gnu packages certs) #:select (le-certs)) #:use-module (srfi srfi-1) - #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) @@ -57,9 +50,6 @@ #:use-module (ice-9 vlist) #:export (guix-pull)) -(define %repository-url - (or (getenv "GUIX_PULL_URL") "https://git.savannah.gnu.org/git/guix.git")) - ;;; ;;; Command-line options. @@ -67,9 +57,7 @@ (define %default-options ;; Alist of default option values. - `((repository-url . ,%repository-url) - (ref . (branch . "origin/master")) - (system . ,(%current-system)) + `((system . ,(%current-system)) (substitutes? . #t) (build-hook? . #t) (graft? . #t) @@ -80,6 +68,8 @@ Download and deploy the latest version of Guix.\n")) (display (G_ " --verbose produce verbose output")) + (display (G_ " + -C, --channels=FILE deploy the channels defined in FILE")) (display (G_ " --url=URL download from the Git repository at URL")) (display (G_ " @@ -105,6 +95,9 @@ Download and deploy the latest version of Guix.\n")) (cons* (option '("verbose") #f #f (lambda (opt name arg result) (alist-cons 'verbose? #t result))) + (option '(#\C "channels") #t #f + (lambda (opt name arg result) + (alist-cons 'channel-file arg result))) (option '(#\l "list-generations") #f #t (lambda (opt name arg result) (cons `(query list-generations ,(or arg "")) @@ -142,70 +135,6 @@ Download and deploy the latest version of Guix.\n")) (define indirect-root-added (store-lift add-indirect-root)) -(define %self-build-file - ;; The file containing code to build Guix. This serves the same purpose as - ;; a makefile, and, similarly, is intended to always keep this name. - "build-aux/build-self.scm") - -(define %pull-version - ;; This is the version of the 'guix pull' protocol. It specifies what's - ;; expected from %SELF-BUILD-FILE. The initial version ("0") was when we'd - ;; place a set of compiled Guile modules in ~/.config/guix/latest. - 1) - -(define* (build-from-source source - #:key verbose? commit) - "Return a derivation to build Guix from SOURCE, using the self-build script -contained therein. Use COMMIT as the version string." - ;; Running the self-build script makes it easier to update the build - ;; procedure: the self-build script of the Guix-to-be-installed contains the - ;; right dependencies, build procedure, etc., which the Guix-in-use may not - ;; be know. - (let* ((script (string-append source "/" %self-build-file)) - (build (primitive-load script))) - ;; BUILD must be a monadic procedure of at least one argument: the source - ;; tree. - ;; - ;; Note: BUILD can return #f if it does not support %PULL-VERSION. In the - ;; future we'll fall back to a previous version of the protocol when that - ;; happens. - (build source #:verbose? verbose? #:version commit - #:pull-version %pull-version))) - -(define (whole-package-for-legacy name modules) - "Return a full-blown Guix package for MODULES, a derivation that builds Guix -modules in the old ~/.config/guix/latest style." - (whole-package name modules - - ;; In the "old style", %SELF-BUILD-FILE would simply return a - ;; derivation that builds modules. We have to infer what the - ;; dependencies of these modules were. - (list guile-json guile-git guile-bytestructures - guile-ssh gnutls))) - -(define* (derivation->manifest-entry drv - #:key url branch commit) - "Return a manifest entry for DRV, which represents Guix at COMMIT. Record -URL, BRANCH, and COMMIT as a property in the manifest entry." - (mbegin %store-monad - (what-to-build (list drv)) - (built-derivations (list drv)) - (let ((out (derivation->output-path drv))) - (return (manifest-entry - (name "guix") - (version (string-take commit 7)) - (item (if (file-exists? (string-append out "/bin/guix")) - drv - (whole-package-for-legacy (string-append name "-" - version) - drv))) - (properties - `((source (repository - (version 0) - (url ,url) - (branch ,branch) - (commit ,commit)))))))))) - (define (display-profile-news profile) "Display what's up in PROFILE--new packages, and all that." (match (memv (generation-number profile) @@ -223,8 +152,8 @@ URL, BRANCH, and COMMIT as a property in the manifest entry." #:heading (G_ "New in this revision:\n")))) (_ #t))) -(define* (build-and-install source config-dir - #:key verbose? url branch commit) +(define* (build-and-install instances config-dir + #:key verbose?) "Build the tool from SOURCE, and install it in CONFIG-DIR." (define update-profile (store-lift build-and-use-profile)) @@ -232,15 +161,9 @@ URL, BRANCH, and COMMIT as a property in the manifest entry." (define profile (string-append config-dir "/current")) - (mlet* %store-monad ((drv (build-from-source source - #:commit commit - #:verbose? verbose?)) - (entry (derivation->manifest-entry drv - #:url url - #:branch branch - #:commit commit))) + (mlet %store-monad ((manifest (channel-instances->manifest instances))) (mbegin %store-monad - (update-profile profile (manifest (list entry))) + (update-profile profile manifest) (return (display-profile-news profile))))) (define (honor-lets-encrypt-certificates! store) @@ -426,45 +349,106 @@ and ALIST2 differ, display HEADING upfront." ((numbers ...) (list-generations profile numbers))))))))) +(define (channel-list opts) + "Return the list of channels to use. If OPTS specify a channel file, +channels are read from there; otherwise, if ~/.config/guix/channels.scm +exists, read it; otherwise %DEFAULT-CHANNELS is used. Apply channel +transformations specified in OPTS (resulting from '--url', '--commit', or +'--branch'), if any." + (define file + (assoc-ref opts 'channel-file)) + + (define default-file + (string-append (config-directory) "/channels.scm")) + + (define (load-channels file) + (let ((result (load* file (make-user-module '((guix channels)))))) + (if (and (list? result) (every channel? result)) + result + (leave (G_ "'~a' did not return a list of channels~%") file)))) + + (define channels + (cond (file + (load-channels file)) + ((file-exists? default-file) + (load-channels default-file)) + (else + %default-channels))) + + (define (environment-variable) + (match (getenv "GUIX_PULL_URL") + (#f #f) + (url + (warning (G_ "The 'GUIX_PULL_URL' environment variable is deprecated. +Use '~/.config/guix/channels.scm' instead.")) + url))) + + (let ((ref (assoc-ref opts 'ref)) + (url (or (assoc-ref opts 'url) + (environment-variable)))) + (if (or ref url) + (match channels + ((one) + ;; When there's only one channel, apply '--url', '--commit', and + ;; '--branch' to this specific channel. + (let ((url (or url (channel-url one)))) + (list (match ref + (('commit . commit) + (channel (inherit one) + (url url) (commit commit) (branch #f))) + (('branch . branch) + (channel (inherit one) + (url url) (commit #f) (branch branch))) + (#f + (channel (inherit one) (url url))))))) + (_ + ;; Otherwise bail out. + (leave + (G_ "'--url', '--commit', and '--branch' are not applicable~%")))) + channels))) + (define (guix-pull . args) - (define (use-le-certs? url) - (string-prefix? "https://git.savannah.gnu.org/" url)) - (with-error-handling (with-git-error-handling - (let* ((opts (parse-command-line args %options - (list %default-options))) - (url (assoc-ref opts 'repository-url)) - (ref (assoc-ref opts 'ref)) - (cache (string-append (cache-directory) "/pull"))) + (let* ((opts (parse-command-line args %options + (list %default-options))) + (cache (string-append (cache-directory) "/pull")) + (channels (channel-list opts))) + (cond ((assoc-ref opts 'query) (process-query opts)) ((assoc-ref opts 'dry-run?) #t) ;XXX: not very useful (else (with-store store - (parameterize ((%graft? (assoc-ref opts 'graft?))) + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (%repository-cache-directory cache)) (set-build-options-from-command-line store opts) - ;; For reproducibility, always refer to the LE certificates - ;; when we know we're talking to Savannah. - (when (use-le-certs? url) - (honor-lets-encrypt-certificates! store)) - - (format (current-error-port) - (G_ "Updating from Git repository at '~a'...~%") - url) - - (let-values (((checkout commit) - (latest-repository-commit store url - #:ref ref - #:cache-directory - cache))) + ;; When certificates are already installed, use them. + ;; Otherwise, use the Let's Encrypt certificates, which we + ;; know Savannah uses. + (let ((certs (or (getenv "SSL_CERT_DIR") "/etc/ssl/certs"))) + (unless (file-exists? certs) + (honor-lets-encrypt-certificates! store))) + (let ((instances (latest-channel-instances store channels))) (format (current-error-port) - (G_ "Building from Git commit ~a...~%") - commit) + (N_ "Building from this channel:~%" + "Building from these channels:~%" + (length instances))) + (for-each (lambda (instance) + (let ((channel + (channel-instance-channel instance))) + (format (current-error-port) + " ~10a~a\t~a~%" + (channel-name channel) + (channel-url channel) + (string-take + (channel-instance-commit instance) + 7)))) + instances) (parameterize ((%guile-for-build (package-derivation store @@ -472,13 +456,7 @@ and ALIST2 differ, display HEADING upfront." %bootstrap-guile (canonical-package guile-2.2))))) (run-with-store store - (build-and-install checkout (config-directory) - #:url url - #:branch (match ref - (('branch . branch) - branch) - (_ #f)) - #:commit commit + (build-and-install instances (config-directory) #:verbose? (assoc-ref opts 'verbose?))))))))))))) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index d11f408d4..7f881355e 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -38,4 +38,5 @@ guix/upstream.scm guix/ui.scm guix/http-client.scm guix/nar.scm +guix/channels.scm nix/nix-daemon/guix-daemon.cc -- 2.18.0 From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 30 Aug 2018 22:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Alex Sassmannshausen Cc: 26608@debbugs.gnu.org, Konrad Hinsen , 22629@debbugs.gnu.org, 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153566659123157 (code B ref 22629); Thu, 30 Aug 2018 22:04:01 +0000 Received: (at 22629) by debbugs.gnu.org; 30 Aug 2018 22:03:11 +0000 Received: from localhost ([127.0.0.1]:39534 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvV1y-00061R-M5 for submit@debbugs.gnu.org; Thu, 30 Aug 2018 18:03:10 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42976) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvV1x-000618-7s for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 18:03:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvV1r-0005Sg-AK for 22629@debbugs.gnu.org; Thu, 30 Aug 2018 18:03:04 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59537) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvV1e-0005Kd-Ax; Thu, 30 Aug 2018 18:02:50 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=53574 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvV1e-0008S3-2T; Thu, 30 Aug 2018 18:02:50 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 13 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 31 Aug 2018 00:02:48 +0200 In-Reply-To: <87wos8lzcj.fsf@pompo.co> (Alex Sassmannshausen's message of "Thu, 30 Aug 2018 16:10:20 +0200") Message-ID: <878t4nqzqv.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Alex, (Cc=E2=80=99ing and , which are related.) Alex Sassmannshausen skribis: > I don't know if this is what Konrad desires, but from my perspective, a > desirable part of the definition of stable would be a that the build > farms have produced a set of binaries/substitutes for a given Guix > revision that is "good enough". I just had a bright idea (yes!): this can be addressed by writing something like this in ~/.config/guix/channels.scm: (map latest-commit-with-substitutes-available %default-channels) The hypothetical =E2=80=98latest-commit-with-substitutes-available=E2=80=99= would use (git) and (guix ci) to find the latest commit for which substitutes of interest are available, and would return: (channel ;; =E2=80=A6 (commit "cabbag3")) ;the ideal commit This has to be done with great care to prevent a downgrade attack and to make sure the user doesn=E2=80=99t miss out on security updates, but maybe = we could provide a procedure that makes reasonable choices. Food for thought=E2=80=A6 Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 09:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= , Alex Sassmannshausen Cc: 26608@debbugs.gnu.org, 22629@debbugs.gnu.org, 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15357084018026 (code B ref 22629); Fri, 31 Aug 2018 09:41:01 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 09:40:01 +0000 Received: from localhost ([127.0.0.1]:39748 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvfuL-00025J-7J for submit@debbugs.gnu.org; Fri, 31 Aug 2018 05:40:01 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:50383) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvfuJ-00024y-LX; Fri, 31 Aug 2018 05:40:00 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 1D9A721BC4; Fri, 31 Aug 2018 05:39:59 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Fri, 31 Aug 2018 05:39:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=sjpV7AqqG0zj8C14b9LlGXL/snlSB d9QTQXAEc03Cw4=; b=ICDIzSkDVV+58xcxTBKJx5mi9scRcM/UV1cAwuEIOgPw5 lGvmpsgGdnkyWvNEUj8/HgXWLKAzPFf//LvSHwJLh0vPlODj9UzcUnW67W9a9oq6 mKK9fdilgtxcG6Y6iWeejCIUniahx3NwPaB+B/NlzQWgFrh6BLG6O8wzORzdEQZW 0szkIrR8zTJcCwzyHRL95wkC9SRpuCcqiANNMIfRyxLWZvCJsLmOVUmC5FAXhIio BEj4axvjRsBg4C8k2WnDNnnNuKozazcPc8Ba6H2/NgdL6cQlcRgGH4sGaUkivmuH HPUuxv/PNjoW2WBiBxpOn63Vku9MK0NEfY5K7c9ag== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=sjpV7A qqG0zj8C14b9LlGXL/snlSBd9QTQXAEc03Cw4=; b=wKg5ZdTkZBcmX4bnSKHQ5H 8ydkLlvlNXh/lz9XJZY8RyDXXCYWvHEMa0NWvVOiPE9Wi3xqZ/Kt2GQVzXh6J8bm 7SFaFK+dTUkaoZLzwX2oBbqoPgT8QPmFLanjUfrYTyDyfdjj9jqDKT+HwmsCW9yg oImdGTx2jeO7quuQbrxdDiEU/q/G1ig3RCYWe5dLTQhtcClzZeqQD0TNYv/VIMw0 ETmg9fF4qsLvRPfXbccFrZD37rkrlj4r21mKKNywCAYXMsOY1fcN33HHnGaTgkhn cZH9wvzIZgzIChTyiHtmC7VYQ4FdaFuCziKkD0vT23RzeWJPJh9ABPIjbnnmIFMA == X-ME-Proxy: X-ME-Sender: Received: from KHs-MacBook.local (soleil-ext.synchrotron.fr [195.221.0.206]) by mail.messagingengine.com (Postfix) with ESMTPA id 3A0ABE46B6; Fri, 31 Aug 2018 05:39:57 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <878t4nqzqv.fsf@gnu.org> References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> Date: Fri, 31 Aug 2018 11:39:55 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Ludo, > I just had a bright idea (yes!): this can be addressed by writing > something like this in ~/.config/guix/channels.scm: > > (map latest-commit-with-substitutes-available > %default-channels) > > The hypothetical =E2=80=98latest-commit-with-substitutes-available=E2=80= =99 would use > (git) and (guix ci) to find the latest commit for which substitutes of > interest are available, and would return: I really like that idea, but it's a pity to limit it to channels. Two scenarii I'd like to see covered are: 1) Find the latest commit with all substitutes required by a given manifest. 2) Find the latest commit with all substitutes required for updating a given profile. This is in fact only one problem with two user interfaces. Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 09:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: 26608@debbugs.gnu.org, 22629@debbugs.gnu.org, Alex Sassmannshausen , 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15357095239664 (code B ref 22629); Fri, 31 Aug 2018 09:59:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 09:58:43 +0000 Received: from localhost ([127.0.0.1]:39765 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvgCR-0002Vo-5O for submit@debbugs.gnu.org; Fri, 31 Aug 2018 05:58:43 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43933) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvgCP-0002VT-I4 for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 05:58:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvgCJ-0008SB-Ne for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 05:58:36 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46580) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvgC1-00087x-Mq; Fri, 31 Aug 2018 05:58:17 -0400 Received: from [193.50.110.186] (port=46664 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvgC1-0002jO-E6; Fri, 31 Aug 2018 05:58:17 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 14 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 31 Aug 2018 11:58:15 +0200 In-Reply-To: (Konrad Hinsen's message of "Fri, 31 Aug 2018 11:39:55 +0200") Message-ID: <874lfarh6w.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Konrad, Konrad Hinsen skribis: >> I just had a bright idea (yes!): this can be addressed by writing >> something like this in ~/.config/guix/channels.scm: >> >> (map latest-commit-with-substitutes-available >> %default-channels) >> >> The hypothetical =E2=80=98latest-commit-with-substitutes-available=E2=80= =99 would use >> (git) and (guix ci) to find the latest commit for which substitutes of >> interest are available, and would return: > > I really like that idea, but it's a pity to limit it to channels. What do you mean by =E2=80=9Climit it to channels=E2=80=9D? =E2=80=98%defa= ult-channels=E2=80=99 is an alias for the official Guix channel (IOW, Guix itself.) > Two scenarii I'd like to see covered are: > > 1) Find the latest commit with all substitutes required by a given > manifest. > > 2) Find the latest commit with all substitutes required for updating a > given profile. > > This is in fact only one problem with two user interfaces. Yes, we could do that, and even maybe more sophisticated things (e.g., looking at the commit log to determine whether security fixes are available, and adjusting the strategy accordingly.) What I find interesting is that we can provide the tools to support such policies, and then users can choose or implement the policy they want directly in ~/.config/guix/channels.scm. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: Konrad Hinsen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 10:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 26608@debbugs.gnu.org, 22629@debbugs.gnu.org, Alex Sassmannshausen , 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153571160520883 (code B ref 22629); Fri, 31 Aug 2018 10:34:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 10:33:25 +0000 Received: from localhost ([127.0.0.1]:39794 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvgk0-0005Ql-OZ for submit@debbugs.gnu.org; Fri, 31 Aug 2018 06:33:24 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:50119) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvgjz-0005QY-3V; Fri, 31 Aug 2018 06:33:23 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id B68D921F2E; Fri, 31 Aug 2018 06:33:22 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Fri, 31 Aug 2018 06:33:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=Ms4cmFco2q97Wj75xjhCRrwOP7cAK Z7wbt2+ilB6bxc=; b=oRPzsJ9cnmg869qzFZSq6lycSoa1K9BSp4cEo6f0sTvaW 5RBvNIIRPFSMnENY3afUtBzQ5u3G7SC+jISuZOYzsImJMBUG8KuiwTOw1+qIKpR5 wMTMfKMpo8hMQ1eq9S7xbShJrc6nz6/9njfpScXvzVuyZkxG7y3ui7QAVVbPQY+z 3dygDEZogKWGPkvc6mdEZPYtI4VcctKLDUMqdDRDn7SzjacB920KhqGsrZuoKBCz UjuL2bDZMnpMjVNsibB2P7A303J3OAXVMpmkDmRZr8Umhx59Qps9zjD/ZWvEQrIj mumWi3rAho/3Xp2LjeHWxY9LzTaajw4gNqKlW5fDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=Ms4cmF co2q97Wj75xjhCRrwOP7cAKZ7wbt2+ilB6bxc=; b=J74m89xktUNgBCNAP+CTF4 XNSGQpY0pdm6zmb23A6AknyAbHyD7XI59yzoU9DvrR4R52xeUvmmUsC5TGNNOziL fup0oaJ7CZrTACE0UvhIYpwhTlw/utkACdLhsdB1UVDliMmkwo7a71vQFX/W4ga/ FGgSAHRrpJxq5VTWAjmV+PFXnnms9oWDIfFCPKNeH6DQGWP2yJQ8WuoQx2lSuGXR jIZ0qpYaIKaNtPi7BtbMo6VGlru1Xxo6qeem0pFauhC5uRmjaL+Y2s0mZIRxySUe iuq0dCqZYOriwm1+7q6iQVXMa6VMUsgPWCiREmIsRbEeNCH4z4xoXHVQNKHa/7TA == X-ME-Proxy: X-ME-Sender: Received: from kh-MacBookPro (soleil-ext.synchrotron.fr [195.221.0.206]) by mail.messagingengine.com (Postfix) with ESMTPA id 34DFF10288; Fri, 31 Aug 2018 06:33:21 -0400 (EDT) From: Konrad Hinsen In-Reply-To: <874lfarh6w.fsf@gnu.org> References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> <874lfarh6w.fsf@gnu.org> Date: Fri, 31 Aug 2018 12:33:19 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Ludo, > What do you mean by =E2=80=9Climit it to channels=E2=80=9D? =E2=80=98%de= fault-channels=E2=80=99 is an > alias for the official Guix channel (IOW, Guix itself.) Fine, but I rarely care about all of Guix, or all of any other channel. I care about the small subset of packages that I actually use. Better yet, with a per-manifest/profile approach, I could put my most critical packages in a special profile and get updates for them more quickly, while still working only with substitutes. BTW, just out of curiosity: for how many commits in Guix history all packages could be built successfully? Is that the rule of the exception? > Yes, we could do that, and even maybe more sophisticated things (e.g., > looking at the commit log to determine whether security fixes are > available, and adjusting the strategy accordingly.) Nice! > What I find interesting is that we can provide the tools to support such > policies, and then users can choose or implement the policy they want > directly in ~/.config/guix/channels.scm. I agree, it's nice to give people the tools they need to implement their own policy. Konrad. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: Jan Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 11:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: 26608@debbugs.gnu.org, 22629@debbugs.gnu.org, Alex Sassmannshausen , 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153571468925705 (code B ref 22629); Fri, 31 Aug 2018 11:25:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 11:24:49 +0000 Received: from localhost ([127.0.0.1]:39816 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvhXl-0006gW-Gi for submit@debbugs.gnu.org; Fri, 31 Aug 2018 07:24:49 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34460) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvhXk-0006gD-8L for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 07:24:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvhXe-0007Z7-8I for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 07:24:43 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52830) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvhXQ-0007VR-UU; Fri, 31 Aug 2018 07:24:28 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=45028 helo=dundal.peder.onsbrabantnet.nl) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvhXQ-0007VM-Jm; Fri, 31 Aug 2018 07:24:28 -0400 From: Jan Nieuwenhuizen Organization: AvatarAcademy.nl References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> X-Url: http://AvatarAcademy.nl Date: Fri, 31 Aug 2018 13:24:25 +0200 In-Reply-To: <878t4nqzqv.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Fri, 31 Aug 2018 00:02:48 +0200") Message-ID: <87mut2ok2e.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Ludovic Court=C3=A8s writes: > I just had a bright idea (yes!): this can be addressed by writing > something like this in ~/.config/guix/channels.scm: > > (map latest-commit-with-substitutes-available > %default-channels) This is a nice idea and it makes me remember that it would be useful to provide a way to avoid installing something that is cricitally broken, like Debian's apt-listbugs package/facility (https://packages.debian.org/sid/apt-listbugs). janneke --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: bug#32022: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: Ricardo Wurmus Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 11:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 26608@debbugs.gnu.org, 22629@debbugs.gnu.org, Alex Sassmannshausen , 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15357159662869 (code B ref 22629); Fri, 31 Aug 2018 11:47:01 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 11:46:06 +0000 Received: from localhost ([127.0.0.1]:39830 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvhsL-0000kC-VL for submit@debbugs.gnu.org; Fri, 31 Aug 2018 07:46:06 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21004) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvhsH-0000jI-Nh for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 07:46:02 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1535715934; cv=none; d=zoho.com; s=zohoarc; b=l7ptBdpyGwDylJRjwdOpgm2hsvqM6R7grHowczQIao1P6G9l7Nr84U7KpKxq5H3jSQCsJg+pRu1YhYZuqr13BocsIYD7Zh5xm5pJ+vl3uZ6xVFtJvmcBP02MstMVckpO4DhyBiU4zyURrnAJiETgp+IRr0G9TfbOSe17MNNXjDA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1535715934; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results; bh=TlbpFnguLKmersljIOPXAZBHMvuRdTGpKjorrIu1Ktw=; b=oJ7IwGxzCUzrKSFBfgdvVs2GZ7y92UC21Jw5P1vokrgbL0/5X9tqGFo15m7wmN3TeyR4mLz1HLZ1hG5fCu9ZPVHjPQMddeefJy3A4BL1qjLMKdHsWyglUiTM6UNR/TefXw2cF4XpMuB39/93/IM7PQag+UVh42SD6smNh7zl+aM= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1535715934; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; l=1039; bh=TlbpFnguLKmersljIOPXAZBHMvuRdTGpKjorrIu1Ktw=; b=NWdtnAv1DZlcGYS87AlFlVvaf/53+euFnPkdeLZqJ2ciwHF8Y/0POqSv8DFYi7D0 ke2jPytJgrGvwtNVW8QV2Dc2kwXV6xiOTtkOh4/2tjF3Un8baMZlYjp8IL7izpWTND/ nTnEqJpwgVWj9kpcU3vfDMOjGJXFB36B6YqWJd3s= Received: from localhost (141.80.247.34 [141.80.247.34]) by mx.zohomail.com with SMTPS id 1535715932827704.073042874536; Fri, 31 Aug 2018 04:45:32 -0700 (PDT) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> User-agent: mu4e 1.0; emacs 26.1 From: Ricardo Wurmus In-reply-to: <878t4nqzqv.fsf@gnu.org> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Fri, 31 Aug 2018 13:45:29 +0200 Message-ID: <87lg8m2206.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Ludovic Court=C3=A8s writes: > I just had a bright idea (yes!): this can be addressed by writing > something like this in ~/.config/guix/channels.scm: > > (map latest-commit-with-substitutes-available > %default-channels) > > The hypothetical =E2=80=98latest-commit-with-substitutes-available=E2=80= =99 would use > (git) and (guix ci) to find the latest commit for which substitutes of > interest are available, and would return: > > (channel > ;; =E2=80=A6 > (commit "cabbag3")) ;the ideal commit > > This has to be done with great care to prevent a downgrade attack and to > make sure the user doesn=E2=80=99t miss out on security updates, but mayb= e we > could provide a procedure that makes reasonable choices. This is a great idea. Any kind of fetch policy could be implemented with this, including one that considers the contents of a manifest. This is another of these instances where having a general purpose programming language underpinning it all really pays off. -- Ricardo From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH v2 2/3] Add (guix describe) and use it to initialize '%package-search-path'. Resent-From: Ricardo Wurmus Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 12:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.15357181276260 (code B ref 22629); Fri, 31 Aug 2018 12:23:01 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 12:22:07 +0000 Received: from localhost ([127.0.0.1]:39872 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fviRC-0001cu-N6 for submit@debbugs.gnu.org; Fri, 31 Aug 2018 08:22:06 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21148) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fviRA-0001cj-3r for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 08:22:04 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1535718095; cv=none; d=zoho.com; s=zohoarc; b=Ybdf+c6zdsJh+kNl1G+X1/TWoLwYUStC9P8fXmWqTUM/wJYoWgBKF59xErE1Xns4L790vCyOT9s4OHC2F5deK1u7U3f0TMq1qkg29VPJdNVWWsMq9vu4kmhHpap/X/yJzbQkF98J4kPvZuOwyHuI/jhYnj9JNpx+7bcyUfJqXLU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1535718095; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results; bh=4XEfton9ai6ytsr+KUQlXwHNxtjF9Dfr/CsH9/DnbcI=; b=AnlKzQ1ci27dg3aPWwXzoBDJN5CiItqXIol5848KE+0KB5TRf7n73Ad/KxhyTTWxK9RbBX8Nci20YgTZ2aDAV9BMiy8zOtU76pdFQjkriklU0AZyeKyCSfV2nomtUSpNdnL0v66i7NxwKBVEbKLkcgJUsBDQn84ldZtus+ac5U4= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1535718095; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; l=3479; bh=4XEfton9ai6ytsr+KUQlXwHNxtjF9Dfr/CsH9/DnbcI=; b=K1f3D9L8CVqjYDzW6c8AWiPRGowdHvDRaFT5cCNi3T0AbOP8m5uZYfmZHgtuPTHO 4G650y7WLMyHM+wLg86jwoEHQDwLInXvFqyyQW8ralGlsJjif1ikKldzVSsaOfDHQC4 gPcZn0BqZ+MjzLVAg3wpvkgc+cFA625yLY9YKlFk= Received: from localhost (141.80.247.34 [141.80.247.34]) by mx.zohomail.com with SMTPS id 1535718094917176.3766196701746; Fri, 31 Aug 2018 05:21:34 -0700 (PDT) References: <87lg8nr1ab.fsf@gnu.org> <20180830213152.3404-1-ludo@gnu.org> <20180830213152.3404-2-ludo@gnu.org> User-agent: mu4e 1.0; emacs 26.1 From: Ricardo Wurmus In-reply-to: <20180830213152.3404-2-ludo@gnu.org> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Fri, 31 Aug 2018 14:21:30 +0200 Message-ID: <87k1o620c5.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Ludo, > * guix/describe.scm: New file. > * Makefile.am (MODULES): Add it. > * gnu/packages.scm (%default-package-module-path): New variable. > (%package-module-path): Honor 'package-path-entries'. > * build-aux/update-NEWS.scm (main): Use %DEFAULT-PACKAGE-MODULE-PATH > instead of (last (%package-module-path)). > --- [=E2=80=A6] > +(define %default-package-module-path > + ;; Default search path for package modules. > + `((,%distro-root-directory . "gnu/packages"))) > + > (define %package-module-path > ;; Search path for package modules. Each item must be either a direct= ory > ;; name or a pair whose car is a directory and whose cdr is a sub-dire= ctory > ;; to narrow the search. > (let* ((not-colon (char-set-complement (char-set #\:))) > (environment (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") = "") > - not-colon))) > - ;; Automatically add items from $GUIX_PACKAGE_PATH to Guile's search= path. > - (for-each (lambda (directory) > - (set! %load-path (cons directory %load-path)) > - (set! %load-compiled-path > - (cons directory %load-compiled-path))) > - environment) > + not-colon)) > + (channels (package-path-entries))) > + ;; Automatically add channels and items from $GUIX_PACKAGE_PATH to G= uile's > + ;; search path. For historical reasons, $GUIX_PACKAGE_PATH goes to = the > + ;; front; channels go to the back so that they don't override Guix' = own > + ;; modules. > + (set! %load-path > + (append environment %load-path channels)) > + (set! %load-compiled-path > + (append environment %load-compiled-path channels)) > > (make-parameter > - (append environment `((,%distro-root-directory . "gnu/packages"))))= )) > + (append environment > + %default-package-module-path > + channels)))) I=E2=80=99m not sure I understand the reason to add channels to the end of = the search path. Could it not be desirable in some use-cases to override certain Guix modules? Should the order be made explicit in the channel to avoid having to accomodate =E2=80=9Chistorical reasons=E2=80=9D in the f= uture? :) Putting them at the end probably ensures that Guix itself won=E2=80=99t bre= ak and can thus be rolled back. > diff --git a/guix/describe.scm b/guix/describe.scm > new file mode 100644 > index 000000000..3122a762f > --- /dev/null > +++ b/guix/describe.scm [=E2=80=A6] > +(define current-profile > + (mlambda () > + "Return the profile (created by 'guix pull') the calling process liv= es in, > +or #f if this is not applicable." > + (match (command-line) > + ((program . _) > + (and (string-suffix? "/bin/guix" program) > + ;; Note: We want to do _lexical dot-dot resolution_. Using = ".." > + ;; for real would instead take us into the /gnu/store direct= ory > + ;; that ~/.config/guix/current/bin points to, whereas we wan= t to > + ;; obtain ~/.config/guix/current. > + (let ((candidate (dirname (dirname program)))) > + (and (file-exists? (string-append candidate "/manifest")) > + candidate))))))) I don=E2=80=99t know=E2=80=A6 there=E2=80=99s something about this file sys= tem traversal that doesn=E2=80=99t sit right with me. I=E2=80=99m not sure about (command-lin= e) =E2=80=94 when =E2=80=A6/bin/guix is executed by a wrapper, will the wrapper be the =E2=80= =9Cprogram=E2=80=9D that we match against or the target? (This is a concern for wrappers that set up site-wide default channels or a remote daemon, for example.) -- Ricardo From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 13:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Konrad Hinsen Cc: 26608@debbugs.gnu.org, 22629@debbugs.gnu.org, Alex Sassmannshausen , 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153572055510370 (code B ref 22629); Fri, 31 Aug 2018 13:03:01 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 13:02:35 +0000 Received: from localhost ([127.0.0.1]:39894 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvj4N-0002hC-CP for submit@debbugs.gnu.org; Fri, 31 Aug 2018 09:02:35 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55676) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvj4M-0002gv-3P for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 09:02:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvj47-0002HH-HL for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 09:02:29 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57754) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvj3h-0002Da-Us; Fri, 31 Aug 2018 09:01:53 -0400 Received: from [193.50.110.186] (port=49170 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvj3h-0000CE-LZ; Fri, 31 Aug 2018 09:01:53 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> <874lfarh6w.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 14 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 31 Aug 2018 15:01:52 +0200 In-Reply-To: (Konrad Hinsen's message of "Fri, 31 Aug 2018 12:33:19 +0200") Message-ID: <87k1o6pu4f.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello, Konrad Hinsen skribis: >> What do you mean by =E2=80=9Climit it to channels=E2=80=9D? =E2=80=98%d= efault-channels=E2=80=99 is an >> alias for the official Guix channel (IOW, Guix itself.) > > Fine, but I rarely care about all of Guix, or all of any other channel. > I care about the small subset of packages that I actually use. > > Better yet, with a per-manifest/profile approach, I could put my most > critical packages in a special profile and get updates for them more > quickly, while still working only with substitutes. Sure! The hypothetical procedure I gave can perform arbitrary checks; it could be passed a manifest. > BTW, just out of curiosity: for how many commits in Guix history all > packages could be built successfully? Is that the rule of the exception? We never have 100% of successful builds. Of course we do our best to keep the failure rate low, but sometimes there are unpopular packages that remain broken for some time, or there are packages for which we forgot to exclude some systems via =E2=80=98supported-systems=E2=80=99, and= of course there=E2=80=99s unintended breakage. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH v2 2/3] Add (guix describe) and use it to initialize '%package-search-path'. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 13:57:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ricardo Wurmus Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153572380816474 (code B ref 22629); Fri, 31 Aug 2018 13:57:03 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 13:56:48 +0000 Received: from localhost ([127.0.0.1]:40731 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvjuq-0004He-16 for submit@debbugs.gnu.org; Fri, 31 Aug 2018 09:56:48 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45295) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvjuo-0004HP-Bb for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 09:56:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvjuf-0002we-0D for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 09:56:40 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59025) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvjue-0002wW-9X; Fri, 31 Aug 2018 09:56:36 -0400 Received: from [193.50.110.186] (port=49182 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fvjud-0003iM-D6; Fri, 31 Aug 2018 09:56:36 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87lg8nr1ab.fsf@gnu.org> <20180830213152.3404-1-ludo@gnu.org> <20180830213152.3404-2-ludo@gnu.org> <87k1o620c5.fsf@elephly.net> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 14 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 31 Aug 2018 15:56:33 +0200 In-Reply-To: <87k1o620c5.fsf@elephly.net> (Ricardo Wurmus's message of "Fri, 31 Aug 2018 14:21:30 +0200") Message-ID: <87a7p2od0u.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Ricardo, Ricardo Wurmus skribis: >> (define %package-module-path >> ;; Search path for package modules. Each item must be either a direc= tory >> ;; name or a pair whose car is a directory and whose cdr is a sub-dir= ectory >> ;; to narrow the search. >> (let* ((not-colon (char-set-complement (char-set #\:))) >> (environment (string-tokenize (or (getenv "GUIX_PACKAGE_PATH")= "") >> - not-colon))) >> - ;; Automatically add items from $GUIX_PACKAGE_PATH to Guile's searc= h path. >> - (for-each (lambda (directory) >> - (set! %load-path (cons directory %load-path)) >> - (set! %load-compiled-path >> - (cons directory %load-compiled-path))) >> - environment) >> + not-colon)) >> + (channels (package-path-entries))) >> + ;; Automatically add channels and items from $GUIX_PACKAGE_PATH to = Guile's >> + ;; search path. For historical reasons, $GUIX_PACKAGE_PATH goes to= the >> + ;; front; channels go to the back so that they don't override Guix'= own >> + ;; modules. >> + (set! %load-path >> + (append environment %load-path channels)) >> + (set! %load-compiled-path >> + (append environment %load-compiled-path channels)) >> >> (make-parameter >> - (append environment `((,%distro-root-directory . "gnu/packages")))= ))) >> + (append environment >> + %default-package-module-path >> + channels)))) > > I=E2=80=99m not sure I understand the reason to add channels to the end o= f the > search path. Could it not be desirable in some use-cases to override > certain Guix modules? Should the order be made explicit in the channel > to avoid having to accomodate =E2=80=9Chistorical reasons=E2=80=9D in the= future? :) For %load-path and %load-compiled-path, I thought it may be safer to always keep Guix in front of the rest. It means that channels cannot override, say, (guix scripts package) or (guix derivations) or (gnu packages base). That=E2=80=99s mostly to be on the safe side, and because I think this is not =E2=80=9Cthe right way=E2=80=9D to customize things; it= =E2=80=99d be just too brittle. Regarding %package-module-path itself, whether channels come first or not doesn=E2=80=99t actually make much of a difference at this point since =E2=80=98fold-packages=E2=80=99 traverses everything anyway. Maybe in the = future =E2=80=98fold-packages=E2=80=99 could make some distinction though. Dunno. >> diff --git a/guix/describe.scm b/guix/describe.scm >> new file mode 100644 >> index 000000000..3122a762f >> --- /dev/null >> +++ b/guix/describe.scm > [=E2=80=A6] >> +(define current-profile >> + (mlambda () >> + "Return the profile (created by 'guix pull') the calling process li= ves in, >> +or #f if this is not applicable." >> + (match (command-line) >> + ((program . _) >> + (and (string-suffix? "/bin/guix" program) >> + ;; Note: We want to do _lexical dot-dot resolution_. Using= ".." >> + ;; for real would instead take us into the /gnu/store direc= tory >> + ;; that ~/.config/guix/current/bin points to, whereas we wa= nt to >> + ;; obtain ~/.config/guix/current. >> + (let ((candidate (dirname (dirname program)))) >> + (and (file-exists? (string-append candidate "/manifest")) >> + candidate))))))) > > I don=E2=80=99t know=E2=80=A6 there=E2=80=99s something about this file s= ystem traversal that > doesn=E2=80=99t sit right with me. I=E2=80=99m not sure about (command-l= ine) =E2=80=94 when > =E2=80=A6/bin/guix is executed by a wrapper, will the wrapper be the =E2= =80=9Cprogram=E2=80=9D > that we match against or the target? (This is a concern for wrappers > that set up site-wide default channels or a remote daemon, for example.) The =E2=80=98guix=E2=80=99 command is a script starting with: #!/gnu/store/=E2=80=A6-guile-2.2.4/bin/guile --no-auto-compile =E2=80=98guile=E2=80=99 receives the =E2=80=98guix=E2=80=99 file name as it= s argv[1]. Since the =E2=80=98guix=E2=80=99 file name was passed as the first argument to =E2=80=98execve=E2=80=99, it = is necessarily valid (either it=E2=80=99s relative to $PWD or, in the likely c= ase where =E2=80=98guix=E2=80=99 was searched for in $PATH, it=E2=80=99s an abs= olute file name.) In addition (ice-9 command-line) arranges to make the first non-hyphen argument the first element of what =E2=80=98command-line=E2=80=99 returns. If you have a wrapper that execs =E2=80=98guix=E2=80=99 or whatever, it=E2= =80=99ll still work. Of course, the trick doesn=E2=80=99t work if you do things like: guile -L ~/.config/guix/current/share/guile/site/2.2 but I think that=E2=80=99s OK. (I hadn=E2=80=99t realized the trick about execve=E2=80=99s first argument = becoming a valid file name in the interpreter=E2=80=99s argv[1]. Handy!) Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: [PATCH v2 2/3] Add (guix describe) and use it to initialize '%package-search-path'. Resent-From: Ricardo Wurmus Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 31 Aug 2018 14:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 22629@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153572600320069 (code B ref 22629); Fri, 31 Aug 2018 14:34:02 +0000 Received: (at 22629) by debbugs.gnu.org; 31 Aug 2018 14:33:23 +0000 Received: from localhost ([127.0.0.1]:40751 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvkUE-0005Dd-Vm for submit@debbugs.gnu.org; Fri, 31 Aug 2018 10:33:23 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21149) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvkUD-0005D3-9F for 22629@debbugs.gnu.org; Fri, 31 Aug 2018 10:33:21 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1535725974; cv=none; d=zoho.com; s=zohoarc; b=fUxloaBXvIf3oAWspyOj0oMCTbgIRIMCsvRJAv4aD/P5Aer7lzKVf/slONmeBVEzKyHkArf8xnKaUkWA+z7Tg1Oo2bc+qJrxZPv6VyVeWjb7i/+fnwUBkFVHgOxHbcmzpncp0UXw6G9Zp7IGVkTbTUl7TALcxGz/wM4gd5km7Is= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1535725974; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results; bh=ZE/mKdejQnW1vnLfCLOT2z031FyAlkCI+d2LsmcuQdE=; b=H3yjFmxgm+p6c1GECXjxTwVfA0QTJxXIozkXWH9JiJIEKbCGH/AAi1z20FpdGg1jfUPFuSf2FAbTLUz6SpwI2QxG0orAyq5SVtQImBeA7P0yLvcj4J9IQH6x5+crlLq/HS4r3aWPE9f9jqNqxF9kq+fNsJudfdeQ4XnjrwlY/8o= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1535725974; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; l=1916; bh=ZE/mKdejQnW1vnLfCLOT2z031FyAlkCI+d2LsmcuQdE=; b=DSWxz1bbhV1oKMUskTJcuwPq1jrXYxAhiu+3YRhpGA1+6UewpT/uGpFEPzviQz0Y xiNPbjm5acb/BC1kj3i1JIu87napybC9FRHjwgZn13vcLsMNpQpZIlsma9pD0+WsG8u KmSjfYyklCBVB5vmmQZDCj5LrrHa9MG9hdIkKJtU= Received: from localhost (141.80.247.34 [141.80.247.34]) by mx.zohomail.com with SMTPS id 1535725972184507.1306233545764; Fri, 31 Aug 2018 07:32:52 -0700 (PDT) References: <87lg8nr1ab.fsf@gnu.org> <20180830213152.3404-1-ludo@gnu.org> <20180830213152.3404-2-ludo@gnu.org> <87k1o620c5.fsf@elephly.net> <87a7p2od0u.fsf@gnu.org> User-agent: mu4e 1.0; emacs 26.1 From: Ricardo Wurmus In-reply-to: <87a7p2od0u.fsf@gnu.org> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Fri, 31 Aug 2018 16:32:43 +0200 Message-ID: <87d0ty1u9g.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Ludovic Court=C3=A8s writes: > Regarding %package-module-path itself, whether channels come first or > not doesn=E2=80=99t actually make much of a difference at this point since > =E2=80=98fold-packages=E2=80=99 traverses everything anyway. Maybe in th= e future > =E2=80=98fold-packages=E2=80=99 could make some distinction though. Dunn= o. Ah, I see. Thanks for clarifying. >> I don=E2=80=99t know=E2=80=A6 there=E2=80=99s something about this file = system traversal that >> doesn=E2=80=99t sit right with me. I=E2=80=99m not sure about (command-= line) =E2=80=94 when >> =E2=80=A6/bin/guix is executed by a wrapper, will the wrapper be the =E2= =80=9Cprogram=E2=80=9D >> that we match against or the target? (This is a concern for wrappers >> that set up site-wide default channels or a remote daemon, for example.) > > The =E2=80=98guix=E2=80=99 command is a script starting with: > > #!/gnu/store/=E2=80=A6-guile-2.2.4/bin/guile --no-auto-compile > > =E2=80=98guile=E2=80=99 receives the =E2=80=98guix=E2=80=99 file name as = its argv[1]. Since the =E2=80=98guix=E2=80=99 > file name was passed as the first argument to =E2=80=98execve=E2=80=99, i= t is > necessarily valid (either it=E2=80=99s relative to $PWD or, in the likely= case > where =E2=80=98guix=E2=80=99 was searched for in $PATH, it=E2=80=99s an a= bsolute file name.) > > In addition (ice-9 command-line) arranges to make the first non-hyphen > argument the first element of what =E2=80=98command-line=E2=80=99 returns. > > If you have a wrapper that execs =E2=80=98guix=E2=80=99 or whatever, it= =E2=80=99ll still work. That=E2=80=99s good. > Of course, the trick doesn=E2=80=99t work if you do things like: > > guile -L ~/.config/guix/current/share/guile/site/2.2 > > but I think that=E2=80=99s OK. Yeah, I wouldn=E2=80=99t worry about that. Thanks! --=20 Ricardo From unknown Tue Aug 19 23:11:30 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#22629: closed (Re: bug#22629: Channels!) Message-ID: References: <87h8j86ik1.fsf@gnu.org> <87vb5vsffd.fsf@gnu.org> X-Gnu-PR-Message: they-closed 22629 X-Gnu-PR-Package: guix Reply-To: 22629@debbugs.gnu.org Date: Sun, 02 Sep 2018 15:12:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1535901122-11521-1" This is a multi-part message in MIME format... ------------=_1535901122-11521-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #22629: Towards a new 'guix pull' which was filed against the guix package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 22629@debbugs.gnu.org. --=20 22629: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D22629 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1535901122-11521-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 22629-done) by debbugs.gnu.org; 2 Sep 2018 15:11:22 +0000 Received: from localhost ([127.0.0.1]:43183 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwU26-0002yu-Cs for submit@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:22 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41242) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwU22-0002yg-Sp for 22629-done@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwU1w-0007u0-1u for 22629-done@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:13 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:53096) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwU1v-0007tt-Ua for 22629-done@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:11 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=40782 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fwU1v-00060C-DH for 22629-done@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:11 -0400 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: 22629-done@debbugs.gnu.org Subject: Re: bug#22629: Channels! References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <87lg8nr1ab.fsf@gnu.org> Date: Sun, 02 Sep 2018 17:11:10 +0200 In-Reply-To: <87lg8nr1ab.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 30 Aug 2018 23:29:32 +0200") Message-ID: <87h8j86ik1.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22629-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello, ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > >> The patches that follow implement this last bit, though in a slightly >> different way. Users would now have the option to provide >> ~/.config/guix/channels.scm along these lines: >> >> (cons (channel >> (name 'guix-hpc) >> (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git") >> (branch "origin/master")) >> %default-channels) > > What follows is version 2 of the patches, which I=E2=80=99d like to push = within > a day or two. The main changes are: I fixed a typo that would lead =E2=80=98--url=E2=80=99 to be ignored and pu= shed. Please report any problems you may have! I=E2=80=99m closing this 2.5-year old issue now. :-) Ludo=E2=80=99. ------------=_1535901122-11521-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 11 Feb 2016 10:35:36 +0000 Received: from localhost ([127.0.0.1]:35689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTob2-0000j8-LV for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:36 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38582) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aTob0-0000iw-BS for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aToau-0002uC-8F for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:29 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:60338) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToau-0002u8-5A for submit@debbugs.gnu.org; Thu, 11 Feb 2016 05:35:28 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57781) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToat-0007jR-4H for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aToao-0002tW-QE for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:26 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52848) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aToao-0002tS-Nu for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:22 -0500 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:60334 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aToao-0007Cj-4w for bug-guix@gnu.org; Thu, 11 Feb 2016 05:35:22 -0500 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: bug-guix@gnu.org Subject: Towards a new 'guix pull' X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 23 =?utf-8?Q?Pluvi=C3=B4se?= an 224 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x3D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Thu, 11 Feb 2016 11:35:18 +0100 Message-ID: <87vb5vsffd.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.3 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.3 (-----) Hello! Here=E2=80=99s a series of improvements that I think we should make in =E2= =80=98guix pull=E2=80=99: =E2=80=A2 Use Git instead of downloading a whole snapshot every time. Th= e Git checkout would be kept in ~/.cache/guix/pull/checkouts, say. A related question is whether to use Git itself, which is pretty big per =E2=80=98guix size=E2=80=99, or to use some libgit2 bindings such as (the closure of libgit2 is 435=C2=A0MiB; that of Git is 761=C2=A0MiB.) =E2=80=A2 Build & install not only Scheme code, but also locales and the = Info manual. =E2=80=A2 Have a =E2=80=9Cchannel=E2=80=9D mechanism, similar to =E2=80= =98nix-channel=E2=80=99, that would allow users to have several Guix variants available in parallel instead of just =E2=80=9Clatest=E2=80=9D. Could work like this: guix channel add latest git://git.sv.gnu.org/guix.git master guix channel add stable git://git.sv.gnu.org/guix.git stable guix channel pull latest guix channel set latest # here i see the latest versions of everything guix channel set stable # and here everything is old but super stable ;-) All 3 items can be done separately, I think. Any takers? :-) Ludo=E2=80=99. PS: I do not mention the issue of authenticating code here, which is obviously very important and deserves to be treated separately. Related to that is the question of making sure that what you think is the latest version really is the latest version. We need someone to sign certificates saying what the latest commit ID of a repo is. See the =E2=80=9CThe Update Framework=E2=80=9D paper! ------------=_1535901122-11521-1-- From unknown Tue Aug 19 23:11:30 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Maxim Cournoyer Subject: bug#28471: closed (Re: bug#22629: Channels!) Message-ID: References: <87h8j86ik1.fsf@gnu.org> <87tw03r91x.fsf@gmail.com> X-Gnu-PR-Message: they-closed 28471 X-Gnu-PR-Package: guix Reply-To: 28471@debbugs.gnu.org Date: Sun, 02 Sep 2018 15:12:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1535901122-11521-3" This is a multi-part message in MIME format... ------------=_1535901122-11521-3 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #22629: guix pull doesn't update the user manual which was filed against the guix package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 28471@debbugs.gnu.org. --=20 22629: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D22629 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1535901122-11521-3 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 22629-done) by debbugs.gnu.org; 2 Sep 2018 15:11:22 +0000 Received: from localhost ([127.0.0.1]:43183 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwU26-0002yu-Cs for submit@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:22 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41242) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwU22-0002yg-Sp for 22629-done@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwU1w-0007u0-1u for 22629-done@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:13 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:53096) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwU1v-0007tt-Ua for 22629-done@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:11 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=40782 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fwU1v-00060C-DH for 22629-done@debbugs.gnu.org; Sun, 02 Sep 2018 11:11:11 -0400 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: 22629-done@debbugs.gnu.org Subject: Re: bug#22629: Channels! References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <87lg8nr1ab.fsf@gnu.org> Date: Sun, 02 Sep 2018 17:11:10 +0200 In-Reply-To: <87lg8nr1ab.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 30 Aug 2018 23:29:32 +0200") Message-ID: <87h8j86ik1.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22629-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello, ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > >> The patches that follow implement this last bit, though in a slightly >> different way. Users would now have the option to provide >> ~/.config/guix/channels.scm along these lines: >> >> (cons (channel >> (name 'guix-hpc) >> (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git") >> (branch "origin/master")) >> %default-channels) > > What follows is version 2 of the patches, which I=E2=80=99d like to push = within > a day or two. The main changes are: I fixed a typo that would lead =E2=80=98--url=E2=80=99 to be ignored and pu= shed. Please report any problems you may have! I=E2=80=99m closing this 2.5-year old issue now. :-) Ludo=E2=80=99. ------------=_1535901122-11521-3 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 15 Sep 2017 20:39:24 +0000 Received: from localhost ([127.0.0.1]:43140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dsxOV-0004h3-Va for submit@debbugs.gnu.org; Fri, 15 Sep 2017 16:39:24 -0400 Received: from eggs.gnu.org ([208.118.235.92]:36591) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dsxOS-0004gp-8n for submit@debbugs.gnu.org; Fri, 15 Sep 2017 16:39:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dsxOM-000184-CO for submit@debbugs.gnu.org; Fri, 15 Sep 2017 16:39:15 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:47584) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dsxOM-00017e-9v for submit@debbugs.gnu.org; Fri, 15 Sep 2017 16:39:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55789) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dsxOL-0008T3-Bp for bug-guix@gnu.org; Fri, 15 Sep 2017 16:39:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dsxOI-0000zG-9G for bug-guix@gnu.org; Fri, 15 Sep 2017 16:39:13 -0400 Received: from mail-it0-x231.google.com ([2607:f8b0:4001:c0b::231]:54746) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dsxOI-0000vo-4n for bug-guix@gnu.org; Fri, 15 Sep 2017 16:39:10 -0400 Received: by mail-it0-x231.google.com with SMTP id e134so4729885ite.3 for ; Fri, 15 Sep 2017 13:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=alVuVkGvTiGZt7eo9oMPVrxhJIP1JiKGpxJv57PlG7k=; b=HWY3wAQG0kh1CgKYSsq0vnpbBPrfLc6hSEl/U7v4yIhK8ioHJLlMRh0UoaiS5EY8eI yvnXDeJz7XpTaNzyVxuOSO0zcQSNq5ewsjjRnMkGB7UBRcHIm4iAME7jMDkJaAGi3WX9 PAACvsUPLkLdzRZqIUOhf2+r/Ut4VJ2lbav3vvxvhqV1qfONd/X1cHBCtLAKa+wfUYg0 W2KC2z5laW308Ty24OpKnXCfAIBq4+Q/LXdEBVDOvvZ1jP3pyv4cpcAwNWUFSrjT6ctL G1de/FT8/KdYXhwq1W7LIgKTiUJCR8UX4vsILurNIUlu9znrYQiBSElMuP7qC4PDuutm 3nNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=alVuVkGvTiGZt7eo9oMPVrxhJIP1JiKGpxJv57PlG7k=; b=s0vxzOBo0uJB9qjx0hA6TKauDbnnmrhQso9Uy4uPEhqp9qQo3X8rt8K+haXsDhJz0b auVbTJlMuWc6xVjKYztZjq7F/xxO7yQw4pZjSCjUrCwIa55vM3NGCx26yWvU1FbE+0Rm Ou8xgIi0Nu5HKLVUI7ZDkbasNbbg4MTfwuYglvzEzOM2oL6fmN/P2f8xn02vRhcri2rX jjxpFWvh2LaAduB+QBD+nWZSTq3QJRwSsbv6e3e/uMAZyN7ozeRFSBOnrBZXFz+yXbVf wxu3Bo4sqeB4rZp5n16HylTxtqG15DMbBMcCMI/NKsK6bUYhQvNpzgd9EYGxdWXPwlkY i4dw== X-Gm-Message-State: AHPjjUilVElvtVkL3asE4myrHJl8g0LeSJvSnnGyYTpIQyY9M3xeGJMY LDMh+o1GpgbB3Lv+ X-Google-Smtp-Source: AOwi7QCpaoGXeQ6pLHPdx31vaXP8pcaM31cPa0RBw5Pn4PTLi27Mt7YpZeFS+kQMqiWv0wSPKJ3wLQ== X-Received: by 10.36.4.151 with SMTP id 145mr7871619itb.33.1505507947863; Fri, 15 Sep 2017 13:39:07 -0700 (PDT) Received: from apteryx ([45.72.233.254]) by smtp.gmail.com with ESMTPSA id d3sm868408iog.0.2017.09.15.13.39.07 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Sep 2017 13:39:07 -0700 (PDT) From: Maxim Cournoyer To: bug-guix Subject: guix pull doesn't update the user manual Date: Fri, 15 Sep 2017 16:39:06 -0400 Message-ID: <87tw03r91x.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) guix pull should build and install the latest documentation of Guix to the user profile so that `info guix' always displays the current documentation. This seems to confuse Guix users every now and then, myself included, and the work around of cloning a full copy of the guix sources just to build the manual is not user friendly nor trivial. ------------=_1535901122-11521-3-- From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: Alex Sassmannshausen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 03 Sep 2018 14:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 26608@debbugs.gnu.org, Konrad Hinsen , 22629@debbugs.gnu.org, 32022@debbugs.gnu.org Reply-To: alex@pompo.co Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153598386614017 (code B ref 22629); Mon, 03 Sep 2018 14:12:02 +0000 Received: (at 22629) by debbugs.gnu.org; 3 Sep 2018 14:11:06 +0000 Received: from localhost ([127.0.0.1]:44441 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwpZK-0003e1-0Z for submit@debbugs.gnu.org; Mon, 03 Sep 2018 10:11:06 -0400 Received: from [82.153.16.8] (port=47017 helo=ronja.pompo.co) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwpZH-0003dC-9s; Mon, 03 Sep 2018 10:11:04 -0400 Received: from rosser (vodsl-8997.vo.lu [85.93.202.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ronja.pompo.co (Postfix) with ESMTPSA id 3C8A7402FA; Mon, 3 Sep 2018 14:10:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pompo.co; s=mail; t=1535983857; bh=3zF55RApxQW/X+upZzku+GEwteudvedpfMUF3yyndPY=; h=References:From:To:Cc:Subject:Reply-To:In-reply-to:Date:From; b=dGcGBQplM2cxJPiAJ65dE/mruEa2WYSs6OJFynsAs7kJeVQQNS6E97m2z/Lv683eC wcklV4yzz6f7FBGTEXaOYhia3HCwyO89s8HvlKRU+2kverTnV0NTrQNs4SjFvYt6BP 9aV680wXUDZ/bWLN93x9gpmNQZTW8r+/IDw7eoss= References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> User-agent: mu4e 1.0; emacs 26.1 From: Alex Sassmannshausen In-reply-to: <878t4nqzqv.fsf@gnu.org> Date: Mon, 03 Sep 2018 16:10:36 +0200 Message-ID: <87r2iau0wz.fsf@pompo.co> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi Ludo, Ludovic =?UTF-8?Q?Court=C3=A8s?= writes: > Hi Alex, > > (=?UTF-8?Q?Cc=E2=80=99ing?= and , > which are related.) > > Alex Sassmannshausen skribis: > >> I don't know if this is what Konrad desires, but from my perspective, a >> desirable part of the definition of stable would be a that the build >> farms have produced a set of binaries/substitutes for a given Guix >> revision that is "good enough". > > I just had a bright idea (yes!): this can be addressed by writing > something like this in ~/.config/guix/channels.scm: > > (map latest-commit-with-substitutes-available > %default-channels) > > The hypothetical =?UTF-8?Q?=E2=80=98latest-commit-with-substitutes-available=E2=80=99?= would use > (git) and (guix ci) to find the latest commit for which substitutes of > interest are available, and would return: > > (channel > ;; =?UTF-8?Q?=E2=80=A6?= > (commit "cabbag3")) ;the ideal commit [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Hi Ludo, Ludovic Court=C3=A8s writes: > Hi Alex, > > (Cc=E2=80=99ing and , > which are related.) > > Alex Sassmannshausen skribis: > >> I don't know if this is what Konrad desires, but from my perspective, a >> desirable part of the definition of stable would be a that the build >> farms have produced a set of binaries/substitutes for a given Guix >> revision that is "good enough". > > I just had a bright idea (yes!): this can be addressed by writing > something like this in ~/.config/guix/channels.scm: > > (map latest-commit-with-substitutes-available > %default-channels) > > The hypothetical =E2=80=98latest-commit-with-substitutes-available=E2=80= =99 would use > (git) and (guix ci) to find the latest commit for which substitutes of > interest are available, and would return: > > (channel > ;; =E2=80=A6 > (commit "cabbag3")) ;the ideal commit This sounds incredibly interesting =E2=80=94 and it is testament once again= to the power of Guix that this kind of solution could be feasible! Thinking this through in my head somewhat, I had the following thoughts: - This procedure is invoked client side, where the channel is defined - That means the git searching is done client side, on every invocation of guix (I guess this might be cacheable?) - So the downside vis-a-vis a maintained "stable branch" would be a price in performance as experienced by the end user - The upside of course would be automatic curation of a stable branch that saves a ton of volunteer effort and work I have no idea what the performance cost would be. I guess you would use "guix weather" to turn the set of requested packages into a manifest which can then be checked with it. So the cost would be one of the following scenarios: Option a) - fetch set of packages in a given commit - query guix weather for 100% substitutes - iterate until a match - then perform the appropriate guix pull Option b) - perform a guix pull to the latest commit - query guix weather for 100% substitutes - until success, step back one step at a time through guix pull (because of the cost of guix pull this seems unfeasible) Option c) Implement some form of substitute cache set querying on build farms, as part of guix weather, so the 100% match is done on the build farm instead of the client. Dunno. There may be some things that already exist in Guix land that I'm missing. It's a super exciting approach for sure. > This has to be done with great care to prevent a downgrade attack and to > make sure the user doesn=E2=80=99t miss out on security updates, but mayb= e we > could provide a procedure that makes reasonable choices. Right =E2=80=94 so at the very least it would have to prevent us going "bac= k in time" from the guix pull commit we are currently at. The question of security updates is tricky at the moment already =E2=80=94 I would hazard a guess that many people bail out of upgrading when they can't get substitutes for their entire profile / system right now, which means they are not getting security upgrades for package (a) when a substitute for (b) fails. Thanks for your thoughts =E2=80=94 super intriguing! Alex From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 03 Sep 2018 19:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Alex Sassmannshausen Cc: 26608@debbugs.gnu.org, Konrad Hinsen , 22629@debbugs.gnu.org, 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153600434821337 (code B ref 22629); Mon, 03 Sep 2018 19:53:02 +0000 Received: (at 22629) by debbugs.gnu.org; 3 Sep 2018 19:52:28 +0000 Received: from localhost ([127.0.0.1]:44600 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwutg-0005Y5-AI for submit@debbugs.gnu.org; Mon, 03 Sep 2018 15:52:28 -0400 Received: from eggs.gnu.org ([208.118.235.92]:60073) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwute-0005Xl-M1 for 22629@debbugs.gnu.org; Mon, 03 Sep 2018 15:52:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwutY-0003qm-Qi for 22629@debbugs.gnu.org; Mon, 03 Sep 2018 15:52:21 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51853) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwutH-0003jN-Pw; Mon, 03 Sep 2018 15:52:05 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=48602 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fwutF-0000YD-SV; Mon, 03 Sep 2018 15:52:03 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> <87r2iau0wz.fsf@pompo.co> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 17 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 03 Sep 2018 21:52:00 +0200 In-Reply-To: <87r2iau0wz.fsf@pompo.co> (Alex Sassmannshausen's message of "Mon, 03 Sep 2018 16:10:36 +0200") Message-ID: <87zhwywe8v.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Alex, Alex Sassmannshausen skribis: > Ludovic Court=C3=A8s writes: [...] >> I just had a bright idea (yes!): this can be addressed by writing >> something like this in ~/.config/guix/channels.scm: >> >> (map latest-commit-with-substitutes-available >> %default-channels) >> >> The hypothetical =E2=80=98latest-commit-with-substitutes-available=E2=80= =99 would use >> (git) and (guix ci) to find the latest commit for which substitutes of >> interest are available, and would return: >> >> (channel >> ;; =E2=80=A6 >> (commit "cabbag3")) ;the ideal commit > > This sounds incredibly interesting =E2=80=94 and it is testament once aga= in to > the power of Guix that this kind of solution could be feasible! Just to be clear: I don=E2=80=99t think this would be a substitute for a =E2=80=9Cstable=E2=80=9D branch; rather, I view as a way to have user-defin= ed policies such as =E2=80=9Cpull up to the latest commit for which there=E2=80=99s a s= ubstitute for IceCat.=E2=80=9D > Thinking this through in my head somewhat, I had the following thoughts: > - This procedure is invoked client side, where the channel is defined > - That means the git searching is done client side, on every invocation > of guix (I guess this might be cacheable?) On every invocation of =E2=80=98guix pull=E2=80=99 only. > I have no idea what the performance cost would be. I guess you would > use "guix weather" to turn the set of requested packages into a manifest > which can then be checked with it. As I imagine it, the cost would be a few HTTP queries to the Cuirass API. I should try to come up with an example to better explain what I had in mind! > The question of security updates is tricky at the moment already =E2=80= =94 I > would hazard a guess that many people bail out of upgrading when they > can't get substitutes for their entire profile / system right now, which > means they are not getting security upgrades for package (a) when a > substitute for (b) fails. That=E2=80=99s probably true, and I agree it=E2=80=99s problematic. What I typically do is =E2=80=9Cguix pull && guix package -n -u=E2=80=9D. = Then I look at things that would be built; if, say, LibreOffice is among them, I wait for a little while and try again later, until I can get enough substitutes. That usually works okay, but it fails if it turns out that one of the dependencies fails to build: substitutes never become available in that case. Ludo=E2=80=99. From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 03 Sep 2018 20:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Alex Sassmannshausen Cc: 26608@debbugs.gnu.org, Konrad Hinsen , 22629@debbugs.gnu.org, 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153600647424665 (code B ref 22629); Mon, 03 Sep 2018 20:28:01 +0000 Received: (at 22629) by debbugs.gnu.org; 3 Sep 2018 20:27:54 +0000 Received: from localhost ([127.0.0.1]:44625 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwvRx-0006Pl-OX for submit@debbugs.gnu.org; Mon, 03 Sep 2018 16:27:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44072) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fwvRu-0006PQ-1l for 22629@debbugs.gnu.org; Mon, 03 Sep 2018 16:27:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fwvRn-0000d9-VO for 22629@debbugs.gnu.org; Mon, 03 Sep 2018 16:27:44 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52884) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fwvRX-0000R7-Qu; Mon, 03 Sep 2018 16:27:28 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=48810 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fwvRX-0003Co-49; Mon, 03 Sep 2018 16:27:27 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> <87r2iau0wz.fsf@pompo.co> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 17 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 03 Sep 2018 22:27:25 +0200 In-Reply-To: <87r2iau0wz.fsf@pompo.co> (Alex Sassmannshausen's message of "Mon, 03 Sep 2018 16:10:36 +0200") Message-ID: <87h8j6wclu.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Alex Sassmannshausen skribis: > Ludovic Court=C3=A8s writes: [...] >> I just had a bright idea (yes!): this can be addressed by writing >> something like this in ~/.config/guix/channels.scm: >> >> (map latest-commit-with-substitutes-available >> %default-channels) >> >> The hypothetical =E2=80=98latest-commit-with-substitutes-available=E2=80= =99 would use >> (git) and (guix ci) to find the latest commit for which substitutes of >> interest are available, and would return: >> >> (channel >> ;; =E2=80=A6 >> (commit "cabbag3")) ;the ideal commit The code below is an illustration of that. If you install it as ~/.config/guix/channels.scm, =E2=80=98guix pull=E2=80=99 will pull the late= st commit that was fully built on berlin.guixsd.org (see ), meaning that substitutes for Guix itself should be available, unless =E2=80=98guix publi= sh=E2=80=99 hasn=E2=80=99t =E2=80=9Cbaked=E2=80=9D them yet. It takes two GETs and ~1s to do that here. Ludo=E2=80=99. --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=channels-test.scm Content-Description: the channels config (use-modules (guix http-client) (json) (srfi srfi-1) (ice-9 match)) (define (latest-evaluations jobset) "Return the latest evaluations of JOBSET." (filter (lambda (json) (string=? (hash-ref json "specification") jobset)) (json->scm (http-fetch "https://berlin.guixsd.org/api/evaluations?nr=30")))) (define (evaluation-complete? number) "Return true if evaluation NUMBER completed and all its builds were successful." (let ((builds (json->scm (http-fetch (string-append "https://berlin.guixsd.org/api/latestbuilds?nr=30&evaluation=" (number->string number)))))) (every (lambda (build) ;; Zero means build success. (= (hash-ref build "buildstatus") 0)) builds))) (define (latest-commit-successfully-built) "Return the latest commit for which substitutes are (potentially) available." (let* ((evaluations (latest-evaluations "guix-modular-master")) (candidates (filter-map (lambda (json) (match (hash-ref json "checkouts") ((checkout) (cons (hash-ref json "id") (hash-ref checkout "commit"))) (_ #f))) evaluations))) (any (match-lambda ((evaluation . commit) (and (evaluation-complete? evaluation) commit))) candidates))) ;; Pull the latest commit fully built on berlin.guixsd.org. ;; WARNING: This could downgrade your system! (list (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (commit (pk 'commit (latest-commit-successfully-built))))) --=-=-=-- From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: Alex Sassmannshausen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 04 Sep 2018 08:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 26608@debbugs.gnu.org, Konrad Hinsen , 22629@debbugs.gnu.org, 32022@debbugs.gnu.org Reply-To: alex@pompo.co Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153604816129136 (code B ref 22629); Tue, 04 Sep 2018 08:03:01 +0000 Received: (at 22629) by debbugs.gnu.org; 4 Sep 2018 08:02:41 +0000 Received: from localhost ([127.0.0.1]:44988 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fx6IK-0007Zr-Q2 for submit@debbugs.gnu.org; Tue, 04 Sep 2018 04:02:41 -0400 Received: from [82.153.16.8] (port=36569 helo=ronja.pompo.co) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fx6II-0007ZX-TH; Tue, 04 Sep 2018 04:02:39 -0400 Received: from rosser (vodsl-8997.vo.lu [85.93.202.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ronja.pompo.co (Postfix) with ESMTPSA id 9658A402FA; Tue, 4 Sep 2018 08:02:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pompo.co; s=mail; t=1536048152; bh=GQP2IdXMJuN0f50IPjTghGMdDO6YbwC5eOFHkgfT8Bk=; h=References:From:To:Cc:Subject:Reply-To:In-reply-to:Date:From; b=WNBWWt3tv15EGYX8rnS4a6Yvkbk31Yj2Mmbxy+iBal9MgYUv980Jpj9E9HZaOuoL5 lRrMYpPrYxIfCf462cRpBPcR7FjrTiajjW0QrHkwGjIqeKRZoFqR93p8aOhR+Nfb+U Po3vHezlCJflOKTaxo4bfKJKV96rpAis2nSGTDPM= References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> <87r2iau0wz.fsf@pompo.co> <87zhwywe8v.fsf@gnu.org> User-agent: mu4e 1.0; emacs 26.1 From: Alex Sassmannshausen In-reply-to: <87zhwywe8v.fsf@gnu.org> Date: Tue, 04 Sep 2018 10:02:31 +0200 Message-ID: <87pnxtu1uw.fsf@pompo.co> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Ludovic =?UTF-8?Q?Court=C3=A8s?= writes: > Hi Alex, > > Alex Sassmannshausen skribis: > >> Ludovic =?UTF-8?Q?Court=C3=A8s?= writes: > > [...] > >>> I just had a bright idea (yes!): this can be addressed by writing >>> something like this in ~/.config/guix/channels.scm: >>> >>> (map latest-commit-with-substitutes-available >>> %default-channels) >>> >>> The hypothetical =?UTF-8?Q?=E2=80=98latest-commit-with-substitutes-available=E2=80=99?= would use >>> (git) and (guix ci) to find the latest commit for which substitutes of >>> interest are available, and would return: >>> >>> (channel >>> ;; =?UTF-8?Q?=E2=80=A6?= >>> (commit "cabbag3")) ;the ideal commit >> >> This sounds incredibly interesting =?UTF-8?Q?=E2=80=94?= and it is testament once again to >> the power of Guix that this kind of solution could be feasible! > > Just to be clear: I =?UTF-8?Q?don=E2=80=99t?= think this would be a substitute for a > =?UTF-8?Q?=E2=80=9Cstable=E2=80=9D?= branch; rather, I view as a way to have user-defined policies > such as =?UTF-8?Q?=E2=80=9Cpull?= up to the latest commit for which =?UTF-8?Q?there=E2=80=99s?= a substitute for > =?UTF-8?Q?IceCat.=E2=80=9D?= [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Ludovic Court=C3=A8s writes: > Hi Alex, > > Alex Sassmannshausen skribis: > >> Ludovic Court=C3=A8s writes: > > [...] > >>> I just had a bright idea (yes!): this can be addressed by writing >>> something like this in ~/.config/guix/channels.scm: >>> >>> (map latest-commit-with-substitutes-available >>> %default-channels) >>> >>> The hypothetical =E2=80=98latest-commit-with-substitutes-available=E2= =80=99 would use >>> (git) and (guix ci) to find the latest commit for which substitutes of >>> interest are available, and would return: >>> >>> (channel >>> ;; =E2=80=A6 >>> (commit "cabbag3")) ;the ideal commit >> >> This sounds incredibly interesting =E2=80=94 and it is testament once ag= ain to >> the power of Guix that this kind of solution could be feasible! > > Just to be clear: I don=E2=80=99t think this would be a substitute for a > =E2=80=9Cstable=E2=80=9D branch; rather, I view as a way to have user-def= ined policies > such as =E2=80=9Cpull up to the latest commit for which there=E2=80=99s a= substitute for > IceCat.=E2=80=9D Ah, I understand now. So the example you provided is a user-defined policy to install the latest version of Guix that is downloadable using substitutes (if guix publish has published those already). As you say, in a similar vein, the end user could for themselves define a policy that searches for a commit containing a specific successful build, or a set of specific successful builds. >> Thinking this through in my head somewhat, I had the following thoughts: >> - This procedure is invoked client side, where the channel is defined >> - That means the git searching is done client side, on every invocation >> of guix (I guess this might be cacheable?) > > On every invocation of =E2=80=98guix pull=E2=80=99 only. That makes sense, and is way better than I feared :-) >> I have no idea what the performance cost would be. I guess you would >> use "guix weather" to turn the set of requested packages into a manifest >> which can then be checked with it. > > As I imagine it, the cost would be a few HTTP queries to the Cuirass > API. I should try to come up with an example to better explain what I > had in mind! Your example helps visualize this, thanks. Your example depends on there being a jobset that comprises the set of packages you are interested in testing. I imagine it is possible to do the same for an individual package / job. The situation would be different if the end user wanted to perform a similar operation for an arbitrary set of packages on their end. It would probably involve something like this (probably naive): (define (latest-commit-successfully-built-pkg pkg) "Return the latest commit for the pkg for which substitutes are (potentially) available." ;; Like your version, but magically performs query ;; for pkg, not the guix-modular-master evaluation (let* ((evaluations (latest-evaluations pkg)) (candidates (filter-map (lambda (json) (match (hash-ref json "checkouts") ((checkout) (cons (hash-ref json "id") (hash-ref checkout "commit"))) (_ #f))) evaluations))) (map (match-lambda ((evaluation . commit) (and (evaluation-complete? evaluation) commit))) candidates))) (any (match-lambda ((evaluation . commit) commit) (apply lset-intersection equal? ;; Like latest-commit-successfully-built, but takes an ;; individual package name for which we return the ;; commit (map latest-commit-successfully-built-pkg %set-of-packages)))) Obviously the larger the set, the more requests are required, and the lower the chance of a commit being available / a downgrade occuring >> The question of security updates is tricky at the moment already =E2=80= =94 I >> would hazard a guess that many people bail out of upgrading when they >> can't get substitutes for their entire profile / system right now, which >> means they are not getting security upgrades for package (a) when a >> substitute for (b) fails. > > That=E2=80=99s probably true, and I agree it=E2=80=99s problematic. > > What I typically do is =E2=80=9Cguix pull && guix package -n -u=E2=80=9D.= Then I look > at things that would be built; if, say, LibreOffice is among them, I > wait for a little while and try again later, until I can get enough > substitutes. That usually works okay, but it fails if it turns out that > one of the dependencies fails to build: substitutes never become > available in that case. Interesting. Do you think this kind of thing might be useful to have in the Guix manual? Like, in a section about a "typical" desktop end-user might manage their system day to day? Alex From unknown Tue Aug 19 23:11:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22629: =?UTF-8?Q?=E2=80=9CStable=E2=80=9D?= branch Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 04 Sep 2018 12:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22629 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Alex Sassmannshausen Cc: 26608@debbugs.gnu.org, Konrad Hinsen , 22629@debbugs.gnu.org, 32022@debbugs.gnu.org Received: via spool by 22629-submit@debbugs.gnu.org id=B22629.153606378912434 (code B ref 22629); Tue, 04 Sep 2018 12:24:01 +0000 Received: (at 22629) by debbugs.gnu.org; 4 Sep 2018 12:23:09 +0000 Received: from localhost ([127.0.0.1]:45118 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxAMP-0003EU-6e for submit@debbugs.gnu.org; Tue, 04 Sep 2018 08:23:09 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxAMO-0003EH-2x for 22629@debbugs.gnu.org; Tue, 04 Sep 2018 08:23:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fxAMF-0003QF-Rz for 22629@debbugs.gnu.org; Tue, 04 Sep 2018 08:23:02 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:40287) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxALt-0002Xk-0o; Tue, 04 Sep 2018 08:22:37 -0400 Received: from [193.50.110.186] (port=48646 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fxALs-0000u6-Oc; Tue, 04 Sep 2018 08:22:36 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87vb5vsffd.fsf@gnu.org> <87pny2iks2.fsf@gnu.org> <877ekagtg9.fsf@netris.org> <87zhx5msfl.fsf@pompo.co> <87lg8pccys.fsf_-_@netris.org> <87zhx59gh3.fsf@elephly.net> <875zzs9wzl.fsf@netris.org> <874lfcxd2v.fsf_-_@gnu.org> <87wos8lzcj.fsf@pompo.co> <878t4nqzqv.fsf@gnu.org> <87r2iau0wz.fsf@pompo.co> <87zhwywe8v.fsf@gnu.org> <87pnxtu1uw.fsf@pompo.co> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 18 Fructidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 04 Sep 2018 14:22:35 +0200 In-Reply-To: <87pnxtu1uw.fsf@pompo.co> (Alex Sassmannshausen's message of "Tue, 04 Sep 2018 10:02:31 +0200") Message-ID: <8736upcv04.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hi Alex, Alex Sassmannshausen skribis: > So the example you provided is a user-defined policy to install the > latest version of Guix that is downloadable using substitutes (if guix > publish has published those already). > > As you say, in a similar vein, the end user could for themselves define > a policy that searches for a commit containing a specific successful > build, or a set of specific successful builds. Exactly. >> As I imagine it, the cost would be a few HTTP queries to the Cuirass >> API. I should try to come up with an example to better explain what I >> had in mind! > > Your example helps visualize this, thanks. > > Your example depends on there being a jobset that comprises the set of > packages you are interested in testing. Yes, and it=E2=80=99s hacky in that the substitute server and jobset names = are hard-coded, but you get the idea. > I imagine it is possible to do the same for an individual package / job. Yes. > The situation would be different if the end user wanted to perform a > similar operation for an arbitrary set of packages on their end. It would be quite similar: you would query the set of builds of an evaluation of the =E2=80=9Cguix-modular=E2=80=9D jobset and check whether t= he packages of interest were built. >> What I typically do is =E2=80=9Cguix pull && guix package -n -u=E2=80=9D= . Then I look >> at things that would be built; if, say, LibreOffice is among them, I >> wait for a little while and try again later, until I can get enough >> substitutes. That usually works okay, but it fails if it turns out that >> one of the dependencies fails to build: substitutes never become >> available in that case. > > Interesting. Do you think this kind of thing might be useful to have in > the Guix manual? Like, in a section about a "typical" desktop end-user > might manage their system day to day? It would make sense to have such a section I guess. However, before teaching users how to work around deficiencies of our infrastructure our processes ;-), I=E2=80=99d like us to improve them much as possible. I=E2= =80=99m sure we have room for improvement for instance in Cuirass. Thanks, Ludo=E2=80=99.