all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#51570] [PATCH] build-system: haskell: Add ‘hackage-uri’ procedure.
@ 2021-11-02 16:48 Xinglu Chen
  2021-11-03 10:29 ` zimoun
  2021-12-01 15:32 ` bug#51570: " Ludovic Courtès
  0 siblings, 2 replies; 4+ messages in thread
From: Xinglu Chen @ 2021-11-02 16:48 UTC (permalink / raw)
  To: 51570

* 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.
---
 guix/build-system/haskell.scm |  7 +++++++
 guix/import/hackage.scm       |  4 ++--
 tests/hackage.scm             | 20 ++++----------------
 3 files changed, 13 insertions(+), 18 deletions(-)

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)))))

base-commit: 0e19713c1fbfd3a01347e0d490434a53a596ed3c
-- 
2.33.0







^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#51570] [PATCH] build-system: haskell: Add ‘hackage-uri’ procedure.
  2021-11-02 16:48 [bug#51570] [PATCH] build-system: haskell: Add ‘hackage-uri’ procedure Xinglu Chen
@ 2021-11-03 10:29 ` zimoun
  2021-11-05 11:52   ` Xinglu Chen
  2021-12-01 15:32 ` bug#51570: " Ludovic Courtès
  1 sibling, 1 reply; 4+ messages in thread
From: zimoun @ 2021-11-03 10:29 UTC (permalink / raw)
  To: Xinglu Chen; +Cc: 51570

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




^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#51570] [PATCH] build-system: haskell: Add ‘hackage-uri’ procedure.
  2021-11-03 10:29 ` zimoun
@ 2021-11-05 11:52   ` Xinglu Chen
  0 siblings, 0 replies; 4+ messages in thread
From: Xinglu Chen @ 2021-11-05 11:52 UTC (permalink / raw)
  To: zimoun; +Cc: 51570

[-- Attachment #1: Type: text/plain, Size: 765 bytes --]

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?  :-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#51570: [PATCH] build-system: haskell: Add ‘hackage-uri’ procedure.
  2021-11-02 16:48 [bug#51570] [PATCH] build-system: haskell: Add ‘hackage-uri’ procedure Xinglu Chen
  2021-11-03 10:29 ` zimoun
@ 2021-12-01 15:32 ` Ludovic Courtès
  1 sibling, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2021-12-01 15:32 UTC (permalink / raw)
  To: Xinglu Chen; +Cc: 51570-done

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’.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-12-01 15:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-02 16:48 [bug#51570] [PATCH] build-system: haskell: Add ‘hackage-uri’ procedure Xinglu Chen
2021-11-03 10:29 ` zimoun
2021-11-05 11:52   ` Xinglu Chen
2021-12-01 15:32 ` bug#51570: " Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.