Message ID | 30e3db0aca5699b7d42f7107723e9dde4f16a5f7.1635871607.git.public@yoctocell.xyz |
---|---|
State | Accepted |
Headers | show |
Series | [bug#51570] build-system: haskell: Add ‘hackage-uri’ procedure. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Hi, Thanks for this helpful patch. On Tue, 2 Nov 2021 at 17:49, Xinglu Chen <public@yoctocell.xyz> wrote: > +(define (hackage-uri name version) > + "Return a URI string for the Haskell package hosted on Hackage corresponding > +to NAME and VERSION." > + (string-append "https://hackage.haskell.org/package/" name "/" > + name "-" version ".tar.gz")) It seems the correct way. Aside this change for future imports from Hackage, does it make sense to replace the current 'string-append' in all package definitions by this 'hackage-uri'? Cheers, simon
Hi, On Wed, Nov 03 2021, zimoun wrote: > Hi, > > Thanks for this helpful patch. You are welcome! :-) > On Tue, 2 Nov 2021 at 17:49, Xinglu Chen <public@yoctocell.xyz> wrote: > >> +(define (hackage-uri name version) >> + "Return a URI string for the Haskell package hosted on Hackage corresponding >> +to NAME and VERSION." >> + (string-append "https://hackage.haskell.org/package/" name "/" >> + name "-" version ".tar.gz")) > > It seems the correct way. Aside this change for future imports from > Hackage, does it make sense to replace the current 'string-append' in > all package definitions by this 'hackage-uri'? That would be nice, but I don’t know of a way to automate this; maybe you have some ideas? :-)
Hi, Xinglu Chen <public@yoctocell.xyz> skribis: > * guix/build-system/haskell (hackage-uri): New procedure. > * guix/import/hackage.scm (hackage-module->sexp, latest-release): Use it. > * tests/hackage.scm (match-ghc-foo, match-ghc-foo-6, match-ghc-foo-revision, > match-ghc-foo-import): Adjust accordingly. [...] > +(define (hackage-uri name version) > + "Return a URI string for the Haskell package hosted on Hackage corresponding > +to NAME and VERSION." > + (string-append "https://hackage.haskell.org/package/" name "/" > + name "-" version ".tar.gz")) Applied, but I also exported ‘hackage-uri’ so that it’s more useful. :-) Thanks, Ludo’.
diff --git a/guix/build-system/haskell.scm b/guix/build-system/haskell.scm index 18a584f782..48f3452931 100644 --- a/guix/build-system/haskell.scm +++ b/guix/build-system/haskell.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com> ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,6 +42,12 @@ (define-module (guix build-system haskell) ;; ;; Code: +(define (hackage-uri name version) + "Return a URI string for the Haskell package hosted on Hackage corresponding +to NAME and VERSION." + (string-append "https://hackage.haskell.org/package/" name "/" + name "-" version ".tar.gz")) + (define %haskell-build-system-modules ;; Build-side modules imported by default. `((guix build haskell-build-system) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 03881f1a3d..51581f15d7 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -303,7 +303,7 @@ (define (maybe-arguments) (version ,version) (source (origin (method url-fetch) - (uri (string-append ,@(factorize-uri source-url version))) + (uri (hackage-uri ,name version)) (sha256 (base32 ,(if tarball @@ -367,7 +367,7 @@ (define (latest-release package) (hackage-cabal-url hackage-name)) #f) ((_ *** ("version" (version))) - (let ((url (hackage-source-url hackage-name version))) + (let ((url (hackage-uri hackage-name version))) (upstream-source (package (package-name package)) (version version) diff --git a/tests/hackage.scm b/tests/hackage.scm index aca807027c..ba694661f3 100644 --- a/tests/hackage.scm +++ b/tests/hackage.scm @@ -170,10 +170,7 @@ (define-package-matcher match-ghc-foo ('source ('origin ('method 'url-fetch) - ('uri ('string-append - "https://hackage.haskell.org/package/foo/foo-" - 'version - ".tar.gz")) + ('uri ('hackage-uri "foo" 'version)) ('sha256 ('base32 (? string? hash))))) @@ -215,10 +212,7 @@ (define-package-matcher match-ghc-foo-6 ('source ('origin ('method 'url-fetch) - ('uri ('string-append - "https://hackage.haskell.org/package/foo/foo-" - 'version - ".tar.gz")) + ('uri ('hackage-uri "foo" 'version)) ('sha256 ('base32 (? string? hash))))) @@ -343,10 +337,7 @@ (define-package-matcher match-ghc-foo-revision ('source ('origin ('method 'url-fetch) - ('uri ('string-append - "https://hackage.haskell.org/package/foo/foo-" - 'version - ".tar.gz")) + ('uri ('hackage-uri "foo" 'version)) ('sha256 ('base32 (? string? hash))))) @@ -409,10 +400,7 @@ (define-package-matcher match-ghc-foo-import ('source ('origin ('method 'url-fetch) - ('uri ('string-append - "https://hackage.haskell.org/package/foo/foo-" - 'version - ".tar.gz")) + ('uri ('hackage-uri "foo" 'version)) ('sha256 ('base32 (? string? hash)))))