upstream: Reject bogus archive type guesses.

This would crash 'guix refresh -u' with source URLs ending in
"…/v1.2.3".

* guix/upstream.scm (package-update): Be stricter when determining
ARCHIVE-TYPE.
This commit is contained in:
Ludovic Courtès 2017-12-19 17:57:15 +01:00 committed by Ludovic Courtès
parent 68f1869cfc
commit 618f0582b4
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 7 additions and 1 deletions

View File

@ -278,7 +278,13 @@ and 'interactive' (default)."
((archive-type) ((archive-type)
(match (and=> (package-source package) origin-uri) (match (and=> (package-source package) origin-uri)
((? string? uri) ((? string? uri)
(file-extension (basename uri))) (let ((type (file-extension (basename uri))))
;; Sometimes we have URLs such as
;; "https://github.com/…/tarball/v0.1", in which case
;; we must not consider "1" as the extension.
(and (or (string-contains type "z")
(string=? type "tar"))
type)))
(_ (_
"gz"))) "gz")))
((url signature-url) ((url signature-url)