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?