diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index e79576207b..4f14df4d61 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -26,6 +26,7 @@ (define-module (guix import hackage) #:use-module ((guix utils) #:select (package-name->name+version canonical-newline-port)) #:use-module (guix import utils) + #:use-module (guix http-client) #:use-module (guix import cabal) #:use-module (guix store) #:use-module (guix hash) @@ -92,13 +93,12 @@ (define (hackage-fetch name-version) "Return the Cabal file for the package NAME-VERSION, or #f on failure. If the version part is omitted from the package name, then return the latest version." - (let*-values (((name version) (package-name->name+version name-version)) - ((url) (hackage-cabal-url name version))) - (call-with-temporary-output-file - (lambda (temp port) - (and (url-fetch url temp) - (call-with-input-file temp - (compose read-cabal canonical-newline-port))))))) + (let-values (((name version) (package-name->name+version name-version))) + (let* ((url (hackage-cabal-url name version)) + (port (http-fetch url)) + (result (read-cabal (canonical-newline-port port)))) + (close-port port) + result))) (define string->license ;; List of valid values from