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?= vs. transition to Guile 2.2 Date: Sun, 23 Apr 2017 00:34:29 +0200 Message-ID: <87k26chy16.fsf@gnu.org> References: <87bmt28qnm.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53681) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d23bv-0000pI-Sa for guix-devel@gnu.org; Sat, 22 Apr 2017 18:34:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d23br-000636-Sz for guix-devel@gnu.org; Sat, 22 Apr 2017 18:34:35 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55633) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d23br-00062y-OO for guix-devel@gnu.org; Sat, 22 Apr 2017 18:34:31 -0400 Received: from reverse-83.fdn.fr ([80.67.176.83]:55328 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1d23br-0007DM-2F for guix-devel@gnu.org; Sat, 22 Apr 2017 18:34:31 -0400 In-Reply-To: <87bmt28qnm.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Wed, 15 Mar 2017 17:13:01 +0100") 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: guix-devel --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Guix! ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > As of commit 608e42e7c92114497e7908980424288079acee1e, Guix builds with > Guile 2.2 (to be released sometime within the next 24 hours) and the > whole test suite passes. > > All the dependencies of Guix except Guile-SSH (optional; use for > offloading and for =E2=80=98guix copy=E2=80=99) are already compatible wi= th Guile 2.2. With the attached patch, the =E2=80=98guix=E2=80=99 package is built agains= t Guile 2.2. I=E2=80=99m running it on my GuixSD machine, and it works like a charm! There=E2=80=99s a problem though, called =E2=80=9Cguix pull=E2=80=9D. ~/.c= onfig/guix/latest currently contains 2.0 .go files. Thus after reconfiguring GuixSD to use Guix-for-2.2, running =E2=80=98guix=E2=80=99 typically gives loads of w= arnings like: ;;; WARNING: loading compiled file /home/ludo/.config/guix/latest/guix/de= rivations.go failed: ;;; ERROR: In procedure load-thunk-from-memory: No such file or directory The fix is for =E2=80=98guix pull=E2=80=99 to build with Guile 2.2 when tha= t=E2=80=99s what we=E2=80=99re running. For that, build-self.scm must be sure it can get the =E2=80=98guile2.2-ssh=E2=80=99 package when we=E2=80=99re on 2.2, or it wil= l fail to compile the new Guix. However, =E2=80=98guile2.2-ssh=E2=80=99 appeared a day ago, so i= t=E2=80=99s missing from most installations=E2=80=A6 In short, =E2=80=98guix pull=E2=80=99 is broken in a way that may practical= ly prevent it from handling the 2.0-to-2.2 transition. The risk is that =E2=80=98guix pu= ll=E2=80=99 will fail to upgrade, preventing users from upgrading Guix altogether. To work around that, people will have to use a Git checkout of Guix. Of course that=E2=80=99s what many of us already do, but still. Maybe the upcoming release is a good time to make that transition: at least people installing GuixSD or Guix from that release will already be on 2.2 and won=E2=80=99t have problems from there on. Thoughts? Ideas? We all know it, but it=E2=80=99s really really time to fix =E2=80=98guix pu= ll=E2=80=99=E2=80=A6 Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-gnu-guix-Build-with-Guile-2.2.patch Content-Description: the patch >From e7577d6e2499596b2d802f1a5be1f229ce2ab67f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 22 Apr 2017 15:13:36 +0200 Subject: [PATCH 1/3] gnu: guix: Build with Guile 2.2. * gnu/packages/package-management.scm (guix-devel)[inputs, propagated-inputs]: New fields. --- gnu/packages/package-management.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 952c268b0..bc2c1e0d3 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -52,6 +52,7 @@ #:use-module (gnu packages tls) #:use-module (gnu packages ssh) #:use-module (gnu packages vim) + #:use-module (srfi srfi-1) #:use-module (ice-9 match)) (define (boot-guile-uri arch) @@ -69,6 +70,8 @@ "/20131110/guile-2.0.9.tar.xz")))) (define-public guix-0.12.0 + ;; TODO: On the next release, move the Guile 2.2 inputs from 'guix-devel' + ;; to here. (package (name "guix") (version "0.12.0") @@ -238,6 +241,17 @@ the Nix package manager.") (base32 "0p4rh0629j89v4ka5dsp70a1xrfhg7sxjjq54p68vw7x5dkann4a")) (file-name (string-append "guix-" version "-checkout")))) + + ;; Build with Guile 2.2. + ;; TODO: Move to the stable 'guix' package on the next release. + (inputs + `(("guile" ,guile-2.2) + ,@(alist-delete "guile" (package-inputs guix-0.12.0)))) + (propagated-inputs + `(("gnutls" ,gnutls/guile-2.2) ;for 'guix download' & co. + ("guile-json" ,guile2.2-json) + ("guile-ssh" ,guile2.2-ssh))) + (arguments (substitute-keyword-arguments (package-arguments guix-0.12.0) ((#:configure-flags flags) -- 2.12.2 --=-=-=--