[PATCH 00/31] Haskell upgrade to Stackage 20.5

  • Done
  • quality assurance status badge
Details
3 participants
  • Lars-Dominik Braun
  • Christopher Baines
  • Simon Tournier
Owner
unassigned
Submitted by
Lars-Dominik Braun
Severity
normal
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 10:59
(address . guix-patches@gnu.org)
Y+dm9R4usLj/IJpa@noor.fritz.box
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:07
[PATCH 01/31] import: hackage: Allow version at the beginning of cabal file.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-1-lars@6xq.net
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(-)

Toggle diff (18 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 03/31] build: haskell-build-system: Support multiple libraries.
(address . 61420@debbugs.gnu.org)
20230211100825.47971-3-lars@6xq.net
From: Philip Munksgaard <philip@munksgaard.me>


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

Toggle diff (124 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 04/31] gnu: Switch default to GHC 9.2.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-4-lars@6xq.net
* 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(-)

Toggle diff (49 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 05/31] import: stackage: Update to release 20.5.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-5-lars@6xq.net
* guix/import/stackage.scm (%default-lts-version): Update to 20.5.
---
guix/import/stackage.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 06/31] import: hackage: Add upstream-name property.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-6-lars@6xq.net
* 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(+)

Toggle diff (58 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 08/31] import: hackage: Use upstream-name property.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-7-lars@6xq.net
* 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(-)

Toggle diff (63 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 10/31] import: haskell: Add new internal library for GHC 9.2.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-8-lars@6xq.net
* guix/import/hackage.scm (ghc-standard-libraries): Add ghc-bignum.
---
guix/import/hackage.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:07
[PATCH 02/31] build: haskell-build-system: Remove trailing #t.
(address . 61420@debbugs.gnu.org)
20230211100825.47971-2-lars@6xq.net
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(-)

Toggle diff (89 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 12/31] build: haskell-build-system: Remove unused linker flags.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-10-lars@6xq.net
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(-)

Toggle diff (15 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 11/31] build: haskell-build-system: Process all transitive dependencies.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-9-lars@6xq.net
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


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

Toggle diff (30 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 14/31] gnu: ghc-9.2: Increase make verbosity.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-11-lars@6xq.net
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(-)

Toggle diff (18 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 17/31] gnu: idris: Fix overly zealous regular expression.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-14-lars@6xq.net
* 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(-)

Toggle diff (15 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 16/31] gnu: ghc-parsec: Update to 3.1.15.0.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-13-lars@6xq.net
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(-)

Toggle diff (28 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 15/31] gnu: Remove unused Haskell packages.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-12-lars@6xq.net
* 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(-)

Toggle diff (100 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 21/31] gnu: ghc-lua: Disable symbol export.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-18-lars@6xq.net
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(+)

Toggle diff (16 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 20/31] gnu: ghc-9.2: Support static linking with glibc < 2.34.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-17-lars@6xq.net
* 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

Toggle diff (69 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 22/31] build: haskell-build-system: Build static executables by default.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-19-lars@6xq.net
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(-)

Toggle diff (23 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 19/31] build-system: haskell: Drop default "static" output.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-16-lars@6xq.net
* 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(-)

Toggle diff (178 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 18/31] gnu: elm: Support GHC 9.2.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-15-lars@6xq.net
* 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

Toggle diff (221 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 23/31] gnu: ngless: Drop Haskell libraries and documentation.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-20-lars@6xq.net
* 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(-)

Toggle diff (28 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 26/31] gnu: git-annex: Drop Haskell documentation.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-23-lars@6xq.net
* gnu/packages/haskell-apps.scm (git-annex)[arguments]: Disable #:haddock?.
---
gnu/packages/haskell-apps.scm | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)

Toggle diff (33 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 29/31] gnu: purescript: Drop Haskell libraries and documentation.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-26-lars@6xq.net
* 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(-)

Toggle diff (25 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 30/31] gnu: xmobar: Drop Haskell libraries and documentation.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-27-lars@6xq.net
* 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(-)

Toggle diff (26 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 31/31] gnu: idris: Adapt to changed haskell-build-system.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-28-lars@6xq.net
…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(-)

Toggle diff (25 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 27/31] gnu: shellcheck: Drop Haskell libraries.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-24-lars@6xq.net
* gnu/packages/haskell-apps.scm (shellcheck)[arguments]: Add
'remove-libraries phase.
---
gnu/packages/haskell-apps.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

Toggle diff (18 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 24/31] gnu: hledger: Drop Haskell libraries and documentation.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-21-lars@6xq.net
* 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(-)

Toggle diff (90 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 25/31] gnu: darcs: Drop Haskell libraries and documentation.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-22-lars@6xq.net
* 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(-)

Toggle diff (26 lines)
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
L
L
Lars-Dominik Braun wrote on 11 Feb 2023 11:08
[PATCH 28/31] gnu: pandoc: Drop Haskell libraries and documentation.
(address . 61420@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
20230211100825.47971-25-lars@6xq.net
* 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(-)

Toggle diff (40 lines)
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
S
S
Simon Tournier wrote on 14 Feb 2023 20:27
Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
87sff8xd2w.fsf@gmail.com
Hi Lars,

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

Toggle quote (3 lines)
> 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


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


’opencv’ is failing but it is unrelated to this branch – “guix weather”
reports it is broken on master for Berlin but not Bordeaux.


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
L
L
Lars-Dominik Braun wrote on 15 Feb 2023 09:45
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)(address . 61420@debbugs.gnu.org)
Y+ybrbCNJUUOg/C9@noor.fritz.box
Hi,

