unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
@ 2023-02-11  9:59 Lars-Dominik Braun
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                   ` (3 more replies)
  0 siblings, 4 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11  9:59 UTC (permalink / raw)
  To: 61420

Hi,

these patches (also found in the wip-haskell branch) lift Haskell to
the Stackage release 20.5, which is based on GHC 9.2.

Apart from the upgrade, I also made a few fixes to haskell-build-system
and the importer such as

- Support for multiple Haskell libraries in one package (see #54729).
- Add an upstream-name property to all packages and use it in the updater.
- Use hackage-uri instead of string-append to build URLs.
- Build binaries statically by default and remove extra static output
  from haskell-build-system (this reduces pandoc’s size even further
  by ~100MB without the need to resort to weird input rewriting hacks).

I’m not including the big, automated changes here – please check the branch.

Cheers,
Lars

Lars-Dominik Braun (29):
  import: hackage: Allow version at the beginning of cabal file.
  gnu: Switch default to GHC 9.2.
  import: stackage: Update to release 20.5.
  import: hackage: Add upstream-name property.
  gnu: Add upstream-name property to Haskell packages.
  import: hackage: Use upstream-name property.
  gnu: Use HACKAGE-URI for packages from Hackage.
  import: haskell: Add new internal library for GHC 9.2.
  build: haskell-build-system: Process all transitive dependencies.
  build: haskell-build-system: Remove unused linker flags.
  Upgrade Haskell packages.
  gnu: ghc-9.2: Increase make verbosity.
  gnu: Remove unused Haskell packages.
  gnu: ghc-parsec: Update to 3.1.15.0.
  gnu: idris: Fix overly zealous regular expression.
  gnu: elm: Support GHC 9.2.
  build-system: haskell: Drop default "static" output.
  gnu: ghc-9.2: Support static linking with glibc < 2.34.
  gnu: ghc-lua: Disable symbol export.
  build: haskell-build-system: Build static executables by default.
  gnu: ngless: Drop Haskell libraries and documentation.
  gnu: hledger: Drop Haskell libraries and documentation.
  gnu: darcs: Drop Haskell libraries and documentation.
  gnu: git-annex: Drop Haskell documentation.
  gnu: shellcheck: Drop Haskell libraries.
  gnu: pandoc: Drop Haskell libraries and documentation.
  gnu: purescript: Drop Haskell libraries and documentation.
  gnu: xmobar: Drop Haskell libraries and documentation.
  gnu: idris: Adapt to changed haskell-build-system.

Philip Munksgaard (1):
  build: haskell-build-system: Support multiple libraries.

zimoun (1):
  build: haskell-build-system: Remove trailing #t.

 gnu/local.mk                                  |     8 +-
 gnu/packages/agda.scm                         |     5 +-
 gnu/packages/bioinformatics.scm               |   215 +-
 gnu/packages/dhall.scm                        |   168 +-
 gnu/packages/elm.scm                          |     5 +-
 gnu/packages/finance.scm                      |   213 +-
 gnu/packages/haskell-apps.scm                 |   613 +-
 gnu/packages/haskell-check.scm                |   782 +-
 gnu/packages/haskell-crypto.scm               |   352 +-
 gnu/packages/haskell-web.scm                  |  1453 +-
 gnu/packages/haskell-xyz.scm                  | 11569 ++++++++--------
 gnu/packages/haskell.scm                      |    25 +-
 gnu/packages/idris.scm                        |    14 +-
 gnu/packages/lisp.scm                         |   127 +-
 .../cabal-install-base16-bytestring1.0.patch  |    29 -
 .../patches/cabal-install-ghc8.10.patch       |   393 -
 gnu/packages/patches/elm-ghc9.2.patch         |   187 +
 .../ghc-9.2-glibc-2.33-link-order.patch       |    35 +
 .../patches/ghc-bloomfilter-ghc9.2.patch      |   303 +
 .../patches/ghc-bytestring-handle-ghc9.patch  |    67 +
 gnu/packages/patches/ngless-unliftio.patch    |    66 -
 .../patches/xmonad-dynamic-linking.patch      |    24 +-
 .../patches/xmonad-next-dynamic-linking.patch |    16 -
 gnu/packages/purescript.scm                   |   172 +-
 gnu/packages/wm.scm                           |   136 +-
 guix/build-system/haskell.scm                 |     5 +-
 guix/build/haskell-build-system.scm           |   136 +-
 guix/import/hackage.scm                       |    21 +-
 guix/import/stackage.scm                      |     6 +-
 tests/hackage.scm                             |     5 +
 30 files changed, 8449 insertions(+), 8701 deletions(-)
 delete mode 100644 gnu/packages/patches/cabal-install-base16-bytestring1.0.patch
 delete mode 100644 gnu/packages/patches/cabal-install-ghc8.10.patch
 create mode 100644 gnu/packages/patches/elm-ghc9.2.patch
 create mode 100644 gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch
 create mode 100644 gnu/packages/patches/ghc-bloomfilter-ghc9.2.patch
 create mode 100644 gnu/packages/patches/ghc-bytestring-handle-ghc9.patch
 delete mode 100644 gnu/packages/patches/ngless-unliftio.patch
 delete mode 100644 gnu/packages/patches/xmonad-next-dynamic-linking.patch


base-commit: 900d33527c9286a811f064d4bb8f4a9b18d1db0b
-- 
2.38.2





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

* [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file.
  2023-02-11  9:59 [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Lars-Dominik Braun
@ 2023-02-11 10:07 ` Lars-Dominik Braun
  2023-02-11 10:07   ` [bug#61420] [PATCH 02/31] build: haskell-build-system: Remove trailing #t Lars-Dominik Braun
                     ` (26 more replies)
  2023-02-14 19:27 ` [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Simon Tournier
                   ` (2 subsequent siblings)
  3 siblings, 27 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:07 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

Fix a corner case, uncovered by the hedgehog package, which has the
version field at the beginning of its cabal file. This causes a pattern
match failure.

* guix/import/hackage.scm (latest-release): Match version at beginning
of expression too.
---
 guix/import/hackage.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 7bc2908405..e915aac58d 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -378,7 +378,10 @@ (define* (latest-release package #:key (version #f))
                "warning: failed to parse ~a~%"
                (hackage-cabal-url hackage-name))
        #f)
-      ((_ *** ("version" (version)))
+      ;; Cabal files have no particular order and while usually the version
+      ;; as somewhere in the middle it can also be at the beginning,
+      ;; requiring two pattern.
+      ((or (_ *** ("version" (version))) (("version" (version)) _ ...))
        (let ((url (hackage-uri hackage-name version)))
          (upstream-source
           (package (package-name package))
-- 
2.38.2





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

* [bug#61420] [PATCH 02/31] build: haskell-build-system: Remove trailing #t.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
@ 2023-02-11 10:07   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 03/31] build: haskell-build-system: Support multiple libraries Lars-Dominik Braun
                     ` (25 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:07 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun, zimoun

From: zimoun <zimon.toutoune@gmail.com>

* guix/build/haskell-build-system.scm (configure, install, setup-compiler,
make-ghc-package-database, install-transitive-deps, check, haddock,
patch-cabal-file, generate-setuphs): Delete trailing #t.

Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
---
 guix/build/haskell-build-system.scm | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index ef6cb316ee..e2e5904dce 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -118,8 +119,7 @@ (define* (configure #:key outputs inputs tests? (configure-flags '())
       (setenv "CONFIG_SHELL" "sh"))
     (run-setuphs "configure" params)
 
-    (setenv "GHC_PACKAGE_PATH" ghc-path)
-    #t))
+    (setenv "GHC_PACKAGE_PATH" ghc-path)))
 
 (define* (build #:key parallel-build? #:allow-other-keys)
   "Build a given Haskell package."
@@ -140,8 +140,7 @@ (define* (install #:key outputs #:allow-other-keys)
                          (new    (string-append static subdir)))
                     (mkdir-p (dirname new))
                     (rename-file static-lib new)))
-                (find-files lib "\\.a$"))))
-  #t)
+                (find-files lib "\\.a$")))))
 
 (define* (setup-compiler #:key system inputs outputs #:allow-other-keys)
   "Setup the compiler environment."
@@ -175,8 +174,7 @@ (define (make-ghc-package-database system inputs outputs)
               conf-files)
     (invoke "ghc-pkg"
             (string-append "--package-db=" %tmp-db-dir)
-            "recache")
-    #t))
+            "recache")))
 
 (define* (register #:key name system inputs outputs #:allow-other-keys)
   "Generate the compiler registration and binary package database files for a
@@ -273,21 +271,18 @@ (define (install-transitive-deps conf-file src dest)
                                     config-file-name+id ".conf"))
         (invoke "ghc-pkg"
                 (string-append "--package-db=" config-dir)
-                "recache")))
-    #t))
+                "recache")))))
 
 (define* (check #:key tests? test-target #:allow-other-keys)
   "Run the test suite of a given Haskell package."
   (if tests?
       (run-setuphs test-target '())
-      (format #t "test suite not run~%"))
-  #t)
+      (format #t "test suite not run~%")))
 
 (define* (haddock #:key outputs haddock? haddock-flags #:allow-other-keys)
   "Generate the Haddock documentation of a given Haskell package."
   (when haddock?
-    (run-setuphs "haddock" haddock-flags))
-  #t)
+    (run-setuphs "haddock" haddock-flags)))
 
 (define* (patch-cabal-file #:key cabal-revision #:allow-other-keys)
   (when cabal-revision
@@ -296,8 +291,7 @@ (define* (patch-cabal-file #:key cabal-revision #:allow-other-keys)
       ((original)
        (format #t "replacing ~s with ~s~%" original cabal-revision)
        (copy-file cabal-revision original))
-      (_ (error "Could not find a Cabal file to patch."))))
-  #t)
+      (_ (error "Could not find a Cabal file to patch.")))))
 
 (define* (generate-setuphs #:rest empty)
   "Generate a default Setup.hs if needed."
@@ -307,8 +301,7 @@ (define* (generate-setuphs #:rest empty)
     (with-output-to-file "Setup.hs"
       (lambda ()
         (format #t "import Distribution.Simple~%")
-        (format #t "main = defaultMain~%"))))
-  #t)
+        (format #t "main = defaultMain~%")))))
 
 (define %standard-phases
   (modify-phases gnu:%standard-phases
-- 
2.38.2





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

* [bug#61420] [PATCH 03/31] build: haskell-build-system: Support multiple libraries.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
  2023-02-11 10:07   ` [bug#61420] [PATCH 02/31] build: haskell-build-system: Remove trailing #t Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 04/31] gnu: Switch default to GHC 9.2 Lars-Dominik Braun
                     ` (24 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Philip Munksgaard, Lars-Dominik Braun, zimoun

From: Philip Munksgaard <philip@munksgaard.me>

Fixes <https://bugs.gnu.org/53655>.

The patch handles correctly the multiple registration of some package using
their own internal sub-libraries.  It allows to call 'install-transitive-deps'
multiple times and deals with packages requiring a multiple registration.

* guix/build/haskell-build-system.scm (register)[install-transitive-deps]:
Guard also the destination direction.
[install-config-file]: New procedure.

Co-Authored-by: zimoun <zimon.toutoune@gmail.com>.
Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
---
 guix/build/haskell-build-system.scm | 87 ++++++++++++++++-------------
 1 file changed, 49 insertions(+), 38 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index e2e5904dce..fb4aba28ea 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
 ;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2022 Philip Munksgaard <philip@munksgaard.me>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -215,13 +216,50 @@ (define (install-transitive-deps conf-file src dest)
          (if (not (vhash-assoc id seen))
              (let ((dep-conf  (string-append src  "/" id ".conf"))
                    (dep-conf* (string-append dest "/" id ".conf")))
-               (when (not (file-exists? dep-conf))
+               (unless (file-exists? dep-conf*)
+                 (unless (file-exists? dep-conf)
                    (error (format #f "File ~a does not exist. This usually means the dependency ~a is missing. Was checking conf-file ~a." dep-conf id conf-file)))
-               (copy-file dep-conf dep-conf*) ;XXX: maybe symlink instead?
-               (loop (vhash-cons id #t seen)
-                     (append lst (conf-depends dep-conf))))
+                 (copy-file dep-conf dep-conf*) ;XXX: maybe symlink instead?
+                 (loop (vhash-cons id #t seen)
+                       (append lst (conf-depends dep-conf)))))
              (loop seen tail))))))
 
+  (define (install-config-file conf-file dest output:doc output:lib)
+      ;; Copy CONF-FILE to DEST removing reference to OUTPUT:DOC from
+      ;; OUTPUT:LIB and using install-transitive-deps.
+      (let* ((contents (call-with-input-file conf-file read-string))
+             (id-rx (make-regexp "^id:[ \n\t]+([^ \t\n]+)$" regexp/newline))
+             (config-file-name+id
+              (match:substring (first (list-matches id-rx contents)) 1)))
+
+        (when (or
+               (and
+                (string? config-file-name+id)
+                (string-null? config-file-name+id))
+               (not config-file-name+id))
+          (error (format #f "The package id for ~a is empty. This is a bug." conf-file)))
+
+        ;; Remove reference to "doc" output from "lib" (or "out") by rewriting the
+        ;; "haddock-interfaces" field and removing the optional "haddock-html"
+        ;; field in the generated .conf file.
+        (when output:doc
+          (substitute* conf-file
+            (("^haddock-html: .*") "\n")
+            (((format #f "^haddock-interfaces: ~a" output:doc))
+             (string-append "haddock-interfaces: " output:lib)))
+          ;; Move the referenced file to the "lib" (or "out") output.
+          (match (find-files output:doc "\\.haddock$")
+            ((haddock-file . rest)
+             (let* ((subdir (string-drop haddock-file (string-length output:doc)))
+                    (new    (string-append output:lib subdir)))
+               (mkdir-p (dirname new))
+               (rename-file haddock-file new)))
+            (_ #f)))
+        (install-transitive-deps conf-file %tmp-db-dir dest)
+        (rename-file conf-file
+                     (string-append dest "/"
+                                    config-file-name+id ".conf"))))
+
   (let* ((out (assoc-ref outputs "out"))
          (doc (assoc-ref outputs "doc"))
          (haskell  (assoc-ref inputs "haskell"))
@@ -231,7 +269,6 @@ (define (install-transitive-deps conf-file src dest)
          (config-dir (string-append lib
                                     "/ghc-" version
                                     "/" name ".conf.d"))
-         (id-rx (make-regexp "^id:[ \n\t]+([^ \t\n]+)$" regexp/newline))
          (config-file (string-append out "/" name ".conf"))
          (params
           (list (string-append "--gen-pkg-config=" config-file))))
@@ -239,39 +276,13 @@ (define (install-transitive-deps conf-file src dest)
     ;; The conf file is created only when there is a library to register.
     (when (file-exists? config-file)
       (mkdir-p config-dir)
-      (let* ((contents (call-with-input-file config-file read-string))
-             (config-file-name+id (match:substring (first (list-matches id-rx contents)) 1)))
-
-        (when (or
-                (and
-                  (string? config-file-name+id)
-                  (string-null? config-file-name+id))
-                (not config-file-name+id))
-          (error (format #f "The package id for ~a is empty. This is a bug." config-file)))
-
-        ;; Remove reference to "doc" output from "lib" (or "out") by rewriting the
-        ;; "haddock-interfaces" field and removing the optional "haddock-html"
-        ;; field in the generated .conf file.
-        (when doc
-          (substitute* config-file
-            (("^haddock-html: .*") "\n")
-            (((format #f "^haddock-interfaces: ~a" doc))
-             (string-append "haddock-interfaces: " lib)))
-          ;; Move the referenced file to the "lib" (or "out") output.
-          (match (find-files doc "\\.haddock$")
-            ((haddock-file . rest)
-             (let* ((subdir (string-drop haddock-file (string-length doc)))
-                    (new    (string-append lib subdir)))
-               (mkdir-p (dirname new))
-               (rename-file haddock-file new)))
-            (_ #f)))
-        (install-transitive-deps config-file %tmp-db-dir config-dir)
-        (rename-file config-file
-                     (string-append config-dir "/"
-                                    config-file-name+id ".conf"))
-        (invoke "ghc-pkg"
-                (string-append "--package-db=" config-dir)
-                "recache")))))
+      (if (file-is-directory? config-file)
+          (for-each (cut install-config-file <> config-dir doc lib)
+           (find-files config-file))
+          (install-config-file config-file config-dir doc lib))
+      (invoke "ghc-pkg"
+              (string-append "--package-db=" config-dir)
+              "recache"))))
 
 (define* (check #:key tests? test-target #:allow-other-keys)
   "Run the test suite of a given Haskell package."
-- 
2.38.2





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

* [bug#61420] [PATCH 04/31] gnu: Switch default to GHC 9.2.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
  2023-02-11 10:07   ` [bug#61420] [PATCH 02/31] build: haskell-build-system: Remove trailing #t Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 03/31] build: haskell-build-system: Support multiple libraries Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 05/31] import: stackage: Update to release 20.5 Lars-Dominik Braun
                     ` (23 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/haskell.scm (ghc-9.0): Rename to just “ghc”.
(ghc-9.2): Ditto.
(ghc): Use ghc-9.2.
---
 gnu/packages/haskell.scm | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 91610a1f2e..84071cb293 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1235,19 +1235,12 @@ (define-public ghc-8.10
                                 (file-pattern ".*\\.conf\\.d$")
                                 (file-type 'directory))))))
 
-;; Versions newer than ghc defined below (i.e. the compiler
-;; haskell-build-system uses) should use ghc-next as their name to
-;; ensure ghc (without version specification) and ghc-* packages are
-;; always compatible. See https://issues.guix.gnu.org/issue/47335.
-
 (define-public ghc-8 ghc-8.10)
 
-(define-public ghc ghc-8)
-
 (define-public ghc-9.0
   (package
     (inherit ghc-8.10)
-    (name "ghc-next")
+    (name "ghc")
     (version "9.0.2")
     (source (origin
               (method url-fetch)
@@ -1285,7 +1278,7 @@ (define-public ghc-9.2
   (let ((base ghc-8.10))
     (package
       (inherit base)
-      (name "ghc-next")
+      (name "ghc")
       (version "9.2.5")
       (source (origin
                 (method url-fetch)
@@ -1327,6 +1320,12 @@ (define-public ghc-9.2
               (file-pattern ".*\\.conf\\.d$")
               (file-type 'directory)))))))
 
+;; Versions newer than ghc defined below (i.e. the compiler
+;; haskell-build-system uses) should use ghc-next as their name to
+;; ensure ghc (without version specification) and ghc-* packages are
+;; always compatible. See https://issues.guix.gnu.org/issue/47335.
+(define-public ghc ghc-9.2)
+
 ;; 9.4 is the last version to support the make-based build system,
 ;; but it boot with 9.2, only 9.0 is supported.
 (define ghc-bootstrap-for-9.4 ghc-9.0)
-- 
2.38.2





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

* [bug#61420] [PATCH 05/31] import: stackage: Update to release 20.5.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (2 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 04/31] gnu: Switch default to GHC 9.2 Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 06/31] import: hackage: Add upstream-name property Lars-Dominik Braun
                     ` (22 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* guix/import/stackage.scm (%default-lts-version): Update to 20.5.
---
 guix/import/stackage.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm
index c0284e48a4..9462e70791 100644
--- a/guix/import/stackage.scm
+++ b/guix/import/stackage.scm
@@ -49,7 +49,7 @@ (define %stackage-url
   (make-parameter "https://www.stackage.org"))
 
 ;; Latest LTS version compatible with current GHC.
-(define %default-lts-version "18.14")
+(define %default-lts-version "20.5")
 
 (define-json-mapping <stackage-lts> make-stackage-lts
   stackage-lts?
-- 
2.38.2





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

* [bug#61420] [PATCH 06/31] import: hackage: Add upstream-name property.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (3 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 05/31] import: stackage: Update to release 20.5 Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 08/31] import: hackage: Use " Lars-Dominik Braun
                     ` (21 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* guix/import/hackage.scm (hackage-module->sexp): Add property
upstream-name to imported package.
* tests/hackage.scm (match-ghc-foo): Add upstream-name property.
(match-ghc-foo-6): Ditto.
(match-ghc-elif): Ditto.
(match-ghc-foo-revision): Ditto.
(match-ghc-foo-import): Ditto.
---
 guix/import/hackage.scm | 1 +
 tests/hackage.scm       | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index e915aac58d..9e305cf080 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -314,6 +314,7 @@ (define (maybe-arguments)
                          (bytevector->nix-base32-string (file-sha256 tarball))
                          "failed to download tar archive")))))
         (build-system haskell-build-system)
+        (properties '((upstream-name . ,name)))
         ,@(maybe-inputs 'inputs dependencies)
         ,@(maybe-inputs 'native-inputs native-dependencies)
         ,@(maybe-arguments)
diff --git a/tests/hackage.scm b/tests/hackage.scm
index ad2ee4b7f9..8eea818ebd 100644
--- a/tests/hackage.scm
+++ b/tests/hackage.scm
@@ -201,6 +201,7 @@ (define-package-matcher match-ghc-foo
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-http))
     ('home-page "http://test.org")
     ('synopsis (? string?))
@@ -241,6 +242,7 @@ (define-package-matcher match-ghc-foo-6
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-b 'ghc-http))
     ('native-inputs ('list 'ghc-haskell-gi))
     ('home-page "http://test.org")
@@ -471,6 +473,7 @@ (define-package-matcher match-ghc-elif
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-c))
     ('home-page "http://test.org")
     ('synopsis (? string?))
@@ -520,6 +523,7 @@ (define-package-matcher match-ghc-foo-revision
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-http))
     ('arguments
      ('quasiquote
@@ -610,6 +614,7 @@ (define-package-matcher match-ghc-foo-import
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-http))
     ('home-page "http://test.org")
     ('synopsis (? string?))
-- 
2.38.2





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

* [bug#61420] [PATCH 08/31] import: hackage: Use upstream-name property.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (4 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 06/31] import: hackage: Add upstream-name property Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-15 10:48     ` zimoun
  2023-02-11 10:08   ` [bug#61420] [PATCH 10/31] import: haskell: Add new internal library for GHC 9.2 Lars-Dominik Braun
                     ` (20 subsequent siblings)
  26 siblings, 1 reply; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* guix/import/hackage.scm (guix-package->hackage-name): Removed.
(latest-release): Use package-upstream-name* instead.
* guix/import/stackage.scm (latest-lts-release): Ditto.
(stackage-lts-package?): Ditto.
---
 guix/import/hackage.scm  | 14 +-------------
 guix/import/stackage.scm |  4 ++--
 2 files changed, 3 insertions(+), 15 deletions(-)

diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 9e305cf080..2f901af47b 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -52,7 +52,6 @@ (define-module (guix import hackage)
             hackage-recursive-import
             %hackage-updater
 
-            guix-package->hackage-name
             hackage-name->package-name
             hackage-fetch
             hackage-source-url
@@ -126,17 +125,6 @@ (define (hackage-name->package-name name)
       (string-downcase name)
       (string-append package-name-prefix (string-downcase name))))
 
-(define guix-package->hackage-name
-  (let ((uri-rx (make-regexp "(https?://hackage.haskell.org|mirror://hackage)/package/([^/]+)/.*"))
-        (name-rx (make-regexp "(.*)-[0-9\\.]+")))
-    (lambda (package)
-      "Given a Guix package name, return the corresponding Hackage name."
-      (let* ((source-url (and=> (package-source package) origin-uri))
-             (name (match:substring (regexp-exec uri-rx source-url) 2)))
-        (match (regexp-exec name-rx name)
-          (#f name)
-          (m (match:substring m 1)))))))
-
 (define (read-cabal-and-hash port)
   "Read a Cabal file from PORT and return it and its hash in nix-base32
 format as two values."
@@ -371,7 +359,7 @@ (define* (latest-release package #:key (version #f))
      (formatted-message
       (G_ "~a updater doesn't support updating to a specific version, sorry.")
       "hackage")))
-  (let* ((hackage-name (guix-package->hackage-name package))
+  (let* ((hackage-name (package-upstream-name* package))
          (cabal-meta (hackage-fetch hackage-name)))
     (match cabal-meta
       (#f
diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm
index 9462e70791..735eeb75f7 100644
--- a/guix/import/stackage.scm
+++ b/guix/import/stackage.scm
@@ -149,7 +149,7 @@ (define latest-lts-release
          (formatted-message
           (G_ "~a updater doesn't support updating to a specific version, sorry.")
           "stackage")))
-      (let* ((hackage-name (guix-package->hackage-name pkg))
+      (let* ((hackage-name (package-upstream-name* pkg))
              (version (lts-package-version (packages) hackage-name))
              (name-version (hackage-name-version hackage-name version)))
         (match (and=> name-version hackage-fetch)
@@ -173,7 +173,7 @@ (define (stackage-lts-package? package)
        (false-if-networking-error
         (let ((packages (stackage-lts-packages
                          (stackage-lts-info-fetch %default-lts-version)))
-              (hackage-name (guix-package->hackage-name package)))
+              (hackage-name (package-upstream-name* package)))
           (find (lambda (package)
                   (string=? (stackage-package-name package) hackage-name))
                 packages)))))
-- 
2.38.2





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

* [bug#61420] [PATCH 10/31] import: haskell: Add new internal library for GHC 9.2.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (5 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 08/31] import: hackage: Use " Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 11/31] build: haskell-build-system: Process all transitive dependencies Lars-Dominik Braun
                     ` (19 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* guix/import/hackage.scm (ghc-standard-libraries): Add ghc-bignum.
---
 guix/import/hackage.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 2f901af47b..83ad85f3fe 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -75,6 +75,7 @@ (define ghc-standard-libraries
     "exceptions"
     "filepath"
     "ghc"
+    "ghc-bignum"
     "ghc-boot"
     "ghc-boot-th"
     "ghc-compact"
-- 
2.38.2





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

* [bug#61420] [PATCH 11/31] build: haskell-build-system: Process all transitive dependencies.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (6 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 10/31] import: haskell: Add new internal library for GHC 9.2 Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 12/31] build: haskell-build-system: Remove unused linker flags Lars-Dominik Braun
                     ` (18 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

A bug caused install-transitive-deps to stop looping if a dependency
file already existed in the target directory. For Haskell packages
with multiple libraries (like attoparsec) this resulted in missing
dependencies and error messages like this:

    The following packages are broken because other packages they depend
    on are missing. These broken packages must be rebuilt before they
    can be used.
    installed package attoparsec-0.14.4 is broken due to missing package
    scientific-0.3.7.0-9XG3zUjXOw970JFcruv0cZ

See <https://issues.guix.gnu.org/54729#11>.

* guix/build/haskell-build-system.scm (register): Unconditionally loop
over all tails.
---
 guix/build/haskell-build-system.scm | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index fb4aba28ea..72e12ba746 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -214,14 +214,16 @@ (define (install-transitive-deps conf-file src dest)
         (() #t)                         ;done
         ((id . tail)
          (if (not (vhash-assoc id seen))
-             (let ((dep-conf  (string-append src  "/" id ".conf"))
-                   (dep-conf* (string-append dest "/" id ".conf")))
-               (unless (file-exists? dep-conf*)
-                 (unless (file-exists? dep-conf)
+             (let* ((dep-conf  (string-append src  "/" id ".conf"))
+                    (dep-conf* (string-append dest "/" id ".conf"))
+                    (dep-conf-exists? (file-exists? dep-conf))
+                    (dep-conf*-exists? (file-exists? dep-conf*))
+                    (next-tail (append lst (if dep-conf-exists? (conf-depends dep-conf) '()))))
+               (unless dep-conf*-exists?
+                 (unless dep-conf-exists?
                    (error (format #f "File ~a does not exist. This usually means the dependency ~a is missing. Was checking conf-file ~a." dep-conf id conf-file)))
-                 (copy-file dep-conf dep-conf*) ;XXX: maybe symlink instead?
-                 (loop (vhash-cons id #t seen)
-                       (append lst (conf-depends dep-conf)))))
+                 (copy-file dep-conf dep-conf*)) ;XXX: maybe symlink instead?
+                (loop (vhash-cons id #t seen) next-tail))
              (loop seen tail))))))
 
   (define (install-config-file conf-file dest output:doc output:lib)
-- 
2.38.2





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

* [bug#61420] [PATCH 12/31] build: haskell-build-system: Remove unused linker flags.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (7 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 11/31] build: haskell-build-system: Process all transitive dependencies Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity Lars-Dominik Braun
                     ` (17 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

They were inserted as-is, without expandind variables into binaries.

* guix/build/haskell-build-system.scm (configure): Remove --ghc-option.
---
 guix/build/haskell-build-system.scm | 2 --
 1 file changed, 2 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 72e12ba746..759d3c5d17 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -103,8 +103,6 @@ (define* (configure #:key outputs inputs tests? (configure-flags '())
                    "--enable-shared"
                    "--enable-executable-dynamic"
                    "--ghc-option=-fPIC"
-                   ,(string-append "--ghc-option=-optl=-Wl,-rpath=" (or lib out)
-                                   "/lib/$compiler/$pkg-$version")
                    ,@configure-flags)))
     ;; Cabal errors if GHC_PACKAGE_PATH is set during 'configure', so unset
     ;; and restore it.
-- 
2.38.2





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

* [bug#61420] [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (8 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 12/31] build: haskell-build-system: Remove unused linker flags Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-15 10:53     ` zimoun
  2023-02-11 10:08   ` [bug#61420] [PATCH 15/31] gnu: Remove unused Haskell packages Lars-Dominik Braun
                     ` (16 subsequent siblings)
  26 siblings, 1 reply; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

Tests time out on ci.guix.gnu.org.

* gnu/packages/haskell.scm (ghc-9.2)[arguments]: Modify #:make-flags.
---
 gnu/packages/haskell.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 84071cb293..60d846e841 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1295,7 +1295,10 @@ (define-public ghc-9.2
              (replace 'fix-cc-reference
                (lambda _
                  (substitute* "utils/hsc2hs/src/Common.hs"
-                   (("\"cc\"") "\"gcc\""))))))))
+                   (("\"cc\"") "\"gcc\""))))))
+         ;; Increase verbosity, so running the test suite does not time out on CI.
+         ((#:make-flags make-flags ''())
+          #~(cons "VERBOSE=4" #$make-flags))))
       (native-inputs
        `(;; GHC 9.2 must be built with GHC >= 8.6.
          ("ghc-bootstrap" ,base)
-- 
2.38.2





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

* [bug#61420] [PATCH 15/31] gnu: Remove unused Haskell packages.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (9 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 16/31] gnu: ghc-parsec: Update to 3.1.15.0 Lars-Dominik Braun
                     ` (15 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/haskell-xyz.scm (ghc-attoparsec-bootstrap): Remove variable.
(ghc-integer-logarithms-bootstrap): Likewise.
(ghc-scientific-bootstrap): Likewise.
(ghc-wcwidth-bootstrap): Likewise.
(ghc-optparse-applicative-0.15.1.0): Likewise.
---
 gnu/packages/haskell-xyz.scm | 59 ------------------------------------
 1 file changed, 59 deletions(-)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 1f90cc6516..f320206c23 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -581,16 +581,6 @@ (define-public ghc-attoparsec
 complicated text/binary file formats.")
     (license license:bsd-3)))
 
-(define-public ghc-attoparsec-bootstrap
-  (package
-    (inherit ghc-attoparsec)
-    (name "ghc-attoparsec-bootstrap")
-    (arguments `(#:tests? #f))
-    (inputs
-     `(("ghc-scientific" ,ghc-scientific-bootstrap)))
-    (native-inputs '())
-    (properties '((hidden? #t)))))
-
 (define-public ghc-attoparsec-iso8601
   (package
     (name "ghc-attoparsec-iso8601")
@@ -5825,14 +5815,6 @@ (define-public ghc-integer-logarithms
 in migrated modules.")
     (license license:expat)))
 
-(define-public ghc-integer-logarithms-bootstrap
-  (package
-    (inherit ghc-integer-logarithms)
-    (name "ghc-integer-logarithms-bootstrap")
-    (arguments `(#:tests? #f))
-    (native-inputs '())
-    (properties '((hidden? #t)))))
-
 (define-public ghc-interpolate
   (package
     (name "ghc-interpolate")
@@ -8051,27 +8033,6 @@ (define-public ghc-optparse-applicative
 command line options in Haskell.")
     (license license:bsd-3)))
 
-(define-public ghc-optparse-applicative-0.15.1.0
-  (package
-    (inherit ghc-optparse-applicative)
-    (name "ghc-optparse-applicative")
-    (version "0.15.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "https://hackage.haskell.org/package/optparse-applicative/optparse-applicative-"
-               version
-               ".tar.gz"))
-        (sha256
-          (base32 "1ws6y3b3f6hsgv0ff0yp6lw4hba1rps4dnvry3yllng0s5gngcsd"))))
-    (inputs
-      (list ghc-transformers-compat ghc-ansi-wl-pprint))
-    (native-inputs (list ghc-quickcheck))
-    (arguments
-      `(#:cabal-revision
-        ("1" "0zmhqkd96v2z1ilhqdkd9z4jgsnsxb8yi2479ind8m5zm9363zr9")))))
-
 (define-public ghc-jira-wiki-markup
   (package
     (name "ghc-jira-wiki-markup")
@@ -10178,18 +10139,6 @@ (define-public ghc-scientific
 notation}.")
     (license license:bsd-3)))
 
-(define-public ghc-scientific-bootstrap
-  (package
-    (inherit ghc-scientific)
-    (name "ghc-scientific-bootstrap")
-    (arguments `(#:tests? #f))
-    (inputs
-     `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-primitive" ,ghc-primitive)))
-    (native-inputs '())
-    (properties '((hidden? #t)))))
-
 (define-public ghc-sdl
   (package
     (name "ghc-sdl")
@@ -13422,14 +13371,6 @@ (define-public ghc-wcwidth
 widths to the Char type.")
     (license license:bsd-3)))
 
-(define-public ghc-wcwidth-bootstrap
-  (package
-    (inherit ghc-wcwidth)
-    (name "ghc-wcwidth-bootstrap")
-    (inputs
-     (list ghc-setlocale ghc-utf8-string ghc-attoparsec-bootstrap))
-    (properties '((hidden? #t)))))
-
 (define-public ghc-weigh
   (package
     (name "ghc-weigh")
-- 
2.38.2





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

* [bug#61420] [PATCH 16/31] gnu: ghc-parsec: Update to 3.1.15.0.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (10 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 15/31] gnu: Remove unused Haskell packages Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 17/31] gnu: idris: Fix overly zealous regular expression Lars-Dominik Braun
                     ` (14 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

Missed by automation.

* gnu/packages/haskell-xyz.scm (ghc-parsec)[version]: Update to 3.1.15.0.
[native-inputs]: Switch from HUnit to tasty.
---
 gnu/packages/haskell-xyz.scm | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index f320206c23..6d7fd5dc63 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8341,18 +8341,15 @@ (define-public ghc-parallel
 (define-public ghc-parsec
   (package
     (name "ghc-parsec")
-    (version "3.1.14.0")
+    (version "3.1.15.0")
     (source (origin
               (method url-fetch)
               (uri (hackage-uri "parsec" version))
               (sha256
                (base32
-                "132waj2cpn892midbhpkfmb74qq83v0zv29v885frlp1gvh94b67"))))
+                "1v8zs8zv1rk16lag2yqaxfwanjpgnh4gxw1vd70py0n04d20z0lq"))))
     (build-system haskell-build-system)
-    (native-inputs (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
-    (arguments
-     `(#:cabal-revision
-       ("4" "0p65q054iaz2117a5qk1428dic4sb41acclys9k00zna24ks7iq3")))
+    (native-inputs (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/haskell/parsec")
     (synopsis "Monadic parser combinators")
     (description "Parsec is designed from scratch as an industrial-strength
-- 
2.38.2





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

* [bug#61420] [PATCH 17/31] gnu: idris: Fix overly zealous regular expression.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (11 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 16/31] gnu: ghc-parsec: Update to 3.1.15.0 Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 18/31] gnu: elm: Support GHC 9.2 Lars-Dominik Braun
                     ` (13 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/idris.scm (idris)[arguments]: Limit characters matched
after package name in cabal file substitutions.
---
 gnu/packages/idris.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index 5e4979edc3..2a5f63c174 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -99,7 +99,7 @@ (define-public idris
          (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "idris.cabal"
-               (("(aeson|ansi-terminal|bytestring|haskeline|libffi|megaparsec|network|optparse-applicative)\\s+[^,]+" all dep)
+               (("(aeson|ansi-terminal|bytestring|haskeline|libffi|megaparsec|network|optparse-applicative)\\s+[<>=0-9. &|]+" all dep)
                 dep))))
          (add-before 'configure 'set-cc-command
            (lambda _
-- 
2.38.2





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

* [bug#61420] [PATCH 18/31] gnu: elm: Support GHC 9.2.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (12 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 17/31] gnu: idris: Fix overly zealous regular expression Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 19/31] build-system: haskell: Drop default "static" output Lars-Dominik Braun
                     ` (12 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/elm.scm (elm-sans-reactor)[source]: Add patch to support GHC 9.2.
* gnu/packages/patches/elm-ghc9.2.patch: This one.
* gnu/local.mk: Add it.
---
 gnu/local.mk                          |   1 +
 gnu/packages/elm.scm                  |   3 +-
 gnu/packages/patches/elm-ghc9.2.patch | 187 ++++++++++++++++++++++++++
 3 files changed, 190 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/elm-ghc9.2.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 61e0598a5f..b6b44f7836 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1054,6 +1054,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/einstein-build.patch			\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
   %D%/packages/patches/elixir-path-length.patch			\
+  %D%/packages/patches/elm-ghc9.2.patch	\
   %D%/packages/patches/elm-offline-package-registry.patch	\
   %D%/packages/patches/elm-reactor-static-files.patch		\
   %D%/packages/patches/elogind-revert-polkit-detection.patch	\
diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm
index 6d301cf51c..a74d294ae5 100644
--- a/gnu/packages/elm.scm
+++ b/gnu/packages/elm.scm
@@ -56,7 +56,8 @@ (define-public elm-sans-reactor
         (base32 "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w"))
        (patches
         (search-patches "elm-reactor-static-files.patch"
-                        "elm-offline-package-registry.patch"))))
+                        "elm-offline-package-registry.patch"
+                        "elm-ghc9.2.patch"))))
     (build-system haskell-build-system)
     (arguments
      (list
diff --git a/gnu/packages/patches/elm-ghc9.2.patch b/gnu/packages/patches/elm-ghc9.2.patch
new file mode 100644
index 0000000000..7b1e653e80
--- /dev/null
+++ b/gnu/packages/patches/elm-ghc9.2.patch
@@ -0,0 +1,187 @@
+From f88043586337ba33cf3e852908003a71dfe493ec Mon Sep 17 00:00:00 2001
+From: vlkrs <codeberg@schlecht.dev>
+Date: Sat, 7 May 2022 17:51:15 +0200
+Subject: [PATCH] Quick hack to build on ghc-9.2.2
+
+Taken from
+https://codeberg.org/vlkrs/elm-compiler/commit/f88043586337ba33cf3e852908003a71dfe493ec.patch
+
+diff --git a/compiler/src/Data/Name.hs b/compiler/src/Data/Name.hs
+index beecf114..39b64029 100644
+--- a/compiler/src/Data/Name.hs
++++ b/compiler/src/Data/Name.hs
+@@ -47,6 +47,7 @@ import qualified Data.Utf8 as Utf8
+ import GHC.Exts
+   ( Int(I#), Ptr
+   , MutableByteArray#
++  , int8ToInt#
+   , isTrue#
+   , newByteArray#
+   , sizeofByteArray#
+@@ -241,7 +242,7 @@ fromTypeVariable name@(Utf8.Utf8 ba#) index =
+   else
+     let
+       len# = sizeofByteArray# ba#
+-      end# = indexWord8Array# ba# (len# -# 1#)
++      end# = word8ToWord# (indexWord8Array# ba# (len# -# 1#))
+     in
+     if isTrue# (leWord# 0x30## end#) && isTrue# (leWord# end# 0x39##) then
+       runST
+@@ -316,11 +317,11 @@ fromManyNames names =
+         ST $ \s ->
+           case newByteArray# (len# +# 3#) s of
+             (# s, mba# #) ->
+-              case writeWord8Array# mba# 0# 0x5F## {-_-} s of
++              case writeWord8Array# mba# 0# (wordToWord8# 0x5F##) {-_-} s of
+                 s ->
+-                  case writeWord8Array# mba# 1# 0x4D## {-M-} s of
++                  case writeWord8Array# mba# 1# (wordToWord8# 0x4D##) {-M-} s of
+                     s ->
+-                      case writeWord8Array# mba# 2# 0x24## {-$-} s of
++                      case writeWord8Array# mba# 2# (wordToWord8# 0x24##) {-$-} s of
+                         s ->
+                           case copyByteArray# ba# 0# mba# 3# len# s of
+                             s ->
+diff --git a/compiler/src/Data/Utf8.hs b/compiler/src/Data/Utf8.hs
+index e985aa64..472777df 100644
+--- a/compiler/src/Data/Utf8.hs
++++ b/compiler/src/Data/Utf8.hs
+@@ -109,10 +109,10 @@ contains (W8# word#) (Utf8 ba#) =
+   containsHelp word# ba# 0# (sizeofByteArray# ba#)
+ 
+ 
+-containsHelp :: Word# -> ByteArray# -> Int# -> Int# -> Bool
++containsHelp :: Word8# -> ByteArray# -> Int# -> Int# -> Bool
+ containsHelp word# ba# !offset# len# =
+   if isTrue# (offset# <# len#) then
+-    if isTrue# (eqWord# word# (indexWord8Array# ba# offset#))
++    if isTrue# (eqWord8# word# (indexWord8Array# ba# offset#))
+       then True
+       else containsHelp word# ba# (offset# +# 1#) len#
+   else
+@@ -147,10 +147,10 @@ startsWithChar isGood bytes@(Utf8 ba#) =
+     let
+       !w# = indexWord8Array# ba# 0#
+       !char
+-        | isTrue# (ltWord# w# 0xC0##) = C# (chr# (word2Int# w#))
+-        | isTrue# (ltWord# w# 0xE0##) = chr2 ba# 0# w#
+-        | isTrue# (ltWord# w# 0xF0##) = chr3 ba# 0# w#
+-        | True                        = chr4 ba# 0# w#
++        | isTrue# (ltWord8# w# (wordToWord8# 0xC0##)) = C# (chr# (int8ToInt# (word8ToInt8# w#)))
++        | isTrue# (ltWord8# w# (wordToWord8# 0xE0##)) = chr2 ba# 0# (word8ToWord# w#)
++        | isTrue# (ltWord8# w# (wordToWord8# 0xF0##)) = chr3 ba# 0# (word8ToWord# w#)
++        | True                        = chr4 ba# 0# (word8ToWord# w#)
+     in
+     isGood char
+ 
+@@ -164,7 +164,7 @@ endsWithWord8 (W8# w#) (Utf8 ba#) =
+   let len# = sizeofByteArray# ba# in
+   isTrue# (len# ># 0#)
+   &&
+-  isTrue# (eqWord# w# (indexWord8Array# ba# (len# -# 1#)))
++  isTrue# (eqWord8# w# (indexWord8Array# ba# (len# -# 1#)))
+ 
+ 
+ 
+@@ -186,11 +186,11 @@ splitHelp str start offsets =
+       unsafeSlice str start offset : splitHelp str (offset + 1) offsets
+ 
+ 
+-findDividers :: Word# -> ByteArray# -> Int# -> Int# -> [Int] -> [Int]
++findDividers :: Word8# -> ByteArray# -> Int# -> Int# -> [Int] -> [Int]
+ findDividers divider# ba# !offset# len# revOffsets =
+   if isTrue# (offset# <# len#) then
+     findDividers divider# ba# (offset# +# 1#) len# $
+-      if isTrue# (eqWord# divider# (indexWord8Array# ba# offset#))
++      if isTrue# (eqWord8# divider# (indexWord8Array# ba# offset#))
+       then I# offset# : revOffsets
+       else revOffsets
+   else
+@@ -353,10 +353,10 @@ toCharsHelp ba# offset# len# =
+     let
+       !w# = indexWord8Array# ba# offset#
+       !(# char, width# #)
+-        | isTrue# (ltWord# w# 0xC0##) = (# C# (chr# (word2Int# w#)), 1# #)
+-        | isTrue# (ltWord# w# 0xE0##) = (# chr2 ba# offset# w#, 2# #)
+-        | isTrue# (ltWord# w# 0xF0##) = (# chr3 ba# offset# w#, 3# #)
+-        | True                        = (# chr4 ba# offset# w#, 4# #)
++        | isTrue# (ltWord8# w# (wordToWord8# 0xC0##)) = (# C# (chr# (int8ToInt# (word8ToInt8# w#))), 1# #)
++        | isTrue# (ltWord8# w# (wordToWord8# 0xE0##)) = (# chr2 ba# offset# (word8ToWord# w#), 2# #)
++        | isTrue# (ltWord8# w# (wordToWord8# 0xF0##)) = (# chr3 ba# offset# (word8ToWord# w#), 3# #)
++        | True                        = (# chr4 ba# offset# (word8ToWord# w#), 4# #)
+ 
+       !newOffset# = offset# +# width#
+     in
+@@ -368,7 +368,7 @@ chr2 :: ByteArray# -> Int# -> Word# -> Char
+ chr2 ba# offset# firstWord# =
+   let
+     !i1# = word2Int# firstWord#
+-    !i2# = word2Int# (indexWord8Array# ba# (offset# +# 1#))
++    !i2# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 1#)))
+     !c1# = uncheckedIShiftL# (i1# -# 0xC0#) 6#
+     !c2# = i2# -# 0x80#
+   in
+@@ -380,8 +380,8 @@ chr3 :: ByteArray# -> Int# -> Word# -> Char
+ chr3 ba# offset# firstWord# =
+   let
+     !i1# = word2Int# firstWord#
+-    !i2# = word2Int# (indexWord8Array# ba# (offset# +# 1#))
+-    !i3# = word2Int# (indexWord8Array# ba# (offset# +# 2#))
++    !i2# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 1#)))
++    !i3# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 2#)))
+     !c1# = uncheckedIShiftL# (i1# -# 0xE0#) 12#
+     !c2# = uncheckedIShiftL# (i2# -# 0x80#) 6#
+     !c3# = i3# -# 0x80#
+@@ -394,9 +394,9 @@ chr4 :: ByteArray# -> Int# -> Word# -> Char
+ chr4 ba# offset# firstWord# =
+   let
+     !i1# = word2Int# firstWord#
+-    !i2# = word2Int# (indexWord8Array# ba# (offset# +# 1#))
+-    !i3# = word2Int# (indexWord8Array# ba# (offset# +# 2#))
+-    !i4# = word2Int# (indexWord8Array# ba# (offset# +# 3#))
++    !i2# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 1#)))
++    !i3# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 2#)))
++    !i4# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 3#)))
+     !c1# = uncheckedIShiftL# (i1# -# 0xF0#) 18#
+     !c2# = uncheckedIShiftL# (i2# -# 0x80#) 12#
+     !c3# = uncheckedIShiftL# (i3# -# 0x80#) 6#
+@@ -471,7 +471,7 @@ toEscapedBuilderHelp before after !name@(Utf8 ba#) k =
+ escape :: Word8 -> Word8 -> Ptr a -> Utf8 t -> Int -> Int -> Int -> IO ()
+ escape before@(W8# before#) after ptr name@(Utf8 ba#) offset@(I# offset#) len@(I# len#) i@(I# i#) =
+   if isTrue# (i# <# len#) then
+-    if isTrue# (eqWord# before# (indexWord8Array# ba# (offset# +# i#)))
++    if isTrue# (eqWord8# before# (indexWord8Array# ba# (offset# +# i#)))
+     then
+       do  writeWordToPtr ptr i after
+           escape before after ptr name offset len (i + 1)
+diff --git a/compiler/src/Parse/Primitives.hs b/compiler/src/Parse/Primitives.hs
+index bb973193..3747cfac 100644
+--- a/compiler/src/Parse/Primitives.hs
++++ b/compiler/src/Parse/Primitives.hs
+@@ -82,7 +82,7 @@ instance Functor (Parser x) where
+ 
+ instance Applicative.Applicative (Parser x) where
+   {-# INLINE pure #-}
+-  pure = return
++  pure = pure
+ 
+   {-# INLINE (<*>) #-}
+   (<*>) (Parser parserFunc) (Parser parserArg) =
+diff --git a/compiler/src/Parse/Variable.hs b/compiler/src/Parse/Variable.hs
+index f3d86145..5e0ea802 100644
+--- a/compiler/src/Parse/Variable.hs
++++ b/compiler/src/Parse/Variable.hs
+@@ -22,6 +22,7 @@ import qualified Data.Set as Set
+ import Data.Word (Word8)
+ import Foreign.Ptr (Ptr, plusPtr)
+ import GHC.Exts (Char(C#), Int#, (+#), (-#), chr#, uncheckedIShiftL#, word2Int#)
++import GHC.Prim
+ import GHC.Word (Word8(W8#))
+ 
+ import qualified AST.Source as Src
+@@ -384,4 +385,4 @@ chr4 pos firstWord =
+ 
+ unpack :: Word8 -> Int#
+ unpack (W8# word#) =
+-  word2Int# word#
++  int8ToInt# (word8ToInt8# word#)
-- 
2.38.2





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

* [bug#61420] [PATCH 19/31] build-system: haskell: Drop default "static" output.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (13 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 18/31] gnu: elm: Support GHC 9.2 Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-15 10:55     ` zimoun
  2023-02-11 10:08   ` [bug#61420] [PATCH 20/31] gnu: ghc-9.2: Support static linking with glibc < 2.34 Lars-Dominik Braun
                     ` (11 subsequent siblings)
  26 siblings, 1 reply; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* 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





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

* [bug#61420] [PATCH 20/31] gnu: ghc-9.2: Support static linking with glibc < 2.34.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (14 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 19/31] build-system: haskell: Drop default "static" output Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 21/31] gnu: ghc-lua: Disable symbol export Lars-Dominik Braun
                     ` (10 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/haskell.scm (ghc-9.2)[origin]: Use it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/haskell.scm                      |  3 +-
 .../ghc-9.2-glibc-2.33-link-order.patch       | 35 +++++++++++++++++++
 3 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b6b44f7836..5cb34a7b3b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1195,6 +1195,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/genimage-mke2fs-test.patch		\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
+  %D%/packages/patches/ghc-9.2-glibc-2.33-link-order.patch \
   %D%/packages/patches/ghc-testsuite-dlopen-pie.patch		\
   %D%/packages/patches/ghc-bloomfilter-ghc9.2.patch	\
   %D%/packages/patches/ghc-bytestring-handle-ghc9.patch	\
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 60d846e841..a2815814ed 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1286,7 +1286,8 @@ (define-public ghc-9.2
                                     "/ghc-" version "-src.tar.xz"))
                 (sha256
                  (base32
-                  "07028i0hm74svvq9b3jpkczaj6lsdgn3hgr4wa7diqiq3dypj1h6"))))
+                  "07028i0hm74svvq9b3jpkczaj6lsdgn3hgr4wa7diqiq3dypj1h6"))
+                (patches (search-patches "ghc-9.2-glibc-2.33-link-order.patch"))))
       (arguments
        (substitute-keyword-arguments (package-arguments base)
          ((#:phases phases '%standard-phases)
diff --git a/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch b/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch
new file mode 100644
index 0000000000..5d4afa28c1
--- /dev/null
+++ b/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch
@@ -0,0 +1,35 @@
+Slightly modified version of
+https://gitlab.haskell.org/ghc/ghc/-/issues/19029#note_447989, required
+for older, buggy glibc versions < 2.34.
+
+diff -Naur ghc-9.2.5/compiler/GHC/Linker/Unit.hs ghc-9.2.5.patched/compiler/GHC/Linker/Unit.hs
+--- ghc-9.2.5/compiler/GHC/Linker/Unit.hs	2022-11-06 20:40:29.000000000 +0100
++++ ghc-9.2.5.patched/compiler/GHC/Linker/Unit.hs	2023-01-15 14:52:57.511275338 +0100
+@@ -31,11 +31,26 @@
+     ps <- mayThrowUnitErr $ preloadUnitsInfo' unit_env pkgs
+     return (collectLinkOpts dflags ps)
+ 
++fixOrderLinkOpts :: [String] -> [String]
++fixOrderLinkOpts opts
++  | have_bad_glibc_version -- glibc version strictly less than 2.34
++  , let (before, rest) = break (== libc) opts
++  , not (pthread `elem` before)
++  , pthread `elem` rest -- optional if we know pthread is definitely present
++  = before ++ pthread_and_deps ++ rest
++  | otherwise
++  = opts
++  where
++    pthread = "-lpthread"
++    libc = "-lc"
++    pthread_and_deps = [ "-lrt", pthread ] -- should depend on the environment
++    have_bad_glibc_version = True
++
+ collectLinkOpts :: DynFlags -> [UnitInfo] -> ([String], [String], [String])
+ collectLinkOpts dflags ps =
+     (
+         concatMap (map ("-l" ++) . unitHsLibs (ghcNameVersion dflags) (ways dflags)) ps,
+-        concatMap (map ("-l" ++) . map ST.unpack . unitExtDepLibsSys) ps,
++        fixOrderLinkOpts $ concatMap (map ("-l" ++) . map ST.unpack . unitExtDepLibsSys) ps,
+         concatMap (map ST.unpack . unitLinkerOptions) ps
+     )
+ 
-- 
2.38.2





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

* [bug#61420] [PATCH 21/31] gnu: ghc-lua: Disable symbol export.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (15 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 20/31] gnu: ghc-9.2: Support static linking with glibc < 2.34 Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 22/31] build: haskell-build-system: Build static executables by default Lars-Dominik Braun
                     ` (9 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

This turns on the linker flag -Wl,-E for all libraries depending on it,
resulting in large binaries, because --gc-sections cannot clean exported
symbols.

* gnu/packages/haskell-xyz.scm (ghc-lua)[arguments]: Disable
export-dynamic feature.
---
 gnu/packages/haskell-xyz.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 3efde02932..0a6efedd29 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -15452,6 +15452,9 @@ (define-public ghc-lua
                 "07wni3ji46ndqabwffgwzij2jk34dq2d66z15hcd6jg33sqnym45"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "lua")))
+    (arguments
+     ;; Allow creating fully static binaries. Avoids issues with linking pandoc statically.
+     `(#:configure-flags (list "-f-export-dynamic")))
     (native-inputs (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://hslua.org/")
     (synopsis "Lua, an embeddable scripting language")
-- 
2.38.2





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

* [bug#61420] [PATCH 22/31] build: haskell-build-system: Build static executables by default.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (16 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 21/31] gnu: ghc-lua: Disable symbol export Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 23/31] gnu: ngless: Drop Haskell libraries and documentation Lars-Dominik Braun
                     ` (8 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

This is the only way to get reasonably small binaries that don’t pull
in a ton of ghc-* packages.

* guix/build/haskell-build-system.scm (configure): Explicitly
add --enable-static and --disable-executable-dynamic, as well as
-split-sections to configure flags.
---
 guix/build/haskell-build-system.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index d77f55da19..0e94cf59a5 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -99,10 +99,14 @@ (define* (configure #:key outputs inputs tests? (configure-flags '())
                    ,@(if tests?
                          '("--enable-tests")
                          '())
-                   ;; Build and link with shared libraries
+                   ;; Build static and shared libraries.
                    "--enable-shared"
-                   "--enable-executable-dynamic"
+                   "--enable-static"
+                   ;; Link executables statically by default.
+                   "--disable-executable-dynamic"
                    "--ghc-option=-fPIC"
+                   ;; Ensure static libraries can be used with -Wl,--gc-sections for size.
+                   "--ghc-option=-split-sections"
                    ,@configure-flags)))
     ;; Cabal errors if GHC_PACKAGE_PATH is set during 'configure', so unset
     ;; and restore it.
-- 
2.38.2





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

* [bug#61420] [PATCH 23/31] gnu: ngless: Drop Haskell libraries and documentation.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (17 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 22/31] build: haskell-build-system: Build static executables by default Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 24/31] gnu: hledger: " Lars-Dominik Braun
                     ` (7 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/bioinformatics.scm (ngless)[arguments]: Add
'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/bioinformatics.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 3e2d1efc87..8eb164d24b 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -14316,7 +14316,8 @@ (define-public ngless
                 "0pljyrlpr9r3cl5311dhgxdl8y40szyi4vprn34i3piy0qrldymi"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:phases
+     `(#:haddock? #f
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'update-constraints
            (lambda _
@@ -14360,7 +14361,10 @@ (define-public ngless
           (add-after 'wrap-program 'check-install
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((ngless (string-append (assoc-ref outputs "out") "/bin/ngless")))
-                 (invoke ngless "--check-install")))))))
+                 (invoke ngless "--check-install"))))
+          (add-after 'register 'remove-libraries
+            (lambda* (#:key outputs #:allow-other-keys)
+              (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (inputs (list prodigal
                   bwa
                   samtools
-- 
2.38.2





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

* [bug#61420] [PATCH 24/31] gnu: hledger: Drop Haskell libraries and documentation.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (18 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 23/31] gnu: ngless: Drop Haskell libraries and documentation Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 25/31] gnu: darcs: " Lars-Dominik Braun
                     ` (6 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/finance.scm (ghc-hledger): New variable.
(hledger): Inherit from ghc-hledger and add 'remove-libraries phase and
disable #:haddock?.
---
 gnu/packages/finance.scm | 48 ++++++++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index d04cf465f4..28f9f67595 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -212,9 +212,9 @@ (define-public bitcoin-core-23.0
 
 (define-public bitcoin-core bitcoin-core-23.0)
 
-(define-public hledger
+(define-public ghc-hledger
   (package
-    (name "hledger")
+    (name "ghc-hledger")
     (version "1.27.1")
     (source (origin
               (method url-fetch)
@@ -223,14 +223,6 @@ (define-public hledger
                (base32
                 "0qdg87m7ys2ykqqq32p7h7aw827w4f5bcqx4dspxxq6zqlvzddqb"))))
     (build-system haskell-build-system)
-    (arguments
-     (list
-      #:phases
-      #~(modify-phases %standard-phases
-          (add-after 'install 'install-doc
-            (lambda _
-              (install-file "hledger.info" (string-append #$output "/share/info"))
-              (install-file "hledger.1" (string-append #$output "/man/man1")))))))
     (properties '((upstream-name . "hledger")))
     (inputs (list ghc-decimal
                   ghc-diff
@@ -273,6 +265,23 @@ (define-public hledger
 Accounting.")
     (license license:gpl3)))
 
+(define-public hledger
+  (package
+    (inherit ghc-hledger)
+    (name "hledger")
+    (arguments
+     (list
+      #:haddock? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'install-doc
+            (lambda _
+              (install-file "hledger.info" (string-append #$output "/share/info"))
+              (install-file "hledger.1" (string-append #$output "/man/man1"))))
+           (add-after 'register 'remove-libraries
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))))
+
 (define-public homebank
   (package
     (name "homebank")
@@ -1988,7 +1997,7 @@ (define-public hledger-web
                   ghc-data-default
                   ghc-extra
                   ghc-hjsmin
-                  hledger
+                  ghc-hledger
                   ghc-hledger-lib
                   ghc-hspec
                   ghc-http-client
@@ -2012,12 +2021,17 @@ (define-public hledger-web
                   ghc-yesod-static
                   ghc-yesod-test))
     (arguments
-     (list #:phases
-           #~(modify-phases %standard-phases
-               ;; Tests write to $HOME.
-               (add-before 'check 'set-home
-                 (lambda _
-                   (setenv "HOME" "/tmp"))))))
+     (list
+      #:haddock? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; Tests write to $HOME.
+          (add-before 'check 'set-home
+            (lambda _
+              (setenv "HOME" "/tmp")))
+           (add-after 'register 'remove-libraries
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (home-page "http://hledger.org")
     (synopsis "Web-based user interface for the hledger accounting system")
     (description
-- 
2.38.2





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

* [bug#61420] [PATCH 25/31] gnu: darcs: Drop Haskell libraries and documentation.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (19 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 24/31] gnu: hledger: " Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 26/31] gnu: git-annex: Drop Haskell documentation Lars-Dominik Braun
                     ` (5 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/haskell-apps.scm (darcs)[arguments]: Add
'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/haskell-apps.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 3cae64a42e..7189d82ec1 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -187,6 +187,7 @@ (define-public darcs
        #:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
                            "-fnetwork-uri" "-fhttp" "--flag=executable"
                            "--flag=library")
+       #:haddock? #f
        #:phases
        (modify-phases %standard-phases
          (add-after 'patch-source-shebangs 'patch-sh
@@ -198,7 +199,10 @@ (define-public darcs
            (lambda _
              (substitute* "darcs.cabal"
                (("(attoparsec|base|bytestring|constraints|cryptonite|hashable|memory|regex-tdfa|time)\\s+[^,]+" all dep)
-                dep)))))))
+                dep))))
+         (add-after 'register 'remove-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (inputs (list ghc-regex-base
                   ghc-regex-tdfa
                   ghc-regex-applicative
-- 
2.38.2





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

* [bug#61420] [PATCH 26/31] gnu: git-annex: Drop Haskell documentation.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (20 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 25/31] gnu: darcs: " Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 27/31] gnu: shellcheck: Drop Haskell libraries Lars-Dominik Braun
                     ` (4 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/haskell-apps.scm (git-annex)[arguments]: Disable #:haddock?.
---
 gnu/packages/haskell-apps.scm | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 7189d82ec1..80abc99cb1 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -306,6 +306,7 @@ (define-public git-annex
     (arguments
      `(#:configure-flags
        '("--flags=-Android -Webapp")
+       #:haddock? #f
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-shell-for-tests
@@ -386,17 +387,7 @@ (define-public git-annex
                (symlink (string-append bin "/git-annex")
                         (string-append bin "/git-annex-shell"))
                (symlink (string-append bin "/git-annex")
-                        (string-append bin "/git-remote-tor-annex")))))
-         (add-after 'install 'touch-static-output
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; The Haskell build system adds a "static" output by
-             ;; default, and there is no way to override this until
-             ;; <https://issues.guix.gnu.org/41569> is fixed.  Without
-             ;; this phase, the daemon complains because we do not
-             ;; create the "static" output.
-             (with-output-to-file (assoc-ref outputs "static")
-               (lambda ()
-                 (display "static output not used\n"))))))))
+                        (string-append bin "/git-remote-tor-annex"))))))))
     (inputs
      (list curl
            ghc-aeson
-- 
2.38.2





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

* [bug#61420] [PATCH 27/31] gnu: shellcheck: Drop Haskell libraries.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (21 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 26/31] gnu: git-annex: Drop Haskell documentation Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 28/31] gnu: pandoc: Drop Haskell libraries and documentation Lars-Dominik Braun
                     ` (3 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/haskell-apps.scm (shellcheck)[arguments]: Add
'remove-libraries phase.
---
 gnu/packages/haskell-apps.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 80abc99cb1..35e369df3f 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -836,7 +836,10 @@ (define-public shellcheck
            (lambda* (#:key outputs #:allow-other-keys)
              (install-file "shellcheck.1"
                            (string-append (assoc-ref outputs "out")
-                                          "/share/man/man1/")))))))
+                                          "/share/man/man1/"))))
+         (add-after 'register 'remove-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (native-inputs
      (list pandoc))
     (inputs
-- 
2.38.2





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

* [bug#61420] [PATCH 28/31] gnu: pandoc: Drop Haskell libraries and documentation.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (22 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 27/31] gnu: shellcheck: Drop Haskell libraries Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 29/31] gnu: purescript: " Lars-Dominik Braun
                     ` (2 subsequent siblings)
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/haskell-xyz.scm (ghc-pandoc): Renamed from pandoc.
(pandoc) [arguments]: Add 'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/haskell-xyz.scm | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 0a6efedd29..7578065eb1 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8188,9 +8188,9 @@ (define-public ghc-doclayout
 code.  It was designed for use in @code{Pandoc}.")
     (license license:bsd-3)))
 
-(define-public pandoc
+(define-public ghc-pandoc
   (package
-    (name "pandoc")
+    (name "ghc-pandoc")
     (version "2.19.2")
     (source (origin
               (method url-fetch)
@@ -8288,8 +8288,19 @@ (define-public pandoc
 provided for those who need a drop-in replacement for Markdown.pl.")
     (license license:gpl2+)))
 
-(define-public ghc-pandoc
-  (deprecated-package "ghc-pandoc" pandoc))
+(define-public pandoc
+  (package
+    (inherit ghc-pandoc)
+    (name "pandoc")
+    (arguments
+     (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'register 'remove-libraries
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))
+       ;; Haddock documentation is for the library.
+       #:haddock? #f))))
 
 (define-public ghc-pandoc-types
   (package
-- 
2.38.2





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

* [bug#61420] [PATCH 29/31] gnu: purescript: Drop Haskell libraries and documentation.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (23 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 28/31] gnu: pandoc: Drop Haskell libraries and documentation Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 30/31] gnu: xmobar: " Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 31/31] gnu: idris: Adapt to changed haskell-build-system Lars-Dominik Braun
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/purescript.scm (purescript)[arguments]: Add
'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/purescript.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/purescript.scm b/gnu/packages/purescript.scm
index d968a6f0e6..0a5eccc459 100644
--- a/gnu/packages/purescript.scm
+++ b/gnu/packages/purescript.scm
@@ -99,13 +99,17 @@ (define-public purescript
      `(;; Tests require npm
        #:tests? #f
        #:configure-flags '("--flags=release")
+       #:haddock? #f
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "purescript.cabal"
                (("\\b(language-javascript|process)\\s+[^,]+" all dep)
-                dep)))))))
+                dep))))
+         (add-after 'register 'remove-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (home-page "https://www.purescript.org/")
     (synopsis "Haskell inspired programming language compiling to JavaScript")
     (description
-- 
2.38.2





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

* [bug#61420] [PATCH 30/31] gnu: xmobar: Drop Haskell libraries and documentation.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (24 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 29/31] gnu: purescript: " Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  2023-02-11 10:08   ` [bug#61420] [PATCH 31/31] gnu: idris: Adapt to changed haskell-build-system Lars-Dominik Braun
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

* gnu/packages/wm.scm (xmobar)[arguments]: Add
'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/wm.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 7d64cfe6ce..40b0ee2185 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -831,13 +831,17 @@ (define-public xmobar
            libxpm))
     (arguments
      `(#:configure-flags (list "--flags=all_extensions")
+       ;; Haddock documentation is for the library.
+       #:haddock? #f
        #:phases
        (modify-phases %standard-phases
+         (add-after 'register 'remove-libraries
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib"))))
          (add-before 'build 'patch-test-shebang
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "test/Xmobar/Plugins/Monitors/AlsaSpec.hs"
-               (("/bin/bash") (which "bash")))
-             #t)))))
+               (("/bin/bash") (which "bash"))))))))
     (home-page "https://xmobar.org")
     (synopsis "Minimalistic text based status bar")
     (description
-- 
2.38.2





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

* [bug#61420] [PATCH 31/31] gnu: idris: Adapt to changed haskell-build-system.
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
                     ` (25 preceding siblings ...)
  2023-02-11 10:08   ` [bug#61420] [PATCH 30/31] gnu: xmobar: " Lars-Dominik Braun
@ 2023-02-11 10:08   ` Lars-Dominik Braun
  26 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-11 10:08 UTC (permalink / raw)
  To: 61420; +Cc: Lars-Dominik Braun

…which does not support the “static” output any more.

* gnu/packages/idris.scm (idris)[arguments]: Remove phase
restore-libidris_rts.
---
 gnu/packages/idris.scm | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index 2a5f63c174..85fb6cc2d2 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -122,17 +122,7 @@ (define-public idris
                (setenv "TASTY_NUM_THREADS" (number->string (parallel-job-count)))
                (setenv "IDRIS_CC" ,(cc-for-target)) ;Needed for creating executables
                (setenv "PATH" (string-append out "/bin:" (getenv "PATH")))
-               (apply (assoc-ref %standard-phases 'check) args))))
-         (add-before 'check 'restore-libidris_rts
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; The Haskell build system moves this library to the
-             ;; "static" output.  Idris only knows how to find it in the
-             ;; "out" output, so we restore it here.
-             (let ((out (assoc-ref outputs "out"))
-                   (static (assoc-ref outputs "static"))
-                   (filename "/lib/idris/rts/libidris_rts.a"))
-               (rename-file (string-append static filename)
-                            (string-append out filename))))))))
+               (apply (assoc-ref %standard-phases 'check) args)))))))
     (native-search-paths
      (list (search-path-specification
             (variable "IDRIS_LIBRARY_PATH")
-- 
2.38.2





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

* [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
  2023-02-11  9:59 [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Lars-Dominik Braun
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
@ 2023-02-14 19:27 ` Simon Tournier
  2023-02-15  8:45   ` Lars-Dominik Braun
  2023-02-15 10:43 ` zimoun
  2023-02-26  9:47 ` bug#61420: " Lars-Dominik Braun
  3 siblings, 1 reply; 40+ messages in thread
From: Simon Tournier @ 2023-02-14 19:27 UTC (permalink / raw)
  To: Lars-Dominik Braun, 61420

Hi Lars,

On sam., 11 févr. 2023 at 10:59, Lars-Dominik Braun <lars@6xq.net> wrote:

> these patches (also found in the wip-haskell branch) lift Haskell to
> the Stackage release 20.5, which is based on GHC 9.2.

From the CI dashboard

    https://ci.guix.gnu.org/eval/183093/dashboard

all seem green.  Well, it is hard to know but giving a look at the
various evaluations,

https://ci.guix.gnu.org/eval/183093
https://ci.guix.gnu.org/eval/154817?status=failed

for instance, https://ci.guix.gnu.org/build/373800/log/raw reports that
’opencv’ is failing but it is unrelated to this branch – “guix weather”
reports it is broken on master for Berlin but not Bordeaux.

https://ci.guix.gnu.org/build/420612/details

Similarly for the other broken packages in this wip-haskell branch.

However, python-pypandoc seems broken on wip-haskell but not in master.
Idem for ganeti

I have locally rebased wip-haskell on the top of master (4501a50bbd) and
these 2 packages (python-pypandoc and ganeti) are still failing (once
the series is applied) but not in master (before the series is applied,
i.e., commit 4501a50bbd).


Well, I have not carefully checked yet each commit but they appear good
to me; except maybe « Upgrade Haskell packages. » but it is too much
work for improving, IMHO. :-)

Cheers,
simon




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

* [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
  2023-02-14 19:27 ` [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Simon Tournier
@ 2023-02-15  8:45   ` Lars-Dominik Braun
  2023-02-15  9:20     ` zimoun
  0 siblings, 1 reply; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-15  8:45 UTC (permalink / raw)
  To: Simon Tournier; +Cc: 61420

Hi,

> However, python-pypandoc seems broken on wip-haskell but not in master.
> Idem for ganeti
yeah, python-pypandoc and ganeti are known to be broken. Ganeti does
not support GHC 9.2 (and there don’t seem to be any patches fixing
this anywhere) and pypandoc fails even more tests when upgrading it to
v1.10 – not sure what to do.

> except maybe « Upgrade Haskell packages. » but it is too much
> work for improving, IMHO. :-)
Well, I know that this is not what the policy requires, but it is a
deliberate choice. There is no functional/working intermediate state
here. You can only have all of the changes or none. Creating >700 commits
“just because” seems wrong.

Cheers,
Lars





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

* [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
  2023-02-15  8:45   ` Lars-Dominik Braun
@ 2023-02-15  9:20     ` zimoun
  0 siblings, 0 replies; 40+ messages in thread
From: zimoun @ 2023-02-15  9:20 UTC (permalink / raw)
  To: Lars-Dominik Braun; +Cc: 61420

Hi,

On Wed, 15 Feb 2023 at 09:45, Lars-Dominik Braun <lars@6xq.net> wrote:

>> However, python-pypandoc seems broken on wip-haskell but not in master.
>> Idem for ganeti
> yeah, python-pypandoc and ganeti are known to be broken. Ganeti does
> not support GHC 9.2 (and there don’t seem to be any patches fixing
> this anywhere) and pypandoc fails even more tests when upgrading it to
> v1.10 – not sure what to do.

About ganeti, does it make sense to build it with a transformation and
use an older GHC version (that it is still available).‘

About python-pypandoc, if there is no solution for fixing it and it will
be broken, I propose to remove it.  WDYT?


Cheers,
simon




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

* [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
  2023-02-11  9:59 [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Lars-Dominik Braun
  2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
  2023-02-14 19:27 ` [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Simon Tournier
@ 2023-02-15 10:43 ` zimoun
  2023-02-15 10:58   ` Lars-Dominik Braun
  2023-02-26  9:47 ` bug#61420: " Lars-Dominik Braun
  3 siblings, 1 reply; 40+ messages in thread
From: zimoun @ 2023-02-15 10:43 UTC (permalink / raw)
  To: Lars-Dominik Braun, 61420

Hi Lars,

On Sat, 11 Feb 2023 at 10:59, Lars-Dominik Braun <lars@6xq.net> wrote:

> Lars-Dominik Braun (29):
>   import: hackage: Allow version at the beginning of cabal file.
>   gnu: Switch default to GHC 9.2.
>   import: stackage: Update to release 20.5.
>   import: hackage: Add upstream-name property.
>   gnu: Add upstream-name property to Haskell packages.
>   import: hackage: Use upstream-name property.
>   gnu: Use HACKAGE-URI for packages from Hackage.
>   import: haskell: Add new internal library for GHC 9.2.
>   build: haskell-build-system: Process all transitive dependencies.
>   build: haskell-build-system: Remove unused linker flags.
>   Upgrade Haskell packages.
>   gnu: ghc-9.2: Increase make verbosity.
>   gnu: Remove unused Haskell packages.
>   gnu: ghc-parsec: Update to 3.1.15.0.
>   gnu: idris: Fix overly zealous regular expression.
>   gnu: elm: Support GHC 9.2.
>   build-system: haskell: Drop default "static" output.
>   gnu: ghc-9.2: Support static linking with glibc < 2.34.
>   gnu: ghc-lua: Disable symbol export.
>   build: haskell-build-system: Build static executables by default.
>   gnu: ngless: Drop Haskell libraries and documentation.
>   gnu: hledger: Drop Haskell libraries and documentation.
>   gnu: darcs: Drop Haskell libraries and documentation.
>   gnu: git-annex: Drop Haskell documentation.
>   gnu: shellcheck: Drop Haskell libraries.
>   gnu: pandoc: Drop Haskell libraries and documentation.
>   gnu: purescript: Drop Haskell libraries and documentation.
>   gnu: xmobar: Drop Haskell libraries and documentation.
>   gnu: idris: Adapt to changed haskell-build-system.
>
> Philip Munksgaard (1):
>   build: haskell-build-system: Support multiple libraries.
>
> zimoun (1):
>   build: haskell-build-system: Remove trailing #t.

From this series, I do not see [PATCH 07/31], neither 09/31 or 13/31.
Is it expected?

 [PATCH 00/31] Haskell upgrade to Stackage 20.5 (Guix Guix::review? list::guix-patches replied)
 [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file. (Guix list::guix-patches unread)
 [PATCH 02/31] build: haskell-build-system: Remove trailing #t. (Guix inbox list::guix-patches unread)
 [PATCH 03/31] build: haskell-build-system: Support multiple libraries. (Guix inbox list::guix-patches unread)
 [PATCH 04/31] gnu: Switch default to GHC 9.2. (Guix Guix::review? list::guix-patches unread)
 [PATCH 05/31] import: stackage: Update to release 20.5. (Guix list::guix-patches unread)
 [PATCH 06/31] import: hackage: Add upstream-name property. (Guix list::guix-patches unread)
 [PATCH 08/31] import: hackage: Use upstream-name property. (Guix list::guix-patches unread)
 [PATCH 10/31] import: haskell: Add new internal library for GHC 9.2. (Guix list::guix-patches unread)
 [PATCH 11/31] build: haskell-build-system: Process all transitive dependencies. (Guix list::guix-patches unread)
 [PATCH 12/31] build: haskell-build-system: Remove unused linker flags. (Guix list::guix-patches unread)
 [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity. (Guix Guix::review? list::guix-patches unread)
 [PATCH 15/31] gnu: Remove unused Haskell packages. (Guix Guix::review? list::guix-patches unread)
 [PATCH 16/31] gnu: ghc-parsec: Update to 3.1.15.0. (Guix Guix::review? list::guix-patches unread)
 [PATCH 17/31] gnu: idris: Fix overly zealous regular expression. (Guix list::guix-patches unread)
 [PATCH 18/31] gnu: elm: Support GHC 9.2. (Guix list::guix-patches unread)
 [PATCH 19/31] build-system: haskell: Drop default "static" output. (Guix Guix::review? list::guix-patches unread)
 [PATCH 20/31] gnu: ghc-9.2: Support static linking with glibc < 2.34. (Guix Guix::review? list::guix-patches unread)
 [PATCH 21/31] gnu: ghc-lua: Disable symbol export. (Guix Guix::review? list::guix-patches unread)
 [PATCH 22/31] build: haskell-build-system: Build static executables by default. (Guix list::guix-patches unread)
 [PATCH 23/31] gnu: ngless: Drop Haskell libraries and documentation. (Guix Guix::review? list::guix-patches unread)
 [PATCH 24/31] gnu: hledger: Drop Haskell libraries and documentation. (Guix list::guix-patches unread)
 [PATCH 25/31] gnu: darcs: Drop Haskell libraries and documentation. (Guix Guix::review? list::guix-patches unread)
 [PATCH 26/31] gnu: git-annex: Drop Haskell documentation. (Guix Guix::review? list::guix-patches unread)
 [PATCH 27/31] gnu: shellcheck: Drop Haskell libraries. (Guix Guix::review? list::guix-patches unread)
 [PATCH 28/31] gnu: pandoc: Drop Haskell libraries and documentation. (Guix Guix::review? list::guix-patches unread)
 [PATCH 29/31] gnu: purescript: Drop Haskell libraries and documentation. (Guix list::guix-patches unread)
 [PATCH 30/31] gnu: xmobar: Drop Haskell libraries and documentation. (Guix list::guix-patches unread)
 [PATCH 31/31] gnu: idris: Adapt to changed haskell-build-system. (Guix list::guix-patches unread)


Cheers,
simon




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

* [bug#61420] [PATCH 08/31] import: hackage: Use upstream-name property.
  2023-02-11 10:08   ` [bug#61420] [PATCH 08/31] import: hackage: Use " Lars-Dominik Braun
@ 2023-02-15 10:48     ` zimoun
  0 siblings, 0 replies; 40+ messages in thread
From: zimoun @ 2023-02-15 10:48 UTC (permalink / raw)
  To: Lars-Dominik Braun, 61420; +Cc: Lars-Dominik Braun

Hi,

On Sat, 11 Feb 2023 at 11:08, Lars-Dominik Braun <lars@6xq.net> wrote:
> * guix/import/hackage.scm (guix-package->hackage-name): Removed.
> (latest-release): Use package-upstream-name* instead.
> * guix/import/stackage.scm (latest-lts-release): Ditto.
> (stackage-lts-package?): Ditto.

> -(define guix-package->hackage-name
> -  (let ((uri-rx (make-regexp "(https?://hackage.haskell.org|mirror://hackage)/package/([^/]+)/.*"))
> -        (name-rx (make-regexp "(.*)-[0-9\\.]+")))
> -    (lambda (package)
> -      "Given a Guix package name, return the corresponding Hackage name."
> -      (let* ((source-url (and=> (package-source package) origin-uri))
> -             (name (match:substring (regexp-exec uri-rx source-url) 2)))
> -        (match (regexp-exec name-rx name)
> -          (#f name)
> -          (m (match:substring m 1)))))))

Why not just do a drop-in replacement of the implement of
’guix-package->hackage-name’ by the implementation of
’package-upstream-name*’?

Other said, avoid to introduce a new procedure and remove another; and
instead just replace the implementation of the old by the new.


> -  (let* ((hackage-name (guix-package->hackage-name package))
> +  (let* ((hackage-name (package-upstream-name* package))

It would avoid all these kind of replacement, no?


Cheers,
simon




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

* [bug#61420] [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity.
  2023-02-11 10:08   ` [bug#61420] [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity Lars-Dominik Braun
@ 2023-02-15 10:53     ` zimoun
  0 siblings, 0 replies; 40+ messages in thread
From: zimoun @ 2023-02-15 10:53 UTC (permalink / raw)
  To: Lars-Dominik Braun, 61420; +Cc: Lars-Dominik Braun

Hi,

On Sat, 11 Feb 2023 at 11:08, Lars-Dominik Braun <lars@6xq.net> wrote:
> Tests time out on ci.guix.gnu.org.

[...]

> +         ;; Increase verbosity, so running the test suite does not time out on CI.

Hehe!  Well, I think there is variable for that.  Something like:

      (properties
       `((max-silent-time . 36000)))

Well, one is not exclusive with the other. :-)


Cheers,
simon




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

* [bug#61420] [PATCH 19/31] build-system: haskell: Drop default "static" output.
  2023-02-11 10:08   ` [bug#61420] [PATCH 19/31] build-system: haskell: Drop default "static" output Lars-Dominik Braun
@ 2023-02-15 10:55     ` zimoun
  0 siblings, 0 replies; 40+ messages in thread
From: zimoun @ 2023-02-15 10:55 UTC (permalink / raw)
  To: Lars-Dominik Braun, 61420; +Cc: Lars-Dominik Braun

Hi,

On Sat, 11 Feb 2023 at 11:08, Lars-Dominik Braun <lars@6xq.net> wrote:

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

This change could be announced with ’--news’, WDYT?

Cheers,
simon




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

* [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
  2023-02-15 10:43 ` zimoun
@ 2023-02-15 10:58   ` Lars-Dominik Braun
  2023-02-15 11:10     ` Simon Tournier
  2023-02-15 14:03     ` Christopher Baines
  0 siblings, 2 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-15 10:58 UTC (permalink / raw)
  To: zimoun; +Cc: 61420

Hi,

> From this series, I do not see [PATCH 07/31], neither 09/31 or 13/31.
> Is it expected?
yes, they’re a few hundred kilobytes with thousands of lines
each. Please have a look at the branch instead.

Lars





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

* [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
  2023-02-15 10:58   ` Lars-Dominik Braun
@ 2023-02-15 11:10     ` Simon Tournier
  2023-02-15 14:03     ` Christopher Baines
  1 sibling, 0 replies; 40+ messages in thread
From: Simon Tournier @ 2023-02-15 11:10 UTC (permalink / raw)
  To: Lars-Dominik Braun; +Cc: 61420

Hi,

On Wed, 15 Feb 2023 at 11:58, Lars-Dominik Braun <lars@6xq.net> wrote:

> yes, they’re a few hundred kilobytes with thousands of lines
> each. Please have a look at the branch instead.

All LGTM.  Some minor comments that can be addressed later, IMHO.

Thank you for this hard work!

Cheers,
simon




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

* [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
  2023-02-15 10:58   ` Lars-Dominik Braun
  2023-02-15 11:10     ` Simon Tournier
@ 2023-02-15 14:03     ` Christopher Baines
  1 sibling, 0 replies; 40+ messages in thread
From: Christopher Baines @ 2023-02-15 14:03 UTC (permalink / raw)
  To: Lars-Dominik Braun; +Cc: 61420

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


Lars-Dominik Braun <lars@6xq.net> writes:

>> From this series, I do not see [PATCH 07/31], neither 09/31 or 13/31.
>> Is it expected?
> yes, they’re a few hundred kilobytes with thousands of lines
> each. Please have a look at the branch instead.

I ended up also looking at these missing patches, since that explains
why the testing for https://qa.guix.gnu.org/issue/61420 hasn't happened.

I've been sent these large diffs anyway since that happened when you
pushed to the branch, so I wouldn't hesitate to send large patches to
guix-patches, since that's helpful to have the testing happen
automatically.

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

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

* bug#61420: [PATCH 00/31] Haskell upgrade to Stackage 20.5
  2023-02-11  9:59 [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Lars-Dominik Braun
                   ` (2 preceding siblings ...)
  2023-02-15 10:43 ` zimoun
@ 2023-02-26  9:47 ` Lars-Dominik Braun
  3 siblings, 0 replies; 40+ messages in thread
From: Lars-Dominik Braun @ 2023-02-26  9:47 UTC (permalink / raw)
  To: 61420-done

Hi,

the branch wip-haskell has been merged.

Lars





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

end of thread, other threads:[~2023-02-26  9:48 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-11  9:59 [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Lars-Dominik Braun
2023-02-11 10:07 ` [bug#61420] [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file Lars-Dominik Braun
2023-02-11 10:07   ` [bug#61420] [PATCH 02/31] build: haskell-build-system: Remove trailing #t Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 03/31] build: haskell-build-system: Support multiple libraries Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 04/31] gnu: Switch default to GHC 9.2 Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 05/31] import: stackage: Update to release 20.5 Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 06/31] import: hackage: Add upstream-name property Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 08/31] import: hackage: Use " Lars-Dominik Braun
2023-02-15 10:48     ` zimoun
2023-02-11 10:08   ` [bug#61420] [PATCH 10/31] import: haskell: Add new internal library for GHC 9.2 Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 11/31] build: haskell-build-system: Process all transitive dependencies Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 12/31] build: haskell-build-system: Remove unused linker flags Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity Lars-Dominik Braun
2023-02-15 10:53     ` zimoun
2023-02-11 10:08   ` [bug#61420] [PATCH 15/31] gnu: Remove unused Haskell packages Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 16/31] gnu: ghc-parsec: Update to 3.1.15.0 Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 17/31] gnu: idris: Fix overly zealous regular expression Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 18/31] gnu: elm: Support GHC 9.2 Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 19/31] build-system: haskell: Drop default "static" output Lars-Dominik Braun
2023-02-15 10:55     ` zimoun
2023-02-11 10:08   ` [bug#61420] [PATCH 20/31] gnu: ghc-9.2: Support static linking with glibc < 2.34 Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 21/31] gnu: ghc-lua: Disable symbol export Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 22/31] build: haskell-build-system: Build static executables by default Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 23/31] gnu: ngless: Drop Haskell libraries and documentation Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 24/31] gnu: hledger: " Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 25/31] gnu: darcs: " Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 26/31] gnu: git-annex: Drop Haskell documentation Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 27/31] gnu: shellcheck: Drop Haskell libraries Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 28/31] gnu: pandoc: Drop Haskell libraries and documentation Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 29/31] gnu: purescript: " Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 30/31] gnu: xmobar: " Lars-Dominik Braun
2023-02-11 10:08   ` [bug#61420] [PATCH 31/31] gnu: idris: Adapt to changed haskell-build-system Lars-Dominik Braun
2023-02-14 19:27 ` [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5 Simon Tournier
2023-02-15  8:45   ` Lars-Dominik Braun
2023-02-15  9:20     ` zimoun
2023-02-15 10:43 ` zimoun
2023-02-15 10:58   ` Lars-Dominik Braun
2023-02-15 11:10     ` Simon Tournier
2023-02-15 14:03     ` Christopher Baines
2023-02-26  9:47 ` bug#61420: " Lars-Dominik Braun

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).