GNU bug report logs - #35930
haskell Setup.hs-related changes

Previous Next

Package: guix-patches;

Reported by: Robert Vollmert <rob <at> vllmrt.net>

Date: Mon, 27 May 2019 19:54:02 UTC

Severity: normal

Tags: patch

Done: Timothy Sample <samplet <at> ngyro.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 35930 in the body.
You can then email your comments to 35930 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#35930; Package guix-patches. (Mon, 27 May 2019 19:54:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Robert Vollmert <rob <at> vllmrt.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 27 May 2019 19:54:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Robert Vollmert <rob <at> vllmrt.net>
To: guix-patches <at> gnu.org
Subject: haskell Setup.hs-related changes
Date: Mon, 27 May 2019 21:52:47 +0200
This primarily moves the substitution of missing Setup.hs files to
haskell-build-system. There was already duplicate code in a number
of packages to generated boilerplate Setup.hs, and I ran into a
couple more while trying to import some other packages.






Information forwarded to guix-patches <at> gnu.org:
bug#35930; Package guix-patches. (Mon, 27 May 2019 19:57:02 GMT) Full text and rfc822 format available.

Message #8 received at 35930 <at> debbugs.gnu.org (full text, mbox):

From: Robert Vollmert <rob <at> vllmrt.net>
To: 35930 <at> debbugs.gnu.org
Cc: Robert Vollmert <rob <at> vllmrt.net>
Subject: [PATCH 2/4] guix: haskell-build-system: correct haddock phase
 documentation
Date: Mon, 27 May 2019 21:56:17 +0200
* guix/build/haskell-build-system.scm (haddock): Correct docstring
---
 guix/build/haskell-build-system.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 23d97e6602..5c5b32322b 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -260,7 +260,7 @@ given Haskell package."
   #t)
 
 (define* (haddock #:key outputs haddock? haddock-flags #:allow-other-keys)
-  "Run the test suite of a given Haskell package."
+  "Generate haddock documentation of a given Haskell package."
   (when haddock?
     (run-setuphs "haddock" haddock-flags))
   #t)
-- 
2.20.1 (Apple Git-117)





Information forwarded to guix-patches <at> gnu.org:
bug#35930; Package guix-patches. (Mon, 27 May 2019 19:57:04 GMT) Full text and rfc822 format available.

Message #11 received at 35930 <at> debbugs.gnu.org (full text, mbox):

From: Robert Vollmert <rob <at> vllmrt.net>
To: 35930 <at> debbugs.gnu.org
Cc: Robert Vollmert <rob <at> vllmrt.net>
Subject: [PATCH 3/4] guix: haskell-build-system: generate Setup.hs if not
 exists
Date: Mon, 27 May 2019 21:56:18 +0200
The default Setup.hs is boilerplate that is frequently left out of
source packages, causing build failure for package definitions as
generated by `guix import hackage`. Compare
<https://github.com/phadej/time-compat/issues/4>

* guix/build/haskell-build-system.scm: Generate Setup.hs if missing,
after unpack phase.
---
 guix/build/haskell-build-system.scm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 5c5b32322b..0c648e510f 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -275,9 +275,21 @@ given Haskell package."
       (_ (error "Could not find a Cabal file to patch."))))
   #t)
 
