import: pypi: Gracefully handle missing project home page.

Fixes <https://issues.guix.gnu.org/54259>.
Reported by Ricardo Wurmus <rekado@elephly.net>.

* guix/import/pypi.scm (pypi->guix-package): Upon
'missing-source-error?', raise '&fix-hint' only if
'project-info-home-page' returns a non-empty string.
This commit is contained in:
Ludovic Courtès 2022-03-07 22:06:28 +01:00
parent ad464b1704
commit ebb03447f8
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -500,19 +500,22 @@ (define pypi->guix-package
(guard (c ((missing-source-error? c)
(let ((package (missing-source-error-package c)))
(raise
(make-compound-condition
(apply
make-compound-condition
(formatted-message
(G_ "no source release for pypi package ~a ~a~%")
(project-info-name info) version)
(condition
(&fix-hint
(hint (format #f (G_ "This indicates that the
(match (project-info-home-page info)
((or #f "") '())
(url
(list
(condition
(&fix-hint
(hint (format #f (G_ "This indicates that the
package is available on PyPI, but only as a \"wheel\" containing binaries, not
source. To build it from source, refer to the upstream repository at
@uref{~a}.")
(or (project-info-home-page info)
(project-info-url info)
"?"))))))))))
url))))))))))))
(make-pypi-sexp (project-info-name info) version
(and=> (source-release project version)
distribution-url)