guix-devel
[Top][All Lists]
Advanced

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

Question about sbcl-package->ecl-package


From: Guillaume Le Vaillant
Subject: Question about sbcl-package->ecl-package
Date: Wed, 16 Oct 2019 11:26:57 +0200
User-agent: mu4e 1.2.0; emacs 26.3

Hi,

I'm trying to package a Common Lisp library and I have a strange
problem.

In 'gnu/packages/lisp.scm', there are packages called 'sbcl-chanl' and
'ecl-chanl' whose definitions are:

--8<---------------cut here---------------start------------->8---
(define-public sbcl-chanl
  (let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340")
        (revision "0"))
    (package
      (name "sbcl-chanl")
      ...)))

(define-public ecl-chanl
  (let ((base (sbcl-package->ecl-package sbcl-chanl)))
    (package
      (inherit base)
      (arguments
       (substitute-keyword-arguments (package-arguments base)
         ;; Some phases are modified here so that compiling
         ;; with ECL works.
         ...)))))
--8<---------------cut here---------------end--------------->8---

Compiling these two packages works fine.

Now, I define the following new packages:

--8<---------------cut here---------------start------------->8---
(define-public sbcl-simple-parallel-tasks
  (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
        (revision "0"))
    (package
      (name "sbcl-simple-parallel-tasks")
      ...
      (inputs
       `(("chanl" ,sbcl-chanl)))
      ...)))

(define-public ecl-simple-parallel-tasks
  (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
--8<---------------cut here---------------end--------------->8---

Compiling 'sbcl-simple-parallel-tasks' works fine.

However, when I try to compile 'ecl-simple-parallel-tasks', guix first
tries to build a different derivation of 'ecl-chanl', which fails
because it apparently doesn't have the modified phases declared in the
definition of 'ecl-chanl'.

More precisely:
- If I do 'guix build ecl-chanl', guix builds
  'y60p0wn2hwp5jr0hy2qb09yazkp29m7i-ecl-chanl-0.4.1-0.2362b57'
  successfully.
- If I do 'guix build ecl-simple-parallel-tasks', guix tries to build
  'qqzlyknj5wgrm0f0nm4wwafv3ldvhrgi-ecl-chanl-0.4.1-0.2362b57'
  and fails.

When doing 'guix build ecl-simple-parallel-tasks' I was expecting guix
to use the 'ecl-chanl' I had already compiled as input, but instead it
looks as if it tries to build
'(sbcl-package->ecl-package sbcl-chanl)' instead.

Does anyone know why in this case guix tries to compile a different
derivation of 'ecl-chanl' that I didn't define anywhere?



reply via email to

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