guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

‘guix pull’ vs. transition to Guile 2.2


From: Ludovic Courtès
Subject: ‘guix pull’ vs. transition to Guile 2.2
Date: Sun, 23 Apr 2017 00:34:29 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Hello Guix!

address@hidden (Ludovic Courtès) 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 ‘guix copy’) are already compatible with Guile 2.2.

With the attached patch, the ‘guix’ package is built against Guile 2.2.
I’m running it on my GuixSD machine, and it works like a charm!

There’s a problem though, called “guix pull”.  ~/.config/guix/latest
currently contains 2.0 .go files.  Thus after reconfiguring GuixSD to
use Guix-for-2.2, running ‘guix’ typically gives loads of warnings like:

  ;;; WARNING: loading compiled file 
/home/ludo/.config/guix/latest/guix/derivations.go failed:
  ;;; ERROR: In procedure load-thunk-from-memory: No such file or directory

The fix is for ‘guix pull’ to build with Guile 2.2 when that’s what
we’re running.  For that, build-self.scm must be sure it can get the
‘guile2.2-ssh’ package when we’re on 2.2, or it will fail to compile the
new Guix.  However, ‘guile2.2-ssh’ appeared a day ago, so it’s missing
from most installations…

In short, ‘guix pull’ is broken in a way that may practically prevent it
from handling the 2.0-to-2.2 transition.  The risk is that ‘guix pull’
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’s 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’t have problems from there on.

Thoughts? Ideas?

We all know it, but it’s really really time to fix ‘guix pull’…

Ludo’.

>From e7577d6e2499596b2d802f1a5be1f229ce2ab67f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <address@hidden>
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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]