Hi all and sorry if it's a FAQ ! I would like to write a package definition for a program that expects openmpi < 4.0.0, which is present in earlier versions of guix. If I'm not mistaken I have to use inferiors in that case, and I tried this :
(use-modules (gnu packages mpi) (guix packages) (guix download) (guix build-system gnu) (guix licenses) (guix build utils) (guix gexp) (guix inferior) (guix channels)) (define mychannels (list (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") ;; Last commit that still has openmpi < 4.0.0 (commit "1482531cd7d0f1f7e565207240affb68dd822e17")))) (define myinferior (inferior-for-channels mychannels)) (define myopenmpi (first (lookup-inferior-packages myinferior "openmpi"))) (package (name "coevol") (version "1.5b") (source (origin (method url-fetch) (uri (string-append " https://github.com/bayesiancook/coevol/archive/refs/tags/v" version ".tar.gz")) (sha256 (base32 "112kjjxwlm9m3f3wks3q86gp561l8s5gsw17zrffrhljixd8qyyp")))) (build-system gnu-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (delete 'configure) (add-after 'unpack 'chdir (lambda _ (chdir "sources") #t))))) (inputs (list myopenmpi)) (synopsis "Correlated evolution of substitution rates and quantitative traits") (description "...") (home-page " https://megasun.bch.umontreal.ca/People/lartillot/www/downloadcoevol.html") (license gpl3+)) My problem is that when invoking guix I get this: $ guix package --install-from-file=coevol.scm Mise à jour du canal « guix » depuis le dépôt Git « https://git.savannah.gnu.org/git/guix.git »... Computing Guix derivation for 'x86_64-linux'... \fetching path `/gnu/store/ir3092v7657h6g4g2vlsw3zrli3rndb3-zlib-1.2.11.tar.gz'... substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% and a spinning character for more than 10 hours. I can see a 'guix substitute' process working and using quite some memory after a while (3-4 GB). My question is this: should I just be patient and wait for it to complete or I'm doing this wrong? Thanks for any hint! Philippe.