Toggle quote (2 lines)
> 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.

Toggle quote (2 lines)
> 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
Z
Z
zimoun wrote on 15 Feb 2023 10:20
(name . Lars-Dominik Braun)(address . lars@6xq.net)(address . 61420@debbugs.gnu.org)
86y1ozffo3.fsf@gmail.com
Hi,

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

Toggle quote (7 lines)
>> 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
Z
Z
zimoun wrote on 15 Feb 2023 11:43
86cz6bfbtu.fsf@gmail.com
Hi Lars,

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

Toggle quote (37 lines)
> 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
L
L
Lars-Dominik Braun wrote on 15 Feb 2023 11:58
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 61420@debbugs.gnu.org)
Y+y63JaOqvyFyzAi@noor.fritz.box
Hi,

Toggle quote (2 lines)
> 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
Z
Z
zimoun wrote on 15 Feb 2023 11:48
Re: [bug#61420] [PATCH 08/31] import: hackage: Use upstream-name property.
(name . Lars-Dominik Braun)(address . lars@6xq.net)
867cwjfbmn.fsf@gmail.com
Hi,

On Sat, 11 Feb 2023 at 11:08, Lars-Dominik Braun <lars@6xq.net> wrote:
Toggle quote (16 lines)
> * 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.


Toggle quote (3 lines)
> - (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
Z
Z
zimoun wrote on 15 Feb 2023 11:53
Re: [bug#61420] [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity.
(name . Lars-Dominik Braun)(address . lars@6xq.net)
861qmrfbdy.fsf@gmail.com
Hi,

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

[...]

Toggle quote (2 lines)
> + ;; 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
Z
Z
zimoun wrote on 15 Feb 2023 11:55
Re: [bug#61420] [PATCH 19/31] build-system: haskell: Drop default "static" output.
(name . Lars-Dominik Braun)(address . lars@6xq.net)
86v8k3dwpp.fsf@gmail.com
Hi,

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

Toggle quote (5 lines)
> * 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
C
C
Christopher Baines wrote on 15 Feb 2023 15:03
Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
(name . Lars-Dominik Braun)(address . lars@6xq.net)
87lekznhnw.fsf@cbaines.net
Lars-Dominik Braun <lars@6xq.net> writes:

Toggle quote (5 lines)
>> 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/61420hasn'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.
-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmPs59NfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9XeXWg/+OB824EEMGdChen+oPLgAJoGpHsQfRCpI
A7GBjdAWK+ihh1KeYr/3IMer0yD+GY2sSaMrLp9EGFABft1EuWibbLyZ+TBUMlsb
vk6/VC1U4BmvtTZHN3AbWQWp42GArNo9RMs5tYzEfVDdIkZ4/cRK9n/kEnwEyQFL
JjQWJAs0hKJVc4judpN3RSvCJSyLdKPUPMoknExGuC5xEfJy9CJKQc9Qajuj2YKW
1Nfk3P9ZYLkozXtR0X4Xno5TvhO2pYH3Gr5uWqJkFbIn51pjW3/JfcW/0JW/jsYR
ZkKC2MibAL8OvvZw3VM24Nw56eMwOYRPok39sNrLGu3N13yyzQA5NVMoB27ERgLZ
b4mmPKQDznigYfjeVqw40bE/UQNn4saQ7DeNg7UmXdm2vuGFOzKhAVWcRBCDeGpp
KD2BYvc7S5QP/l2P6MDWH/d+ErjGL9KwE5yZtaU/+vuZv4VMToveySNAYk07CupY
XOC1C95+6Kf7t0tU93tHp9eBWFANj2ComRoDYnoyfLa4GAX0zU2/quYHgDQUtdhw
Sb4mXkknMefLMEQy33oho/1Pi1BnMCHXX6ARp/k8sb5NHQy3T6j+zfVYdQzirwsN
aukZbTjDUbNk/8pElKSYIGLwIgEadae9WNO5OjTCexTsGPZGdYI0rLZ+dWIyHWtx
6l84aigSbkA=
=79I8
-----END PGP SIGNATURE-----

S
S
Simon Tournier wrote on 15 Feb 2023 12:10
(name . Lars-Dominik Braun)(address . lars@6xq.net)(address . 61420@debbugs.gnu.org)
86o7pvdw00.fsf@gmail.com
Hi,

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

Toggle quote (3 lines)
> 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
L
L
Lars-Dominik Braun wrote on 26 Feb 2023 10:47
Re: [PATCH 00/31] Haskell upgrade to Stackage 20.5
(address . 61420-done@debbugs.gnu.org)
Y/sqlwHZ2Ts1sJas@noor.fritz.box
Hi,

the branch wip-haskell has been merged.

Lars
Closed
?