(name . bug-guix)(address . bug-guix@gnu.org)
Hi Guix,
I've stumbled upon the following existing use case that no longer works
when the base package is expressed using gexps:
Base package:
Toggle snippet (45 lines)
(define-public llvm-15
(package
(name "llvm")
(version "15.0.7")
[...]
#~(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
(chdir "llvm")))
(add-after 'install 'install-opt-viewer
(lambda* (#:key outputs #:allow-other-keys)
(let* ((opt-viewer-share (string-append #$output:opt-viewer
"/share")))
(mkdir-p opt-viewer-share)
(rename-file (string-append #$output "/share/opt-viewer")
opt-viewer-share)))))))
[...]
(define-public llvm-cling
(let ((base llvm-18))
(package/inherit base
(name "llvm-cling")
(version "18-20240227-01")
(source
(origin
(inherit (package-source base))
(method git-fetch)
(uri (git-reference
(url "https://github.com/root-project/llvm-project")
(commit (string-append "cling-llvm" version))))
(file-name (git-file-name "llvm-cling" version))
(sha256
(base32
"0m5hhqk9y80srvkws2gs9rhpi6bjdy8mfk94z8fx6nmfxwrqsya8"))))
(outputs '("out"))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
(delete 'install-opt-viewer))))))))
Attempting to build llvm-cling fails because the phases gexps inherited
from llvm-15 references the 'opt-viewer' output, which llvm-cling tries
to remove without success:
Toggle snippet (3 lines)
builder for `/gnu/store/f2pdg9m5q3bxrlahjvlrdgw41x6kp3zd-llvm-cling-18-20240227-01.drv' failed to produce output path `/gnu/store/m1z5257hj5vwc2rl47wkpf0wmr6x0bq2-llvm-cling-18-20240227-01-opt-viewer'
--
Thanks,
Maxim