+(define* (generate-setup #:rest empty)
+  "Generate boilerplate Setup.hs if missing."
+  (when (not (or (file-exists? "Setup.hs")
+                 (file-exists? "Setup.lhs")))
+    (format #t "generating missing Setup.hs~%")
+    (with-output-to-file "Setup.hs"
+      (lambda ()
+        (format #t "import Distribution.Simple~%")
+        (format #t "main = defaultMain~%"))))
+  #t)
+
 (define %standard-phases
   (modify-phases gnu:%standard-phases
     (add-after 'unpack 'patch-cabal-file patch-cabal-file)
+    (add-after 'unpack 'generate-setup generate-setup)
     (delete 'bootstrap)
     (add-before 'configure 'setup-compiler setup-compiler)
     (add-before 'install 'haddock haddock)
-- 
2.20.1 (Apple Git-117)





Information forwarded to guix-patches <at> gnu.org:
bug#35930; Package guix-patches. (Mon, 27 May 2019 19:57:05 GMT) Full text and rfc822 format available.

Message #14 received at 35930 <at> debbugs.gnu.org (full text, mbox):

From: Robert Vollmert <rob <at> vllmrt.net>
To: 35930 <at> debbugs.gnu.org
Cc: Robert Vollmert <rob <at> vllmrt.net>
Subject: [PATCH 4/4] gnu: haskell: leave Setup.hs generation to build system
Date: Mon, 27 May 2019 21:56:19 +0200
Remove explicit Setup.hs generation from the configure step
now that haskell-build-system does it.

* gnu/packages/haskell.scm (ghc-foundation, ghc-inline-c,
ghc-inline-c-cpp, ghc-rio): Don't generate Setup.hs
---
 gnu/packages/haskell.scm | 42 ----------------------------------------
 1 file changed, 42 deletions(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 44b9e9066a..160b0a1fca 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -9688,16 +9688,6 @@ packages.")
         (base32
          "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'add-setup-script
-           (lambda _
-             ;; The usual "Setup.hs" script is missing from the source.
-             (with-output-to-file "Setup.hs"
-               (lambda ()
-                 (format #t "import Distribution.Simple~%")
-                 (format #t "main = defaultMain~%"))))))))
     (inputs `(("ghc-basement" ,ghc-basement)))
     (home-page "https://github.com/haskell-foundation/foundation")
     (synopsis "Alternative prelude with batteries and no dependencies")
@@ -10575,16 +10565,6 @@ widths to the Char type.")
         (base32
          "064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'add-setup-script
-           (lambda _
-             ;; The usual "Setup.hs" script is missing from the source.
-             (with-output-to-file "Setup.hs"
-               (lambda ()
-                 (format #t "import Distribution.Simple~%")
-                 (format #t "main = defaultMain~%"))))))))
     (inputs
      `(("ghc-exceptions" ,ghc-exceptions)
        ("ghc-hashable" ,ghc-hashable)
@@ -11107,17 +11087,6 @@ DOS/Windows paths and markup languages (such as XML).")
         (base32
          "0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'create-Setup.hs
-           (lambda _
-             (with-output-to-file "Setup.hs"
-               (lambda _
-                 (display "\
-import Distribution.Simple
-main = defaultMain")))
-             #t)))))
     (inputs
      `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
        ("ghc-cryptohash" ,ghc-cryptohash)
@@ -11251,17 +11220,6 @@ handling wrong.")
         (base32
          "1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'create-Setup.hs
-           (lambda _
-             (with-output-to-file "Setup.hs"
-               (lambda _
-                 (display "\
-import Distribution.Simple
-main = defaultMain")))
-             #t)))))
     (inputs
      `(("ghc-inline-c" ,ghc-inline-c)
        ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
-- 
2.20.1 (Apple Git-117)





Information forwarded to guix-patches <at> gnu.org:
bug#35930; Package guix-patches. (Mon, 27 May 2019 19:57:05 GMT) Full text and rfc822 format available.

Message #17 received at 35930 <at> debbugs.gnu.org (full text, mbox):

From: Robert Vollmert <rob <at> vllmrt.net>
To: 35930 <at> debbugs.gnu.org
Cc: Robert Vollmert <rob <at> vllmrt.net>
Subject: [PATCH 1/4] gnu: ghc-easy-plot: remove superfluous Setup.hs rename
 step
Date: Mon, 27 May 2019 21:56:16 +0200
haskell-build-system already uses whichever of Setup.hs and
Setup.lhs exists.

* gnu/packages/haskell.scm (ghc-easy-plot): don't rename
Setup.lhs to Setup.hs
---
 gnu/packages/haskell.scm | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 33c9c6484d..44b9e9066a 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -8063,10 +8063,6 @@ interface for statistics based on hmatrix and GSL.")
         (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
     (build-system haskell-build-system)
     (propagated-inputs `(("gnuplot" ,gnuplot)))
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'fix-setup-suffix
-                    (lambda _ (rename-file "Setup.lhs" "Setup.hs") #t)))))
     (home-page "https://hub.darcs.net/scravy/easyplot")
     (synopsis "Haskell plotting library based on gnuplot")
     (description "This package provides a plotting library for
-- 
2.20.1 (Apple Git-117)





Added tag(s) patch. Request was from Robert Vollmert <rob <at> vllmrt.net> to control <at> debbugs.gnu.org. (Tue, 04 Jun 2019 12:39:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#35930; Package guix-patches. (Thu, 13 Jun 2019 08:37:02 GMT) Full text and rfc822 format available.

Message #22 received at 35930 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Robert Vollmert <rob <at> vllmrt.net>
Cc: Ricardo Wurmus <rekado <at> elephly.net>, Timothy Sample <samplet <at> ngyro.com>,
 35930 <at> debbugs.gnu.org
Subject: Re: [bug#35930] haskell Setup.hs-related changes
Date: Thu, 13 Jun 2019 10:36:19 +0200
Hi Robert,

Robert Vollmert <rob <at> vllmrt.net> skribis:

> This primarily moves the substitution of missing Setup.hs files to
> haskell-build-system. There was already duplicate code in a number
> of packages to generated boilerplate Setup.hs, and I ran into a
> couple more while trying to import some other packages.

This looks like a welcome and harmless factorization; Timothy, Ricardo:
WDYT?

  https://issues.guix.gnu.org/issue/35930

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#35930; Package guix-patches. (Thu, 13 Jun 2019 15:58:01 GMT) Full text and rfc822 format available.

Message #25 received at 35930 <at> debbugs.gnu.org (full text, mbox):

From: Timothy Sample <samplet <at> ngyro.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Ricardo Wurmus <rekado <at> elephly.net>, 35930 <at> debbugs.gnu.org,
 Robert Vollmert <rob <at> vllmrt.net>
Subject: Re: [bug#35930] haskell Setup.hs-related changes
Date: Thu, 13 Jun 2019 11:57:01 -0400
Hi!

Ludovic Courtès <ludo <at> gnu.org> writes:

> Hi Robert,
>
> Robert Vollmert <rob <at> vllmrt.net> skribis:
>
>> This primarily moves the substitution of missing Setup.hs files to
>> haskell-build-system. There was already duplicate code in a number
>> of packages to generated boilerplate Setup.hs, and I ran into a
>> couple more while trying to import some other packages.
>
> This looks like a welcome and harmless factorization; Timothy, Ricardo:
> WDYT?
>
>   https://issues.guix.gnu.org/issue/35930

The first patch breaks “ghc-easyplot”.

I’m currently building some packages to test the other patches, and if
everything builds fine, they LGTM with some minor tweaks (which I’ve
already made).  Should I push it to master or staging?  It means
rebuilding all of our Haskell packages, which is a few hundered
packages.

Robert, do you know why the first patch doesn’t work?  Should I just
omit it?


-- Tim




Information forwarded to guix-patches <at> gnu.org:
bug#35930; Package guix-patches. (Thu, 13 Jun 2019 16:21:01 GMT) Full text and rfc822 format available.

Message #28 received at 35930 <at> debbugs.gnu.org (full text, mbox):

From: Robert Vollmert <rob <at> vllmrt.net>
To: Timothy Sample <samplet <at> ngyro.com>
Cc: Ricardo Wurmus <rekado <at> elephly.net>,
 Ludovic Courtès <ludo <at> gnu.org>, 35930 <at> debbugs.gnu.org
Subject: Re: [bug#35930] haskell Setup.hs-related changes
Date: Thu, 13 Jun 2019 18:20:21 +0200

> On 13. Jun 2019, at 17:57, Timothy Sample <samplet <at> ngyro.com> wrote:
>>  https://issues.guix.gnu.org/issue/35930
> 
> The first patch breaks “ghc-easyplot”.
> 
> I’m currently building some packages to test the other patches, and if
> everything builds fine, they LGTM with some minor tweaks (which I’ve
> already made).  Should I push it to master or staging?  It means
> rebuilding all of our Haskell packages, which is a few hundered
> packages.
> 
> Robert, do you know why the first patch doesn’t work?  Should I just
> omit it?

Yes go head, I thought it worked at some point but am very doubtful
right now. I’ll look into it again, but it’s not a necessary part here
I think.





Reply sent to Timothy Sample <samplet <at> ngyro.com>:
You have taken responsibility. (Fri, 14 Jun 2019 03:06:02 GMT) Full text and rfc822 format available.

Notification sent to Robert Vollmert <rob <at> vllmrt.net>:
bug acknowledged by developer. (Fri, 14 Jun 2019 03:06:02 GMT) Full text and rfc822 format available.

Message #33 received at 35930-done <at> debbugs.gnu.org (full text, mbox):

From: Timothy Sample <samplet <at> ngyro.com>
To: Robert Vollmert <rob <at> vllmrt.net>
Cc: Ricardo Wurmus <rekado <at> elephly.net>,
 Ludovic Courtès <ludo <at> gnu.org>, 35930-done <at> debbugs.gnu.org
Subject: Re: [bug#35930] haskell Setup.hs-related changes
Date: Thu, 13 Jun 2019 23:05:35 -0400
Hello,

Robert Vollmert <rob <at> vllmrt.net> writes:

>> On 13. Jun 2019, at 17:57, Timothy Sample <samplet <at> ngyro.com> wrote:
>>>  https://issues.guix.gnu.org/issue/35930
>> 
>> The first patch breaks “ghc-easyplot”.
>> 
>> I’m currently building some packages to test the other patches, and if
>> everything builds fine, they LGTM with some minor tweaks (which I’ve
>> already made).  Should I push it to master or staging?  It means
>> rebuilding all of our Haskell packages, which is a few hundered
>> packages.
>> 
>> Robert, do you know why the first patch doesn’t work?  Should I just
>> omit it?
>
> Yes go head, I thought it worked at some point but am very doubtful
> right now. I’ll look into it again, but it’s not a necessary part here
> I think.

Pushed to staging, since ~550 packages is well over the manual’s
recommended limit of 300.

I omitted the first patch and merged the last two together (doing so is
consistent with similar changes in the past).

Thanks Robert!


-- Tim




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 12 Jul 2019 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 262 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.