Display a backtrace for errors in channel->derivation-file-name
To help with debugging.
This commit is contained in:
parent
11144a5fe9
commit
0bd1fc7e87
1 changed files with 52 additions and 49 deletions
|
|
@ -293,61 +293,64 @@
|
|||
(catch
|
||||
#t
|
||||
(lambda ()
|
||||
;; /etc is only missing if open-inferior/container has been used
|
||||
(when use-container?
|
||||
(inferior-eval
|
||||
'(begin
|
||||
;; Create /etc/pass, as %known-shorthand-profiles in (guix
|
||||
;; profiles) tries to read from this file. Because the environment
|
||||
;; is cleaned in build-self.scm, xdg-directory in (guix utils)
|
||||
;; falls back to accessing /etc/passwd.
|
||||
(mkdir "/etc")
|
||||
(call-with-output-file "/etc/passwd"
|
||||
(lambda (port)
|
||||
(display "root:x:0:0::/root:/bin/bash" port))))
|
||||
inferior))
|
||||
(with-throw-handler #t
|
||||
(lambda ()
|
||||
;; /etc is only missing if open-inferior/container has been used
|
||||
(when use-container?
|
||||
(inferior-eval
|
||||
'(begin
|
||||
;; Create /etc/pass, as %known-shorthand-profiles in (guix
|
||||
;; profiles) tries to read from this file. Because the environment
|
||||
;; is cleaned in build-self.scm, xdg-directory in (guix utils)
|
||||
;; falls back to accessing /etc/passwd.
|
||||
(mkdir "/etc")
|
||||
(call-with-output-file "/etc/passwd"
|
||||
(lambda (port)
|
||||
(display "root:x:0:0::/root:/bin/bash" port))))
|
||||
inferior))
|
||||
|
||||
(let ((channel-instance
|
||||
(first
|
||||
(latest-channel-instances store
|
||||
(list channel)))))
|
||||
(inferior-eval '(use-modules (guix channels)
|
||||
(guix profiles))
|
||||
inferior)
|
||||
(inferior-eval '(define channel-instance
|
||||
(@@ (guix channels) channel-instance))
|
||||
inferior)
|
||||
(let ((channel-instance
|
||||
(first
|
||||
(latest-channel-instances store
|
||||
(list channel)))))
|
||||
(inferior-eval '(use-modules (guix channels)
|
||||
(guix profiles))
|
||||
inferior)
|
||||
(inferior-eval '(define channel-instance
|
||||
(@@ (guix channels) channel-instance))
|
||||
inferior)
|
||||
|
||||
(let ((file-name
|
||||
(inferior-eval-with-store
|
||||
inferior
|
||||
store
|
||||
`(lambda (store)
|
||||
(let ((instances
|
||||
(list
|
||||
(channel-instance
|
||||
(channel (name ',(channel-name channel))
|
||||
(url ,(channel-url channel))
|
||||
(branch ,(channel-branch channel))
|
||||
(commit ,(channel-commit channel)))
|
||||
,(channel-instance-commit channel-instance)
|
||||
,(channel-instance-checkout channel-instance)))))
|
||||
(run-with-store store
|
||||
(mlet* %store-monad ((manifest (channel-instances->manifest instances))
|
||||
(derv (profile-derivation manifest)))
|
||||
(mbegin %store-monad
|
||||
(return (derivation-file-name derv))))))))))
|
||||
(let ((file-name
|
||||
(inferior-eval-with-store
|
||||
inferior
|
||||
store
|
||||
`(lambda (store)
|
||||
(let ((instances
|
||||
(list
|
||||
(channel-instance
|
||||
(channel (name ',(channel-name channel))
|
||||
(url ,(channel-url channel))
|
||||
(branch ,(channel-branch channel))
|
||||
(commit ,(channel-commit channel)))
|
||||
,(channel-instance-commit channel-instance)
|
||||
,(channel-instance-checkout channel-instance)))))
|
||||
(run-with-store store
|
||||
(mlet* %store-monad ((manifest (channel-instances->manifest instances))
|
||||
(derv (profile-derivation manifest)))
|
||||
(mbegin %store-monad
|
||||
(return (derivation-file-name derv))))))))))
|
||||
|
||||
(close-inferior inferior)
|
||||
(close-inferior inferior)
|
||||
|
||||
file-name)))
|
||||
file-name)))
|
||||
(lambda (key . parameters)
|
||||
(display (backtrace) (current-error-port))
|
||||
(display "\n" (current-error-port))
|
||||
(simple-format (current-error-port)
|
||||
"error: channel->derivation-file-name: ~A: ~A\n"
|
||||
key parameters))))
|
||||
(lambda args
|
||||
(simple-format (current-error-port)
|
||||
"error: channel->derivation-file-name: ~A\n"
|
||||
args)
|
||||
|
||||
(close-inferior inferior)
|
||||
|
||||
#f))))
|
||||
|
||||
(define (channel->manifest-store-item store channel)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue