import: pypi: Preserve package name case when forming pypi-uri.

Fixes <https://bugs.gnu.org/33046>.

* guix/build-system/python.scm (pypi-uri): Update the host URI to
"files.pythonhosted.org".
* guix/import/pypi.scm (make-pypi-sexp): Preserve the package name case when
the source URL calls for it.
This commit is contained in:
Maxim Cournoyer 2019-03-30 20:27:35 -04:00
parent a537620054
commit 4b60ab8c00
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 14 additions and 9 deletions

View File

@ -368,15 +368,20 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
`(package
(name ,(python->package-name name))
(version ,version)
(source (origin
(method url-fetch)
;; Sometimes 'pypi-uri' doesn't quite work due to mixed
;; cases in NAME, for instance, as is the case with
;; "uwsgi". In that case, fall back to a full URL.
(uri (pypi-uri ,(string-downcase name) version))
(sha256
(base32
,(guix-hash-url temp)))))
(source
(origin
(method url-fetch)
;; PyPI URL are case sensitive, but sometimes a project
;; named using mixed case has a URL using lower case, so
;; we must work around this inconsistency. For actual
;; examples, compare the URLs of the "Deprecated" and
;; "uWSGI" PyPI packages.
(uri ,(if (string-contains source-url name)
`(pypi-uri ,name version)
`(pypi-uri ,(string-downcase name) version)))
(sha256
(base32
,(guix-hash-url temp)))))
(build-system python-build-system)
,@(maybe-inputs required-inputs 'propagated-inputs)
,@(maybe-inputs test-inputs 'native-inputs)