Package: guix-patches;
Reported by: Robert Vollmert <rob <at> vllmrt.net>
Date: Sun, 16 Jun 2019 16:30:02 UTC
Severity: normal
Tags: patch
Done: Timothy Sample <samplet <at> ngyro.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Robert Vollmert <rob <at> vllmrt.net> To: 36249 <at> debbugs.gnu.org Cc: Robert Vollmert <rob <at> vllmrt.net> Subject: [bug#36249] [PATCH] gnu: ghc-clock: Break test dependency cycle differently. Date: Sun, 16 Jun 2019 18:29:02 +0200
Fixes https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36084. * gnu/packages/haskell-check.scm (ghc-tasty): Import ghc-clock-bootstrap directly from (gnu packages haskell). (ghc-clock-bootstrap): Move to... * gnu/packages/haskell.scm (ghc-clock-bootstrap): Here and update to 0.7.2. (ghc-clock): Inherit ghc-clock-bootstrap and build as test-only package that builds tests against ghc-clock-bootstrap and copies its result. --- gnu/packages/haskell-check.scm | 26 +-------------------- gnu/packages/haskell.scm | 42 +++++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index cfd986ed5e..21ea365aab 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -153,30 +153,6 @@ output file should be identical to the corresponding @code{golden} file, which contains the correct result for the test.") (license license:expat))) -;; This package builds `clock` without tests, since the tests rely on tasty -;; and tasty-quickcheck, which in turn require clock to build. -(define ghc-clock-bootstrap - (package - (name "ghc-clock-bootstrap") - (version "0.5.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/" - "clock/" - "clock-" version ".tar.gz")) - (sha256 - (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw")))) - (build-system haskell-build-system) - (arguments `(#:tests? #f)) ;; Testing suite depends on tasty and - ;; tasty-quickcheck, which need clock to build. - (home-page "https://hackage.haskell.org/package/clock") - (synopsis "High-resolution clock for Haskell") - (description "A package for convenient access to high-resolution clock and -timer functions of different operating systems via a unified API.") - (license license:bsd-3))) - (define-public ghc-tasty (package (name "ghc-tasty") @@ -199,7 +175,7 @@ timer functions of different operating systems via a unified API.") ("ghc-unbounded-delays" ,ghc-unbounded-delays) ("ghc-async" ,ghc-async) ("ghc-ansi-terminal" ,ghc-ansi-terminal) - ("ghc-clock-bootstrap" ,ghc-clock-bootstrap) + ("ghc-clock-bootstrap" ,(@@ (gnu packages haskell) ghc-clock-bootstrap)) ("ghc-wcwidth" ,ghc-wcwidth-bootstrap))) (home-page "http://documentup.com/feuerbach/tasty") (synopsis "Modern and extensible testing framework") diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b9745b9661..35e89bb15c 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1,4 +1,3 @@ - ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Federico Beffa <beffa <at> fbengineering.ch> ;;; Copyright © 2015 Siniša Biđin <sinisa <at> bidin.eu> @@ -4757,9 +4756,11 @@ or timeout period. This package provides alternative functions which use the unbounded @code{Integer} type.") (license license:bsd-3))) -(define-public ghc-clock +;; This package builds `clock` without tests, since the tests rely on tasty +;; and tasty-quickcheck, which in turn require clock to build. +(define ghc-clock-bootstrap (package - (name "ghc-clock") + (name "ghc-clock-bootstrap") (version "0.7.2") (source (origin @@ -4771,15 +4772,44 @@ unbounded @code{Integer} type.") (sha256 (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8")))) (build-system haskell-build-system) - (inputs - `(("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (arguments `(#:tests? #f)) ;; Testing suite depends on tasty and + ;; tasty-quickcheck, which need clock to build. (home-page "https://hackage.haskell.org/package/clock") (synopsis "High-resolution clock for Haskell") (description "A package for convenient access to high-resolution clock and timer functions of different operating systems via a unified API.") (license license:bsd-3))) +(define-public ghc-clock + (package + (inherit ghc-clock-bootstrap) + (name "ghc-clock") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/" + "clock/" + "clock-" version ".tar.gz")) + (sha256 + (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8")) + (patches + (search-patches + "ghc-clock-disable-library.patch")))) + (inputs + `(("ghc-clock-bootstrap" ,ghc-clock-bootstrap) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (arguments + `(#:tests? #t + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((bootstrap (assoc-ref inputs "ghc-clock-bootstrap"))) + (copy-recursively bootstrap (assoc-ref outputs "out")))))))))) + (define-public ghc-charset (package (name "ghc-charset") -- 2.20.1 (Apple Git-117)
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.