From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: =?utf-8?B?4oCYZ3VpeCBwdWxs4oCZ?= and external dependencies Date: Mon, 28 Nov 2016 15:13:08 +0100 Message-ID: <87vav7ae17.fsf_-_@gnu.org> 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> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49930) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBMgM-0004VU-OL for guix-devel@gnu.org; Mon, 28 Nov 2016 09:13:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBMgL-000384-Iz for guix-devel@gnu.org; Mon, 28 Nov 2016 09:13:22 -0500 In-Reply-To: <20161128100636.GB2509@macbook42.flashner.co.il> (Efraim Flashner's message of "Mon, 28 Nov 2016 12:06:36 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Efraim Flashner Cc: guix-devel@gnu.org, 22629@debbugs.gnu.org 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.