Subject: [bug#61420] [PATCH 19/31] build-system: haskell: Drop default "static" output.

From: Lars-Dominik Braun <[email-masked]>
Date: Sat, 11 Feb 2023 11:08:13 +0100

* guix/build-system/haskell.scm (lower): Pass outputs to lowered bag.
* guix/build/haskell-build-system.scm (install): Remove static library
moving code.
* gnu/packages/haskell-check.scm (ghc-hunit): Remove "static" output.
* gnu/packages/haskell-crypto.scm (ghc-crypto-api-tests): Likewise.
* gnu/packages/haskell-xyz.scm (ghc-case-insensitive): Likewise.
(ghc-cmdargs): Likewise.
(ghc-conduit): Likewise.
(ghc-fgl): Likewise.
(ghc-haskell-src-exts): Likewise.
(ghc-lib-parser): Likewise.
(ghc-mono-traversable): Likewise.
(ghc-parallel): Likewise.
(ghc-paths): Likewise.
(ghc-profunctors): Likewise.
(ghc-tf-random): Likewise.
(ghc-vector): Likewise.
---
 gnu/packages/haskell-check.scm      |  2 +-
 gnu/packages/haskell-crypto.scm     |  1 -
 gnu/packages/haskell-xyz.scm        | 24 ++++++++++++------------
 guix/build-system/haskell.scm       |  5 +----
 guix/build/haskell-build-system.scm | 12 +-----------
 5 files changed, 15 insertions(+), 29 deletions(-)

diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 3174ac1a81..16b718827a 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -629,7 +629,7 @@ (define-public ghc-hunit
   (package
     (name "ghc-hunit")
     (version "1.6.2.0")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index 0046e0481a..42e2a15709 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -141,7 +141,6 @@ (define-public ghc-crypto-api-tests
          "0w3j43jdrlj28jryp18hc6q84nkl2yf4vs1hhgrsk7gb9kfyqjpl"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "crypto-api-tests")))
-    (outputs '("out" "static" "doc"))
     (inputs (list ghc-test-framework-quickcheck2
                   ghc-crypto-api
                   ghc-cereal
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 6d7fd5dc63..3efde02932 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -1395,7 +1395,7 @@ (define-public ghc-case-insensitive
   (package
     (name "ghc-case-insensitive")
     (version "1.2.1.0")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -1993,7 +1993,7 @@ (define-public ghc-cmdargs
          "0xfabq187n1vqrnnm4ciprpl0dcjq97rksyjnpcniwva9rffmn7p"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "cmdargs")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (home-page
      "http://community.haskell.org/~ndm/cmdargs/")
     (synopsis "Command line argument processing")
@@ -2171,7 +2171,7 @@ (define-public ghc-conduit
                 "18izjgff4pmrknc8py06yvg3g6x27nx0rzmlwjxcflwm5v4szpw4"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "conduit")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (inputs
      (list ghc-exceptions
            ghc-lifted-base
@@ -3855,7 +3855,7 @@ (define-public ghc-fgl
   (package
     (name "ghc-fgl")
     (version "5.7.0.3")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -4958,7 +4958,7 @@ (define-public ghc-haskell-src-exts
          "01bcrxs9af4yqpclw43aijmsd1g19qhyzb47blz7vzwz2r3k11b7"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "haskell-src-exts")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (inputs
      (list cpphs ghc-happy ghc-pretty-show))
     (native-inputs
@@ -6348,7 +6348,7 @@ (define-public ghc-lib-parser
                 "1xh8rm5lwbh96g4v34whkcbb1yjsyvx3rwwycj30lrglhqk7f4c4"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "ghc-lib-parser")))
-    (outputs '("out" "static" "doc")) ; documentation is 39M
+    (outputs '("out" "doc")) ; documentation is 39M
     (native-inputs (list ghc-alex ghc-happy))
     (home-page "https://github.com/digital-asset/ghc-lib")
     (synopsis "The GHC API, decoupled from GHC versions")
@@ -7313,7 +7313,7 @@ (define-public ghc-mono-traversable
          "1dvlp7r7r1lc3fxkwaz68f1nffg83240q8a989x24x1x67rj1clq"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "mono-traversable")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (inputs (list ghc-unordered-containers ghc-hashable ghc-vector
                   ghc-vector-algorithms ghc-split))
     (native-inputs (list ghc-hspec ghc-hunit ghc-quickcheck ghc-foldl))
@@ -8319,7 +8319,7 @@ (define-public ghc-parallel
   (package
     (name "ghc-parallel")
     (version "3.2.2.0")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -8479,7 +8479,7 @@ (define-public ghc-paths
   (package
     (name "ghc-paths")
     (version "0.1.0.12")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -9117,7 +9117,7 @@ (define-public ghc-profunctors
          "0an9v003ivxmjid0s51qznbjhd5fsa1dkcfsrhxllnjja1xmv5b5"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "profunctors")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (inputs
      (list ghc-base-orphans
            ghc-bifunctors
@@ -11893,7 +11893,7 @@ (define-public ghc-tf-random
   (package
     (name "ghc-tf-random")
     (version "0.5")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -13161,7 +13161,7 @@ (define-public ghc-vector
   (package
     (name "ghc-vector")
     (version "0.12.3.1")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
diff --git a/guix/build-system/haskell.scm b/guix/build-system/haskell.scm
index dc83512d30..a37b3a938c 100644
--- a/guix/build-system/haskell.scm
+++ b/guix/build-system/haskell.scm
@@ -109,10 +109,7 @@ (define (cabal-revision->origin cabal-revision)
                         ,@(standard-packages)))
          (build-inputs `(("haskell" ,haskell)
                          ,@native-inputs))
-         ;; XXX: this is a hack to get around issue #41569.
-         (outputs (match outputs
-                    (("out") (cons "static" outputs))
-                    (_ outputs)))
+         (outputs outputs)
          (build haskell-build)
          (arguments
           (substitute-keyword-arguments
diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 759d3c5d17..d77f55da19 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -129,17 +129,7 @@ (define* (build #:key parallel-build? #:allow-other-keys)
 
 (define* (install #:key outputs #:allow-other-keys)
   "Install a given Haskell package."
-  (run-setuphs "copy" '())
-  (when (assoc-ref outputs "static")
-    (let ((static (assoc-ref outputs "static"))
-          (lib (or (assoc-ref outputs "lib")
-                   (assoc-ref outputs "out"))))
-      (for-each (lambda (static-lib)
-                  (let* ((subdir (string-drop static-lib (string-length lib)))
-                         (new    (string-append static subdir)))
-                    (mkdir-p (dirname new))
-                    (rename-file static-lib new)))
-                (find-files lib "\\.a$")))))
+  (run-setuphs "copy" '()))
 
 (define* (setup-compiler #:key system inputs outputs #:allow-other-keys)
   "Setup the compiler environment."
-- 
2.38.2