Efraim Flashner skribis:
> On Wed, Oct 16, 2019 at 01:59:01PM +0200, Pierre Neidhardt wrote: >> I've encountered the same problem a couple of times. >> If you try to compile ecl-dexador, you'll see it fails because it does >> not re-use the arguments of sbcl-dexador which patches out a failing >> test. >> >> Something is wrong in sbcl-package->ecl-package. >> Andy? >> >> That said, it's not a very big deal, since the cl- package works for all >> compilers. >> > > Sounds like the conversion isn't "recursive enough". On a per-package > basis you can replace the created ecl package with the real one. The > better option would be to look at how python defines python2- variants, > which sounds a lot like the problem you're having here. I suspect the problem comes from the 'rewrite' function used to change the package inputs. In 'guix/build-system/asdf.scm': --8<---------------cut here---------------start------------->8--- (define rewrite (match-lambda ((name content . rest) (let* ((is-package? (package? content)) (new-content (if is-package? (transform content) content))) `(,name ,new-content ,@rest))))) --8<---------------cut here---------------end--------------->8--- Won't '(transform content)' create a new ecl-package for each input package instead of trying to find the already defined ecl-package? Maybe it could be replaced by something like: --8<---------------cut here---------------start------------->8--- (let* ((sbcl-input-name (package-name content)) (ecl-input-name (transform-package-name sbcl-input-name)) (ecl-input-package (find-package ecl-name))) (if (package? ecl-input-package) ecl-input-package (transform content))) --8<---------------cut here---------------end--------------->8--- However, it's the first time I look at the internals of Guix, so I'm not sure if this would work or not... What do you think?