me
/
guix
Archived
1
0
Fork 0

Upgrade Haskell packages.

Script-aided bulk change.
Lars-Dominik Braun 2023-01-15 10:09:44 +01:00
parent 9262c14d73
commit 49a320aaa6
No known key found for this signature in database
GPG Key ID: F663943E08D8092A
21 changed files with 6891 additions and 6525 deletions

View File

@ -955,8 +955,6 @@ dist_patch_DATA = \
%D%/packages/patches/breezy-fix-gio.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
%D%/packages/patches/cabal-install-base16-bytestring1.0.patch \
%D%/packages/patches/cabal-install-ghc8.10.patch \
%D%/packages/patches/cairo-CVE-2018-19876.patch \
%D%/packages/patches/cairo-CVE-2020-35492.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \
@ -1200,6 +1198,8 @@ dist_patch_DATA = \
%D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.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 \
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \
%D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
@ -1576,7 +1576,6 @@ dist_patch_DATA = \
%D%/packages/patches/nix-dont-build-html-doc.diff \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/ngless-unliftio.patch \
%D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/network-manager-meson.patch \
%D%/packages/patches/nginx-socket-cloexec.patch \
@ -2012,7 +2011,6 @@ dist_patch_DATA = \
%D%/packages/patches/xfce4-settings-defaults.patch \
%D%/packages/patches/xgboost-use-system-dmlc-core.patch \
%D%/packages/patches/xmonad-dynamic-linking.patch \
%D%/packages/patches/xmonad-next-dynamic-linking.patch \
%D%/packages/patches/xnnpack-system-libraries.patch \
%D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \
%D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \

View File

@ -14823,110 +14823,121 @@ datasets.")
(define-public ngless
(package
(name "ngless")
(version "1.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ngless-toolkit/ngless.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0pb9f6b0yk9p4cdwiym8r190q1bcdiwvc7i2s6rw54qgi8r3g6pj"))
(patches (search-patches "ngless-unliftio.patch"))))
(version "1.5.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "NGLess" version))
(sha256
(base32
"0pljyrlpr9r3cl5311dhgxdl8y40szyi4vprn34i3piy0qrldymi"))))
(build-system haskell-build-system)
(arguments
(list
#:haddock? #f ;The haddock phase fails with: NGLess/CmdArgs.hs:20:1:
;error: parse error on input import
;import Options.Applicative
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'create-Versions.hs
(lambda _
(substitute* "Makefile"
(("BWA_VERSION = .*")
(string-append "BWA_VERSION = "
#$(package-version bwa) "\n"))
(("SAM_VERSION = .*")
(string-append "SAM_VERSION = "
#$(package-version samtools) "\n"))
(("PRODIGAL_VERSION = .*")
(string-append "PRODIGAL_VERSION = "
#$(package-version prodigal) "\n"))
(("MINIMAP2_VERSION = .*")
(string-append "MINIMAP2_VERSION = "
#$(package-version minimap2) "\n")))
(invoke "make" "NGLess/Dependencies/Versions.hs")))
(add-after 'create-Versions.hs 'create-cabal-file
(lambda _ (invoke "hpack")))
;; These tools are expected to be installed alongside ngless.
(add-after 'install 'link-tools
(lambda* (#:key inputs #:allow-other-keys)
(let ((bin (string-append #$output "/bin/")))
(symlink (search-input-file inputs "/bin/prodigal")
(string-append bin "ngless-" #$version "-prodigal"))
(symlink (search-input-file inputs "/bin/minimap2")
(string-append bin "ngless-" #$version "-minimap2"))
(symlink (search-input-file inputs "/bin/samtools")
(string-append bin "ngless-" #$version "-samtools"))
(symlink (search-input-file inputs "/bin/bwa")
(string-append bin "ngless-" #$version "-bwa"))))))))
(inputs
(list prodigal
bwa
samtools
minimap2
ghc-aeson
ghc-ansi-terminal
ghc-async
ghc-atomic-write
ghc-bytestring-lexing
ghc-conduit
ghc-conduit-algorithms
ghc-conduit-extra
ghc-configurator
ghc-convertible
ghc-data-default
ghc-diagrams-core
ghc-diagrams-lib
ghc-diagrams-svg
ghc-double-conversion
ghc-edit-distance
ghc-either
ghc-errors
ghc-extra
ghc-filemanip
ghc-file-embed
ghc-gitrev
ghc-hashtables
ghc-http-conduit
ghc-inline-c
ghc-inline-c-cpp
ghc-int-interval-map
ghc-missingh
ghc-optparse-applicative
ghc-regex
ghc-safe
ghc-safeio
ghc-strict
ghc-tar
ghc-tar-conduit
ghc-unliftio
ghc-unliftio-core
ghc-vector
ghc-yaml
ghc-zlib))
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'update-constraints
(lambda _
(substitute* "NGLess.cabal"
(("\\b(base)\\s+[^,]+" all dep)
dep))))
(add-after 'unpack 'create-Versions.hs
(lambda _
(substitute* "NGLess/Dependencies/Versions.hs"
(("bwaVersion = .+")
(string-append "bwaVersion = \""
,(package-version bwa) "\""))
(("samtoolsVersion = .+")
(string-append "samtoolsVersion = \""
,(package-version samtools) "\""))
(("prodigalVersion = .+")
(string-append "prodigalVersion = \""
,(package-version prodigal) "\""))
(("megahitVersion = .+")
(string-append "megahitVersion = \""
,(package-version megahit) "\""))
(("minimap2Version = .+")
(string-append "minimap2Version = \""
,(package-version minimap2) "\"")))))
;; See NGLess/FileManagement.hs.
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bwa (search-input-file inputs "/bin/bwa"))
(samtools (search-input-file inputs "/bin/samtools"))
(prodigal (search-input-file inputs "/bin/prodigal"))
(minimap2 (search-input-file inputs "/bin/minimap2"))
(megahit (search-input-file inputs "/bin/megahit")))
(wrap-program (string-append out "/bin/ngless")
`("NGLESS_BWA_BIN" " " = (,bwa))
`("NGLESS_SAMTOOLS_BIN" " " = (,samtools))
`("NGLESS_PRODIGAL_BIN" " " = (,prodigal))
`("NGLESS_MINIMAP2_BIN" " " = (,minimap2))
`("NGLESS_MEGAHIT_BIN" " " = (,megahit))))))
;; Sanity check.
(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")))))))
(inputs (list prodigal
bwa
samtools
minimap2
megahit
ghc-missingh
ghc-aeson
ghc-ansi-terminal
ghc-async
ghc-atomic-write
ghc-bytestring-lexing
ghc-conduit
ghc-conduit-algorithms
ghc-conduit-extra
ghc-configurator
ghc-convertible
ghc-data-default
ghc-edit-distance
ghc-either
ghc-errors
ghc-extra
ghc-file-embed
ghc-filemanip
ghc-hashable
ghc-hashtables
ghc-hostname
ghc-http-client
ghc-http-conduit
ghc-inline-c
ghc-inline-c-cpp
ghc-int-interval-map
ghc-network
ghc-optparse-applicative
ghc-primitive
ghc-random-shuffle
ghc-regex
ghc-resourcet
ghc-safe
ghc-stm-chans
ghc-stm-conduit
ghc-strict
ghc-tar
ghc-tar-conduit
ghc-unix-compat
ghc-unliftio
ghc-unliftio-core
ghc-vector
ghc-vector-algorithms
ghc-yaml
ghc-zlib
ghc-bzlib-conduit
ghc-double-conversion
ghc-safeio))
(propagated-inputs
(list r-r6 r-hdf5r r-iterators r-itertools r-matrix))
(native-inputs
(list ghc-hpack
ghc-quickcheck
ghc-test-framework
ghc-test-framework-hunit
ghc-test-framework-quickcheck2
ghc-test-framework-th))
(native-inputs (list ghc-hunit
ghc-quickcheck
ghc-tasty
ghc-tasty-hunit
ghc-tasty-quickcheck
ghc-tasty-th))
(home-page "https://ngless.embl.de/")
(synopsis "DSL for processing next-generation sequencing data")
(description "Ngless is a domain-specific language for

View File

@ -30,108 +30,76 @@
(define-public dhall
(package
(name "dhall")
(version "1.39.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "dhall" version))
(sha256
(base32 "1by2d84fbckspczddl4npfsf89q6nprmbg0i5g8yr1psp0fpl4ab"))))
(version "1.41.2")
(source (origin
(method url-fetch)
(uri (hackage-uri "dhall" version))
(sha256
(base32
"14m5rrvkid76qnvg0l14xw1mnqclhip3gjrz20g1lp4fd5p056ka"))))
(build-system haskell-build-system)
(properties '((upstream-name . "dhall")))
(inputs
(list ghc-aeson
ghc-aeson-pretty
ghc-ansi-terminal
ghc-atomic-write-0.2.0.7
ghc-case-insensitive
ghc-cborg
ghc-cborg-json
ghc-contravariant
ghc-data-fix
ghc-diff
ghc-dotgen
ghc-either
ghc-exceptions
ghc-half
ghc-hashable
ghc-lens-family-core
ghc-megaparsec
ghc-memory
ghc-mmorph
ghc-network-uri
ghc-optparse-applicative
ghc-parsers
ghc-parser-combinators
ghc-prettyprinter
ghc-prettyprinter-ansi-terminal
ghc-pretty-simple
ghc-profunctors
ghc-pretty-simple
ghc-repline
ghc-serialise
ghc-scientific
ghc-text-manipulate
ghc-th-lift-instances
ghc-transformers-compat
ghc-unordered-containers
ghc-uri-encode
ghc-vector
ghc-cryptonite
ghc-http-types
ghc-http-client
ghc-http-client-tls))
(native-inputs
(list ghc-foldl
ghc-generic-random-1.3.0.1
ghc-quickcheck
ghc-quickcheck-instances
ghc-semigroups
ghc-special-values
ghc-spoon
ghc-tasty
ghc-tasty-expected-failure
ghc-tasty-hunit
ghc-tasty-quickcheck
ghc-tasty-silver
ghc-turtle
ghc-mockery
ghc-doctest))
(inputs (list ghc-aeson
ghc-aeson-pretty
ghc-ansi-terminal
ghc-atomic-write
ghc-base16-bytestring
ghc-case-insensitive
ghc-cborg
ghc-cborg-json
ghc-contravariant
ghc-data-fix
ghc-diff
ghc-dotgen
ghc-either
ghc-half
ghc-hashable
ghc-indexed-traversable
ghc-lens-family-core
ghc-megaparsec
ghc-mmorph
ghc-network-uri
ghc-optparse-applicative
ghc-parsers
ghc-parser-combinators
ghc-prettyprinter
ghc-prettyprinter-ansi-terminal
ghc-pretty-simple
ghc-profunctors
ghc-repline
ghc-serialise
ghc-scientific
ghc-text-manipulate
ghc-text-short
ghc-th-lift-instances
ghc-unordered-containers
ghc-uri-encode
ghc-vector
ghc-cryptohash-sha256
ghc-http-types
ghc-http-client
ghc-http-client-tls))
(native-inputs (list ghc-foldl
ghc-generic-random
ghc-quickcheck
ghc-quickcheck-instances
ghc-special-values
ghc-spoon
ghc-system-filepath
ghc-tasty
ghc-tasty-expected-failure
ghc-tasty-hunit
ghc-tasty-quickcheck
ghc-tasty-silver
ghc-temporary
ghc-turtle
ghc-mockery
ghc-doctest))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-network-tests
(lambda _
(with-directory-excursion "dhall-lang/tests"
(for-each
delete-file
'("import/success/customHeadersA.dhall"
"import/success/noHeaderForwardingA.dhall"
"import/success/unit/RemoteAsTextA.dhall"
"import/success/unit/SimpleRemoteA.dhall"
"import/success/unit/asLocation/RemoteChain1A.dhall"
"import/success/unit/asLocation/RemoteChain2A.dhall"
"import/success/unit/asLocation/RemoteChain3A.dhall"
"import/success/unit/asLocation/RemoteChainEnvA.dhall"
"import/success/unit/asLocation/RemoteChainMissingA.dhall"
"type-inference/success/CacheImportsA.dhall"
"type-inference/success/CacheImportsCanonicalizeA.dhall")))
(substitute* "src/Dhall/Tutorial.hs"
(((string-append
"-- >>> input auto "
"\"https://raw.githubusercontent.com/dhall-lang"
"/dhall-haskell/18e4e9a18dc53271146df3ccf5b4177c3552236b/"
"examples/True\" :: IO Bool"))
"")
(((string-append
"-- >>> input auto "
"\"False == "
"https://raw.githubusercontent.com/dhall-lang"
"/dhall-haskell/18e4e9a18dc53271146df3ccf5b4177c3552236b/"
"examples/True\" :: IO Bool"))
""))
#t)))))
(home-page "https://dhall-lang.org/")
`(#:tests? #f ; Tries to access httpbin.org
#:cabal-revision ("4"
"0innb3cn98ynb8bd83jdyrm64ij7wcvajg5qcwzdwbyzpr62anfx")))
(home-page "http://hackage.haskell.org/package/dhall")
(synopsis "Configuration language guaranteed to terminate")
(description
"Dhall is an explicitly typed configuration language that is not Turing

View File

@ -70,7 +70,7 @@
(add-before 'configure 'update-constraints
(lambda _
(substitute* "elm.cabal"
(("(ansi-terminal|containers|network|http-client|language-glsl)\\s+[^,]+" all dep)
(("(ansi-terminal|bytestring|containers|network|HTTP|http-client|language-glsl)\\s+[^,]+" all dep)
dep)))))))
(inputs
(list ghc-ansi-terminal

View File

@ -217,14 +217,13 @@ line client and a client based on Qt.")
(define-public hledger
(package
(name "hledger")
(version "1.21")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hledger" version))
(sha256
(base32
"07fcfkmv4cy92njnf2qc7jh0naz96q962hxldcd7hk4k7ddv0mss"))))
(version "1.27.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "hledger" version))
(sha256
(base32
"0qdg87m7ys2ykqqq32p7h7aw827w4f5bcqx4dspxxq6zqlvzddqb"))))
(build-system haskell-build-system)
(arguments
(list
@ -235,34 +234,34 @@ line client and a client based on Qt.")
(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-ansi-terminal
ghc-base-compat-batteries
ghc-cmdargs
ghc-data-default
ghc-decimal
ghc-diff
ghc-hashable
ghc-hledger-lib
ghc-lucid
ghc-math-functions
ghc-megaparsec
ghc-old-time
ghc-regex-tdfa
ghc-safe
ghc-aeson
ghc-extra
ghc-tasty
ghc-timeit
ghc-shakespeare
ghc-split
ghc-tabular
ghc-temporary
ghc-unordered-containers
ghc-utf8-string
ghc-utility-ht
ghc-wizards))
(home-page "https://hledger.org")
(inputs (list ghc-decimal
ghc-diff
ghc-aeson
ghc-ansi-terminal
ghc-breakpoint
ghc-cmdargs
ghc-data-default
ghc-extra
ghc-githash
ghc-hashable
ghc-hledger-lib
ghc-lucid
ghc-math-functions
ghc-megaparsec
ghc-microlens
ghc-regex-tdfa
ghc-safe
ghc-shakespeare
ghc-split
ghc-tabular
ghc-tasty
ghc-temporary
ghc-timeit
ghc-unordered-containers
ghc-utf8-string
ghc-utility-ht
ghc-wizards))
(home-page "http://hledger.org")
(synopsis "Command-line interface for the hledger accounting system")
(description
"The command-line interface for the hledger accounting system. Its basic
@ -1969,59 +1968,63 @@ generate a variety of reports from them, and provides a web interface.")
(define-public hledger-web
(package
(name "hledger-web")
(version "1.21")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hledger-web" version))
(sha256
(base32
"0ivszqcypw0j2wn4r7fv7dqm1pvr0b1y6rqpxagzyk8cxn3ic9g2"))))
(version "1.27.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "hledger-web" version))
(sha256
(base32
"151dxci7dld8626dzw823sr3d9iaac92wfzbfcbdz4jh9f7n07wa"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hledger-web")))
(inputs (list ghc-decimal
ghc-aeson
ghc-base64
ghc-blaze-html
ghc-blaze-markup
ghc-breakpoint
ghc-case-insensitive
ghc-clientsession
ghc-cmdargs
ghc-conduit
ghc-conduit-extra
ghc-data-default
ghc-extra
ghc-hjsmin
hledger
ghc-hledger-lib
ghc-hspec
ghc-http-client
ghc-http-conduit
ghc-http-types
ghc-megaparsec
ghc-network
ghc-shakespeare
ghc-unix-compat
ghc-unordered-containers
ghc-utf8-string
ghc-wai
ghc-wai-cors
ghc-wai-extra
ghc-wai-handler-launch
ghc-warp
ghc-yaml
ghc-yesod
ghc-yesod-core
ghc-yesod-form
ghc-yesod-static
ghc-yesod-test))
(arguments
`(#:tests? #f ; TODO: fail.
#:cabal-revision
("1" "1hnw10ibhbafbsfj5lzlxwjg4cjnqr5bb51n6mqbi30qqabgq78x")))
(inputs
(list ghc-aeson
ghc-blaze-html
ghc-blaze-markup
ghc-case-insensitive
ghc-clientsession
ghc-cmdargs
ghc-conduit-extra
ghc-conduit
ghc-data-default
ghc-decimal
ghc-extra
ghc-hjsmin
ghc-hledger-lib
ghc-hspec
ghc-http-client
ghc-http-conduit
ghc-http-types
ghc-megaparsec
ghc-network
ghc-shakespeare
ghc-unix-compat
ghc-unordered-containers
ghc-utf8-string
ghc-wai-cors
ghc-wai-extra
ghc-wai
ghc-wai-handler-launch
ghc-warp
ghc-yaml
ghc-yesod-core
ghc-yesod-form
ghc-yesod
ghc-yesod-static
ghc-yesod-test
hledger))
(home-page "https://hledger.org")
(list #:phases
#~(modify-phases %standard-phases
;; Tests write to $HOME.
(add-before 'check 'set-home
(lambda _
(setenv "HOME" "/tmp"))))))
(home-page "http://hledger.org")
(synopsis "Web-based user interface for the hledger accounting system")
(description "This package provides a simple Web-based User
(description
"This package provides a simple Web-based User
Interface (UI) for the hledger accounting system. It can be used as a
local, single-user UI, or as a multi-user UI for viewing, adding, and
editing on the Web.")

View File

@ -61,29 +61,27 @@
(define-public apply-refact
(package
(name "apply-refact")
(version "0.9.3.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "apply-refact" version))
(sha256
(base32
"1sn5g71sx8xa4ggyk49m661iip6zrzl65vb87l16l31kf79bbm7w"))))
(version "0.10.0.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "apply-refact" version))
(sha256
(base32
"129bf8n66kpwh5420rxprngg43bqr2agyd8q8d7l49k2rxsjl1fb"))))
(build-system haskell-build-system)
(properties '((upstream-name . "apply-refact")))
(inputs
(list ghc-refact
ghc-exactprint
ghc-syb
ghc-extra
ghc-uniplate
ghc-filemanip
ghc-unix-compat
ghc-optparse-applicative))
(native-inputs
(list ghc-tasty ghc-tasty-golden ghc-tasty-expected-failure
ghc-silently))
(home-page "https://hackage.haskell.org/package/apply-refact")
(inputs (list ghc-refact
ghc-exactprint
ghc-paths
ghc-extra
ghc-syb
ghc-filemanip
ghc-uniplate
ghc-unix-compat
ghc-optparse-applicative))
(native-inputs (list ghc-tasty ghc-tasty-golden ghc-tasty-expected-failure
ghc-silently))
(home-page "https://github.com/mpickering/apply-refact")
(synopsis "Perform refactorings specified by the refact library")
(description
"This package lets you perform refactorings specified by the refact
@ -94,43 +92,36 @@ library. It is primarily used with HLint's @code{--refactor} flag.")
;; update this packages after updating GHC.
(define-public cabal-install
(package
(name "cabal-install")
(version "3.2.0.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "cabal-install" version))
(patches (search-patches "cabal-install-base16-bytestring1.0.patch"
"cabal-install-ghc8.10.patch"))
(sha256
(base32 "1c0cc256bha97aj7l0lf76l5swlnmwcqppiz8l4cl5xgba4mwmd0"))))
(name "cabal-install")
(version "3.6.2.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "cabal-install" version))
(sha256
(base32
"0dihpm4h3xh13vnpvwflnb7v614qdvljycc6ffg5cvhwbwfrxyfw"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cabal-install")))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'update-constraints
(lambda _
(substitute* "cabal-install.cabal"
(("(base|base16-bytestring|random)\\s+[^,]+" all dep)
dep)))))))
(inputs
(list ghc-async
ghc-base16-bytestring
ghc-cryptohash-sha256
ghc-echo
ghc-edit-distance
ghc-hackage-security
ghc-hashable
ghc-http
ghc-network-uri
ghc-network
ghc-random
ghc-resolv
ghc-tar
ghc-zip-archive
ghc-zlib))
(home-page "https://www.haskell.org/cabal/")
(inputs (list ghc-async
ghc-base16-bytestring
ghc-cryptohash-sha256
ghc-echo
ghc-edit-distance
ghc-hashable
ghc-http
ghc-network-uri
ghc-random
ghc-tar
ghc-zlib
ghc-hackage-security
ghc-regex-base
ghc-regex-posix
ghc-resolv
ghc-lukko))
(arguments
`(#:cabal-revision ("2"
"1kpgyfl5njxp4c8ax5ziag1bhqvph3h0pn660v3vpxalz8d1j6xv")))
(home-page "http://www.haskell.org/cabal/")
(synopsis "Command-line interface for Cabal and Hackage")
(description
"The cabal command-line program simplifies the process of managing
@ -153,6 +144,9 @@ installation of Haskell libraries and programs.")
(properties '((upstream-name . "cpphs")))
(inputs
(list ghc-polyparse ghc-old-locale ghc-old-time))
(arguments
`(#:cabal-revision ("1"
"1f8jzs8zdh4wwbcq8fy6qqxkv75ypnvsm4yzw49wpr3b9vpnzlha")))
(home-page "https://projects.haskell.org/cpphs/")
(synopsis "Liberalised re-implementation of cpp, the C pre-processor")
(description "Cpphs is a re-implementation of the C pre-processor that is
@ -170,14 +164,14 @@ unlit literate code files; and an option to turn off macro-expansion.")
(define-public darcs
(package
(name "darcs")
(version "2.16.4")
(version "2.16.5")
(source
(origin
(method url-fetch)
(uri (hackage-uri "darcs" version))
(sha256
(base32
"07dygwh6p4fsrlgxmq6r7yvxmf4n2y04izzd30jzqgs0pi9645p4"))
"0ar4markr71l9hzrbgcz4q37cf2rf3936i6qi8p827p36v96qg6n"))
(modules '((guix build utils)))
;; Remove time-dependent code for reproducibility.
(snippet
@ -203,57 +197,50 @@ unlit literate code files; and an option to turn off macro-expansion.")
(add-before 'configure 'update-constraints
(lambda _
(substitute* "darcs.cabal"
(("(constraints)\\s+[^,]+" all dep)
dep)
(("(cryptonite)\\s+[^,]+" all dep)
(("(attoparsec|base|bytestring|constraints|cryptonite|hashable|memory|regex-tdfa|time)\\s+[^,]+" all dep)
dep)))))))
(inputs
(list ghc-cmdargs
ghc-split
ghc-test-framework-quickcheck2
ghc-test-framework-hunit
ghc-test-framework
ghc-quickcheck
ghc-constraints
ghc-findbin
ghc-hunit
ghc-cryptonite
ghc-http-conduit
ghc-http-types
ghc-async
ghc-attoparsec
ghc-base16-bytestring
ghc-bytestring-builder
ghc-cryptohash
ghc-data-ordlist
ghc-fgl
ghc-system-filepath
ghc-graphviz
ghc-hashable
ghc-html
ghc-mmap
ghc-old-time
ghc-random
ghc-regex-applicative
ghc-regex-compat-tdfa
ghc-sandi
ghc-shelly
ghc-tar
ghc-transformers-compat
ghc-unix-compat
ghc-utf8-string
ghc-vector
ghc-zip-archive
ghc-zlib
ghc-http
curl
ghc
ncurses
perl
ghc-network
ghc-network-uri))
(native-inputs
(list pkg-config))
(inputs (list ghc-regex-base
ghc-regex-tdfa
ghc-regex-applicative
ghc-fgl
ghc-html
ghc-memory
ghc-cryptonite
ghc-base16-bytestring
ghc-utf8-string
ghc-vector
ghc-tar
ghc-data-ordlist
ghc-attoparsec
ghc-zip-archive
ghc-async
ghc-constraints
ghc-unix-compat
ghc-old-time
ghc-temporary
ghc-hashable
ghc-mmap
ghc-zlib
ghc-network-uri
ghc-network
ghc-conduit
ghc-http-conduit
ghc-http-types
curl))
(native-inputs (list ghc-cmdargs
ghc-findbin
ghc-quickcheck
ghc-leancheck
ghc-hunit
ghc-test-framework
ghc-test-framework-hunit
ghc-test-framework-quickcheck2
ghc-test-framework-leancheck
ghc-monad-control
ghc-system-filepath
ghc-system-fileio
ghc-transformers-base
pkg-config))
(home-page "http://darcs.net")
(synopsis "Distributed Revision Control System")
(description
@ -509,36 +496,39 @@ used to keep a folder in sync between computers.")
(define-public hlint
(package
(name "hlint")
(version "3.2.7")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hlint" version))
(sha256
(base32
"0z6gxndrh7blzapkdn6fq1pkbkjlmbgjbq9ydnvy2wm00fb3v73g"))))
(version "3.4.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "hlint" version))
(sha256
(base32
"0bkk03c9hacvfd73dk89g4r81b50g7pjgw5pavldali4qwss34cz"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hlint")))
(inputs
(list ghc-unordered-containers
ghc-yaml
ghc-vector
ghc-data-default
ghc-file-embed
ghc-utf8-string
cpphs
ghc-filepattern
ghc-lib-parser-ex
hscolour
ghc-cmdargs
ghc-uniplate
ghc-ansi-terminal
ghc-extra
ghc-refact
ghc-aeson))
(home-page "https://github.com/ndmitchell/hlint")
(inputs (list ghc-unordered-containers
ghc-vector
ghc-file-embed
ghc-utf8-string
ghc-data-default
cpphs
ghc-cmdargs
ghc-uniplate
ghc-ansi-terminal
ghc-extra
ghc-refact
ghc-aeson
ghc-deriving-aeson
ghc-filepattern
ghc-lib-parser-ex
hscolour
ghc-yaml))
(arguments
`(#:cabal-revision ("1"
"1rdaffg5n179yfcn5zjwjb0bki09qy13gz2ijky455y9pbaz8yz9")))
(home-page "https://github.com/ndmitchell/hlint#readme")
(synopsis "Suggest improvements for Haskell source code")
(description "HLint reads Haskell programs and suggests changes that
(description
"HLint reads Haskell programs and suggests changes that
hopefully make them easier to read. HLint also makes it easy to disable
unwanted suggestions, and to add your own custom suggestions.")
(license license:bsd-3)))
@ -546,50 +536,50 @@ unwanted suggestions, and to add your own custom suggestions.")
(define-public hoogle
(package
(name "hoogle")
(version "5.0.18.2")
(source
(origin
(method url-fetch)
(uri
(hackage-uri "hoogle" version))
(sha256
(base32
"1xacx2f33x1a4qlv25f8rlmb4wi0cjfzrj22nlnkrd0knghik3m7"))))
(version "5.0.18.3")
(source (origin
(method url-fetch)
(uri (hackage-uri "hoogle" version))
(sha256
(base32
"0v6k75w0an9pqgb7a6cicnpf9rz77xd2lmxfbafc5l4f99jg83bn"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hoogle")))
(inputs
(list ghc-quickcheck
ghc-aeson
ghc-blaze-html
ghc-blaze-markup
ghc-cmdargs
ghc-conduit
ghc-conduit-extra
ghc-connection
ghc-extra
ghc-foundation
ghc-old-locale
ghc-haskell-src-exts
ghc-http-conduit
ghc-http-types
ghc-js-flot
ghc-js-jquery
ghc-mmap
ghc-process-extras
ghc-resourcet
ghc-storable-tuple
ghc-tar
ghc-uniplate
ghc-utf8-string
ghc-vector
ghc-wai
ghc-wai-logger
ghc-warp
ghc-warp-tls
ghc-zlib))
(inputs (list ghc-quickcheck
ghc-aeson
ghc-blaze-html
ghc-blaze-markup
ghc-cmdargs
ghc-conduit
ghc-conduit-extra
ghc-connection
ghc-extra
ghc-foundation
ghc-old-locale
ghc-hashable
ghc-haskell-src-exts
ghc-http-conduit
ghc-http-types
ghc-js-flot
ghc-js-jquery
ghc-mmap
ghc-process-extras
ghc-resourcet
ghc-storable-tuple
ghc-tar
ghc-uniplate
ghc-utf8-string
ghc-vector
ghc-wai
ghc-wai-logger
ghc-warp
ghc-warp-tls
ghc-zlib
ghc-semigroups))
(home-page "https://hoogle.haskell.org/")
(synopsis "Haskell API Search")
(description "Hoogle is a Haskell API search engine, which allows
(description
"Hoogle is a Haskell API search engine, which allows
you to search many standard Haskell libraries by either function name,
or by approximate type signature.")
(license license:bsd-3)))
@ -617,90 +607,89 @@ and mIRC chat codes.")
(license license:bsd-3)))
(define-public kmonad
(package
(name "kmonad")
(version "0.4.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/david-janssen/kmonad")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1rp880zxvrznx0y1k464wjrds441dpsz94syhrkaw5dnmxf74yjd"))))
(build-system haskell-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'haddock) ; Haddock fails to generate docs
(add-after 'install 'install-udev-rules
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(rules (string-append out "/lib/udev/rules.d")))
(mkdir-p rules)
(call-with-output-file (string-append rules "/70-kmonad.rules")
(lambda (port)
(display
(string-append
"KERNEL==\"uinput\", MODE=\"0660\", "
"GROUP=\"input\", OPTIONS+=\"static_node=uinput\"\n")
port)))
#t)))
(add-after 'install-udev-rules 'install-documentation
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/kmonad-" ,version)))
(install-file "README.md" doc)
(copy-recursively "doc" doc)
(copy-recursively "keymap" (string-append doc "/keymap"))
#t))))))
(inputs
(list ghc-cereal
ghc-exceptions
ghc-hashable
ghc-lens
ghc-megaparsec
ghc-optparse-applicative
ghc-resourcet
ghc-rio
ghc-unagi-chan
ghc-unliftio
ghc-unordered-containers))
(home-page "https://github.com/david-janssen/kmonad")
(synopsis "Advanced keyboard manager")
(description "KMonad is a keyboard remapping utility that supports
;; Project is active, but no new releases exist. Pick current master
;; HEAD as of 2023-01-08.
(let ((commit "a0af5b8b3f085adb2c09ca52374a53566c25194c")
(revision "1"))
(package
(name "kmonad")
(version (git-version "0.4.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/david-janssen/kmonad")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "00qmmk1lgadhh32dqi530xm18v79ndcm7rrxvdsf827vicv2nhw1"))))
(build-system haskell-build-system)
(arguments
`(#:haddock? #f ; Haddock fails to generate docs
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-git-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/KMonad/Args/TH.hs"
(("\"git\"")
(string-append "\"" (search-input-file inputs "/bin/git") "\"")))))
(add-after 'install 'install-udev-rules
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(rules (string-append out "/lib/udev/rules.d")))
(mkdir-p rules)
(call-with-output-file (string-append rules "/70-kmonad.rules")
(lambda (port)
(display
(string-append
"KERNEL==\"uinput\", MODE=\"0660\", "
"GROUP=\"input\", OPTIONS+=\"static_node=uinput\"\n")
port)))
#t)))
(add-after 'install-udev-rules 'install-documentation
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/kmonad-" ,version)))
(install-file "README.md" doc)
(copy-recursively "doc" doc)
(copy-recursively "keymap" (string-append doc "/keymap"))
#t))))))
(inputs
(list ghc-cereal
ghc-exceptions
ghc-lens
ghc-megaparsec
ghc-optparse-applicative
ghc-resourcet
ghc-rio
ghc-unliftio
ghc-unordered-containers
ghc-template-haskell))
(native-inputs (list ghc-hspec hspec-discover git))
(home-page "https://github.com/david-janssen/kmonad")
(synopsis "Advanced keyboard manager")
(description "KMonad is a keyboard remapping utility that supports
advanced functionality, such as custom keymap layers and modifiers, macros,
and conditional mappings that send a different keycode when tapped or held.
By operating at a lower level than most similar tools, it supports X11,
Wayland, and Linux console environments alike.")
(license license:expat)))
(license license:expat))))
(define-public nixfmt
(package
(name "nixfmt")
(version "0.4.0")
(version "0.5.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "nixfmt" version))
(sha256
(base32 "1ispgl8rc2scr6v8bb6sks7px856jf61x74zj2iyddrn5qamkb3n"))))
(base32 "0rxi8zrd2xr72w673nvgnhb0g3r7rssc1ahlhz8rmdpc6c1a82wl"))))
(build-system haskell-build-system)
(properties '((upstream-name . "nixfmt")))
(inputs
(list ghc-megaparsec ghc-parser-combinators ghc-cmdargs
ghc-safe-exceptions))
(arguments
`(#:cabal-revision
("1" "1hsj0jh6siph3afd9c2wii09sffl48rzqv653n4clpd8qy0rn48d")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'update-constraints
(lambda _
(substitute* "nixfmt.cabal"
(("(base|megaparsec)\\s+[^,]+" all dep)
dep)))))))
(home-page "https://github.com/serokell/nixfmt")
(synopsis "Opinionated formatter for Nix")
(description
@ -711,16 +700,16 @@ formatting by forgetting all existing formatting during parsing.")
(define-public greenclip
(package
(name "greenclip")
(version "3.4")
(version "4.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/erebe/greenclip")
(commit version)))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1baw360dcnyavacf7a8v6wq4m5g6bcmyybkckv4cz7r4xl5p3qws"))))
(base32 "10r485q055ci29fmpsjy55n1yqfil53cvdxldlzw2n6mpynmckyv"))))
(build-system haskell-build-system)
(native-inputs
(list pkg-config))
@ -734,6 +723,7 @@ formatting by forgetting all existing formatting during parsing.")
ghc-microlens
ghc-microlens-mtl
ghc-protolude
ghc-tomland
ghc-vector
ghc-wordexp))
(home-page "https://github.com/erebe/greenclip")
@ -929,34 +919,31 @@ output, stderr, and exit status.")
(define-public stylish-haskell
(package
(name "stylish-haskell")
(version "0.13.0.0")
(source
(origin
(method url-fetch)
(uri
(hackage-uri "stylish-haskell" version))
(sha256
(base32
"0x9w3zh1lzp6l5xj3mynnlr0fzb5mbv0wwpfxp8fr6bk0jcrzjwf"))))
(version "0.14.3.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "stylish-haskell" version))
(sha256
(base32
"17w92v0qnwj7m6yqdq5cxbr04xiz0yfnnyx5q54218wdl7n5lf6d"))))
(build-system haskell-build-system)
(properties '((upstream-name . "stylish-haskell")))
(inputs
(list ghc-aeson
ghc-file-embed
ghc-haskell-src-exts
ghc-semigroups
ghc-syb
ghc-hsyaml
ghc-hsyaml-aeson
ghc-lib-parser
ghc-strict
ghc-optparse-applicative
ghc-hunit
ghc-test-framework
ghc-test-framework-hunit))
(home-page "https://github.com/jaspervdj/stylish-haskell")
(inputs (list ghc-aeson
ghc-file-embed
ghc-regex-tdfa
ghc-syb
ghc-hsyaml-aeson
ghc-hsyaml
ghc-semigroups
ghc-lib-parser-ex
ghc-strict
ghc-optparse-applicative))
(native-inputs (list ghc-hunit ghc-random ghc-test-framework
ghc-test-framework-hunit))
(home-page "https://github.com/haskell/stylish-haskell")
(synopsis "Haskell code prettifier")
(description "Stylish-haskell is a Haskell code prettifier. The goal is
(description
"Stylish-haskell is a Haskell code prettifier. The goal is
not to format all of the code in a file, to avoid \"getting in the way\".
However, this tool can e.g. clean up import statements and help doing various
tasks that get tedious very quickly. It can

View File

@ -90,25 +90,19 @@ Haskell test framework.")
(define-public ghc-tasty-quickcheck
(package
(name "ghc-tasty-quickcheck")
(version "0.10.1.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-quickcheck" version))
(sha256
(base32
"0i1i78587znqzwps49milyr5n2k388ld2kr9ysz1vw8gcw51qq49"))))
(version "0.10.2")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-quickcheck" version))
(sha256
(base32
"1qnc6rdvjvlw08q6sln2n98rvj0s0pp689h6w4z58smjbn0lr25l"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-quickcheck")))
(inputs
(list ghc-quickcheck
ghc-tagged
ghc-tasty
ghc-random
ghc-ansi-terminal
ghc-tasty-hunit
ghc-pcre-light))
(home-page "http://documentup.com/feuerbach/tasty")
(inputs (list ghc-tagged ghc-tasty ghc-random ghc-quickcheck
ghc-optparse-applicative))
(native-inputs (list ghc-tasty-hunit ghc-pcre-light))
(home-page "https://github.com/UnkindPartition/tasty")
(synopsis "QuickCheck support for the Tasty test framework")
(description "This package provides QuickCheck support for the Tasty
Haskell test framework.")
@ -117,26 +111,23 @@ Haskell test framework.")
(define-public ghc-tasty-golden
(package
(name "ghc-tasty-golden")
(version "2.3.4")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-golden" version))
(sha256
(base32
"1nskavqgfxx1cw7q6c0cmizlwj54rnlv93yhgssaa77gv1nbvwpn"))))
(version "2.3.5")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-golden" version))
(sha256
(base32
"03klnxn9rcv0l7fl4w8q6s59fzl1328j1wzwi1za4gb0l90vadwb"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-golden")))
(inputs
(list ghc-async
ghc-optparse-applicative
ghc-tagged
ghc-tasty
ghc-temporary
ghc-unix-compat))
(inputs (list ghc-tasty
ghc-typed-process
ghc-optparse-applicative
ghc-temporary
ghc-tagged
ghc-async))
(native-inputs (list ghc-tasty-hunit))
(home-page
"https://github.com/feuerbach/tasty-golden")
(home-page "https://github.com/UnkindPartition/tasty-golden")
(synopsis "Golden tests support for tasty")
(description
"This package provides support for @code{golden testing}. A @dfn{golden
@ -148,28 +139,20 @@ contains the correct result for the test.")
(define-public ghc-tasty
(package
(name "ghc-tasty")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty" version))
(sha256
(base32
"0574hbqzxzyv6vsk5kzbf04kz58y0iy8x9ydcj4b8fpncgmgy63g"))))
(version "1.4.3")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty" version))
(sha256
(base32
"006bf4gyc30i2gvb17hj1mzrh1kwnwf7l050x3f72wi6c2axl87l"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty")))
(inputs
(list ghc-tagged
ghc-regex-tdfa
ghc-optparse-applicative
ghc-unbounded-delays
ghc-async
ghc-ansi-terminal
ghc-clock-bootstrap
ghc-wcwidth-bootstrap))
(home-page "http://documentup.com/feuerbach/tasty")
(inputs (list ghc-tagged ghc-optparse-applicative ghc-ansi-terminal))
(home-page "https://github.com/UnkindPartition/tasty")
(synopsis "Modern and extensible testing framework")
(description "Tasty is a modern testing framework for Haskell. It lets
(description
"Tasty is a modern testing framework for Haskell. It lets
you combine your unit tests, golden tests, QuickCheck/SmallCheck properties,
and any other types of tests into a single test suite.")
(license license:expat)))
@ -177,23 +160,21 @@ and any other types of tests into a single test suite.")
(define-public ghc-tasty-hedgehog
(package
(name "ghc-tasty-hedgehog")
(version "1.1.0.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-hedgehog" version))
(sha256
(base32
"0cy49z8n124xh2ra2482vfy5if1n6d9lbdjma2zg1mxfj0k0zyfb"))))
(version "1.3.1.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-hedgehog" version))
(sha256
(base32
"1iq452mvd9wc9pfmjsmm848jwp3cvsk1faf2mlr21vcs0yaxvq3m"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-hedgehog")))
(inputs
(list ghc-tagged ghc-tasty ghc-hedgehog))
(native-inputs
(list ghc-tasty-expected-failure))
(inputs (list ghc-tagged ghc-tasty ghc-hedgehog))
(native-inputs (list ghc-tasty-expected-failure))
(home-page "https://github.com/qfpl/tasty-hedgehog")
(synopsis "Integration for tasty and hedgehog")
(description "This package provides the means for integrating the
(description
"This package provides the means for integrating the
@url{https://hackage.haskell.org/package/hedgehog, hedgehog testing library}
with the @url{https://hackage.haskell.org/package/tasty, tasty testing
framework}.")
@ -202,31 +183,27 @@ framework}.")
(define-public ghc-tasty-hspec
(package
(name "ghc-tasty-hspec")
(version "1.1.6")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-hspec" version))
(sha256
(base32
"02s82ijs2ringqxsqbm7m3vcy5brmwxa617azxv0v2phi3rdkjvl"))))
(version "1.2.0.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-hspec" version))
(sha256
(base32
"0ibl2xi6mmqad2mriz67nb7pjwwvjik385amp24j9kc7a7zkx091"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-hspec")))
(inputs
(list ghc-hspec
ghc-hspec-core
ghc-quickcheck
ghc-tagged
ghc-tasty
ghc-tasty-smallcheck
ghc-tasty-quickcheck))
(inputs (list ghc-hspec
ghc-hspec-core
ghc-quickcheck
ghc-tasty
ghc-tasty-smallcheck
ghc-tasty-quickcheck
ghc-tagged))
(arguments
`(#:cabal-revision
("1" "0za15rg0szacxq9yfxxjzddr77ai7ng5827a20pj9dr5anjlnajj")))
(home-page
"https://github.com/mitchellwrosen/tasty-hspec")
(synopsis
"Hspec support for the Tasty test framework")
`(#:cabal-revision ("1"
"0a6r4gzxzp6n90z0nif7ha7p7am57hs48i54i2y4z9kgjv6lnvll")))
(home-page "https://github.com/mitchellwrosen/tasty-hspec")
(synopsis "Hspec support for the Tasty test framework")
(description
"This package provides a Tasty provider for Hspec test suites.")
(license license:bsd-3)))
@ -276,21 +253,23 @@ tasty.")
(define-public ghc-tasty-lua
(package
(name "ghc-tasty-lua")
(version "0.2.3.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-lua" version))
(sha256
(base32
"0wa73ihkjcxi50lgpdzwwdx7s903lqi79hw7hxlvhbcvdly1cq53"))))
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-lua" version))
(sha256
(base32
"1vnyvgcjsvqhwwyqkbgqksr9ppj5whiihpwcqkg33sl7jj3ysdwv"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-lua")))
(inputs
(list ghc-file-embed ghc-hslua ghc-tasty))
(native-inputs
(list ghc-tasty-hunit))
(home-page "https://github.com/hslua/tasty-lua")
(inputs (list ghc-hslua-core
ghc-hslua-marshalling
ghc-lua-arbitrary
ghc-tasty
ghc-quickcheck
ghc-file-embed))
(native-inputs (list ghc-tasty-hunit))
(home-page "https://github.com/hslua/hslua")
(synopsis "Write tests in Lua, integrate into tasty")
(description "This package gives users the ability to define tasty tests
from Lua.")
@ -335,6 +314,9 @@ test-framework.")
(inputs
(list ghc-optparse-applicative ghc-reducers ghc-split ghc-tagged
ghc-tasty))
(arguments
`(#:cabal-revision ("3"
"0091arn90cx5rzn5n2bpb9alzybwraf9yj7hb0bwdfyamzpf3pkb")))
(home-page "https://github.com/ocharles/tasty-rerun")
(synopsis "Run tests by filtering the test tree")
(description "This package adds the ability to run tests by filtering the
@ -376,37 +358,35 @@ development.")
(define-public ghc-quickcheck-instances
(package
(name "ghc-quickcheck-instances")
(version "0.3.25.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "quickcheck-instances" version))
(sha256
(base32
"0ihqbarl2ddrfgq3mq09lswwn8213qpw13g49qxs5mjkcm6gbk3h"))))
(version "0.3.28")
(source (origin
(method url-fetch)
(uri (hackage-uri "quickcheck-instances" version))
(sha256
(base32
"1jycijv7gaj6qrkp219nllrdv9zd0ifp0mb0rch430fm95xin4f4"))))
(build-system haskell-build-system)
(properties '((upstream-name . "quickcheck-instances")))
(arguments
`(#:cabal-revision
("2" "1lsa3pbg4ljlk29fhm3mdklnx3hwffyga1nr5krbpcyc3ywq8fq8")))
(inputs
(list ghc-case-insensitive
ghc-data-fix
ghc-hashable
ghc-integer-logarithms
ghc-old-time
ghc-quickcheck
ghc-scientific
ghc-splitmix
ghc-strict
ghc-tagged
ghc-these
ghc-time-compat
ghc-transformers-compat
ghc-unordered-containers
ghc-uuid-types
ghc-vector))
(home-page "https://github.com/aslatter/qc-instances")
(inputs (list ghc-quickcheck
ghc-splitmix
ghc-case-insensitive
ghc-data-fix
ghc-hashable
ghc-integer-logarithms
ghc-old-time
ghc-onetuple
ghc-primitive
ghc-scientific
ghc-strict
ghc-tagged
ghc-these
ghc-time-compat
ghc-transformers-compat
ghc-unordered-containers
ghc-uuid-types
ghc-vector
ghc-text-short))
(home-page "https://github.com/haskellari/qc-instances")
(synopsis "Common quickcheck instances")
(description "This package provides QuickCheck instances for types
provided by the Haskell Platform.")
@ -521,8 +501,8 @@ HUnit.")
`(#:tests? #f ; FIXME: Tests do not build.
#:cabal-revision
("6" "0wbq9wiaag69nsqxwijzhs5y1hb9kbpkp1x65dvx158cxp8i9w9r")))
(native-inputs
(list ghc-hunit ghc-quickcheck))
;(native-inputs
; (list ghc-hunit ghc-quickcheck))
(inputs
`(("ghc-ansi-terminal" ,ghc-ansi-terminal)
("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
@ -673,19 +653,17 @@ JUnit tool for Java.")
(define-public hspec-discover
(package
(name "hspec-discover")
(version "2.7.10")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-discover" version))
(sha256
(base32
"13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa"))))
(version "2.9.7")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec-discover" version))
(sha256
(base32
"0536kdxjw6p8b6gcwvmr22jbmb6cgzbddi0fkd01b2m847z37sb5"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-discover")))
(native-inputs
(list ghc-quickcheck ghc-hspec-meta))
(home-page "https://hspec.github.io/")
(native-inputs (list ghc-quickcheck ghc-hspec-meta ghc-mockery-bootstrap))
(home-page "http://hspec.github.io/")
(synopsis "Automatically discover and run Hspec tests")
(description "hspec-discover is a tool which automatically discovers and
runs Hspec tests.")
@ -694,28 +672,28 @@ runs Hspec tests.")
(define-public ghc-hspec-core
(package
(name "ghc-hspec-core")
(version "2.7.10")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-core" version))
(sha256
(base32
"12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1"))))
(version "2.9.7")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec-core" version))
(sha256
(base32
"040rzqiqwkp373jjpij8lkmv08pp2ya92zzcf95bw8px215rp08n"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-core")))
(arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
(inputs
(list ghc-setenv
ghc-ansi-terminal
ghc-clock
ghc-quickcheck-io
ghc-hunit
ghc-quickcheck
ghc-hspec-expectations
ghc-silently
ghc-tf-random))
(home-page "https://hspec.github.io/")
(inputs (list ghc-hunit
ghc-quickcheck
ghc-ansi-terminal
ghc-call-stack
ghc-clock
ghc-hspec-expectations
ghc-quickcheck-io
ghc-random
ghc-setenv
ghc-tf-random))
(native-inputs (list ghc-base-orphans-bootstrap ghc-hspec-meta
ghc-silently-bootstrap ghc-temporary))
(home-page "http://hspec.github.io/")
(synopsis "Testing framework for Haskell")
(description "This library exposes internal types and functions that can
be used to extend Hspec's functionality.")
@ -724,26 +702,23 @@ be used to extend Hspec's functionality.")
(define-public ghc-hspec-meta
(package
(name "ghc-hspec-meta")
(version "2.7.8")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-meta" version))
(sha256
(base32
"0sfj0n2hy1r8ifysgbcmfdygcd7vyzr13ldkcp0l2ml337f8j0si"))))
(version "2.9.3")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec-meta" version))
(sha256
(base32
"1raxwpsmcijl3x2h5naw6aydhbiknxvhj3x7v384bi1rqi51ainm"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-meta")))
(inputs
(list ghc-quickcheck
ghc-hunit
ghc-ansi-terminal
ghc-clock
ghc-hspec-expectations
ghc-setenv
ghc-random
ghc-quickcheck-io))
(home-page "https://hspec.github.io/")
(inputs (list ghc-quickcheck
ghc-ansi-terminal
ghc-call-stack-boot
ghc-clock
ghc-quickcheck-io
ghc-random
ghc-setenv))
(home-page "http://hspec.github.io/")
(synopsis "Version of Hspec to test Hspec itself")
(description "This library provides a stable version of Hspec which is
used to test the in-development version of Hspec.")
@ -752,26 +727,18 @@ used to test the in-development version of Hspec.")
(define-public ghc-hspec
(package
(name "ghc-hspec")
(version "2.7.10")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec" version))
(sha256
(base32
"0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw"))))
(version "2.9.7")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec" version))
(sha256
(base32
"092sfqjkargxxszp9jjqa8ldjz0xv34jwn6k21q59ys5ckvsrpc1"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec")))
(outputs '("out" "static" "doc"))
(inputs
(list ghc-hspec-core
hspec-discover
ghc-hspec-expectations
ghc-quickcheck
ghc-hunit
ghc-stringbuilder
ghc-hspec-meta))
(home-page "https://hspec.github.io/")
(inputs (list ghc-quickcheck ghc-hspec-core hspec-discover
ghc-hspec-expectations))
(home-page "http://hspec.github.io/")
(synopsis "Testing Framework for Haskell")
(description "This library provides the Hspec testing framework for
Haskell, inspired by the Ruby library RSpec.")
@ -780,23 +747,21 @@ Haskell, inspired by the Ruby library RSpec.")
(define-public ghc-hspec-contrib
(package
(name "ghc-hspec-contrib")
(version "0.5.1")
(version "0.5.1.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec-contrib" version))
(sha256
(base32
"0hhzxaa3fxz5mk5qcsrnfr98a7bn3szx2ydgr0x9mbqmm1jg06rc"))))
"1nyb5n2jiq920yyf3flzyxrs5xpfyppl3jn18zhviyysjjk5drpx"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-contrib")))
(inputs
(list ghc-hspec-core ghc-hunit ghc-hspec ghc-quickcheck))
(native-inputs
(list hspec-discover))
(home-page "https://hspec.github.io/")
(inputs (list ghc-hunit ghc-hspec-core))
(native-inputs (list ghc-quickcheck ghc-hspec hspec-discover))
(arguments (list #:tests? #f)) ; Tests fail to compile.
(home-page "http://hspec.github.io/")
(synopsis "Contributed functionality for Hspec")
(description
"This package provides contributed Hspec extensions.")
(description "This package provides contributed Hspec extensions.")
(license license:expat)))
(define-public ghc-hspec-expectations
@ -834,8 +799,8 @@ Haskell, inspired by the Ruby library RSpec.")
"1rcmhl9bhyfvanalnf1r86wkx6rq6wdvagnw1h011jcnnb1cq56g"))))
(build-system haskell-build-system)
(properties '((upstream-name . "nanospec")))
(inputs
(list ghc-hspec ghc-silently))
(inputs (list ghc-silently-bootstrap))
(native-inputs (list ghc-hspec))
(home-page "https://github.com/hspec/nanospec#readme")
(synopsis "Lightweight implementation of a subset of Hspec's API")
(description
@ -843,6 +808,14 @@ Haskell, inspired by the Ruby library RSpec.")
minimal dependencies.")
(license license:expat)))
(define-public ghc-nanospec-bootstrap
(package
(inherit ghc-nanospec)
(name "ghc-nanospec-bootstrap")
(arguments '(#:tests? #f))
(native-inputs '())
(properties '((hidden? #t)))))
(define-public ghc-crypto-cipher-tests
(package
(name "ghc-crypto-cipher-tests")
@ -874,31 +847,29 @@ implementations of cryptographic ciphers.")
(define-public ghc-hedgehog
(package
(name "ghc-hedgehog")
(version "1.0.5")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hedgehog" version))
(sha256
(base32
"1qsqs8lmxa3wmw228cwi98vvvh9hqbc9d43i1sy2c9igw9xlhfi6"))))
(version "1.1.2")
(source (origin
(method url-fetch)
(uri (hackage-uri "hedgehog" version))
(sha256
(base32
"0dbk75hk6hqpzkjdlpw3s63qhm42kqigij33p321by6xndb59jg1"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hedgehog")))
(inputs
(list ghc-ansi-terminal
ghc-async
ghc-concurrent-output
ghc-erf
;("ghc-exceptions" ,ghc-exceptions)
ghc-lifted-async
ghc-mmorph
ghc-monad-control
ghc-pretty-show
ghc-primitive
ghc-random
ghc-resourcet
ghc-transformers-base
ghc-wl-pprint-annotated))
(inputs (list ghc-ansi-terminal
ghc-async
ghc-barbies
ghc-concurrent-output
ghc-erf
ghc-lifted-async
ghc-mmorph
ghc-monad-control
ghc-pretty-show
ghc-primitive
ghc-random
ghc-resourcet
ghc-transformers-base
ghc-wl-pprint-annotated))
(home-page "https://hedgehog.qa")
(synopsis "Property-based testing in the spirt of QuickCheck")
(description
@ -910,23 +881,30 @@ To get started quickly, see the examples:
@uref{https://github.com/hedgehogqa/haskell-hedgehog/tree/master/hedgehog-example}")
(license license:bsd-3)))
;; Deprecated. Dont use.
(define-public cabal-doctest
(package
(name "cabal-doctest")
(version "1.0.8")
(source
(origin
(method url-fetch)
(uri (hackage-uri "cabal-doctest" version))
(sha256
(base32
"03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0"))))
(version "1.0.9")
(source (origin
(method url-fetch)
(uri (hackage-uri "cabal-doctest" version))
(sha256
(base32
"0wxs0xkspc80h0g8ks792lrzldxvcnhc9rja1j0k678ijs20hmjm"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cabal-doctest")))
(arguments
`(#:cabal-revision
("2" "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb")))
(home-page "https://github.com/phadej/cabal-doctest")
`(#:cabal-revision ("2"
"0868js0qgfhvmyw4hjzrvmlzyqsm8dfsbmqhybxb90x44xi3r0i1")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'update-constraints
(lambda _
(substitute* "cabal-doctest.cabal"
(("\\b(Cabal|base)\\s+[^,]+" all dep)
dep)))))))
(home-page "https://github.com/haskellari/cabal-doctest")
(synopsis "Setup.hs helper for running doctests")
(description
"To properly work, the @code{doctest} package needs plenty of
@ -934,6 +912,10 @@ configuration. This library provides the common bits for writing custom
@file{Setup.hs} files.")
(license license:bsd-3)))
;; Deprecated. Dont use.
(define-public ghc-cabal-doctest
(deprecated-package "ghc-cabal-doctest" cabal-doctest))
(define-public ghc-testing-type-modifiers
(package
(name "ghc-testing-type-modifiers")
@ -959,22 +941,20 @@ testing frameworks.")
(define-public ghc-testing-feat
(package
(name "ghc-testing-feat")
(version "1.1.0.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "testing-feat" version))
(sha256
(base32
"1v2qzzpf1s008g7q6q67glf7vbm1pkpq4rc3ii74f4g6vhfx610r"))))
(version "1.1.1.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "testing-feat" version))
(sha256
(base32
"14d6licgrkiw36xj1cshnqxcbx5iwzxwq731xlb1wb5n2sw8ijf2"))))
(build-system haskell-build-system)
(properties '((upstream-name . "testing-feat")))
(inputs
(list ghc-quickcheck ghc-size-based ghc-testing-type-modifiers
ghc-semigroups))
(home-page "https://github.com/JonasDuregard/testing-feat")
(inputs (list ghc-quickcheck ghc-size-based ghc-testing-type-modifiers))
(home-page "https://github.com/size-based/testing-feat")
(synopsis "Functional Enumeration of Algebraic Types")
(description "Feat (Functional Enumeration of Algebraic Types)
(description
"Feat (Functional Enumeration of Algebraic Types)
provides enumerations as functions from natural numbers to
values (similar to @code{toEnum} but for any algebraic data type). This
can be used for SmallCheck-style systematic testing, QuickCheck-style
@ -984,18 +964,16 @@ random testing, and hybrids of the two.")
(define-public ghc-inspection-testing
(package
(name "ghc-inspection-testing")
(version "0.4.6.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "inspection-testing" version))
(sha256
(base32
"0qz1npyycj4bvyly9xmjbnhw569l52h38gx02rk0r7zhapw83aig"))))
(version "0.4.6.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "inspection-testing" version))
(sha256
(base32
"0mxff0v3ciccbk4b8kxnh4752fzbwn7213qd8xji0csv6gi2w83y"))))
(build-system haskell-build-system)
(properties '((upstream-name . "inspection-testing")))
(home-page
"https://github.com/nomeata/inspection-testing")
(home-page "https://github.com/nomeata/inspection-testing")
(synopsis "GHC plugin to do inspection testing")
(description
"Some carefully crafted libraries make promises to their users beyond
@ -1133,6 +1111,9 @@ these constraints more cleanly.")
(properties '((upstream-name . "doctest-exitcode-stdio")))
(inputs
(list ghc-doctest-lib ghc-quickcheck ghc-semigroups))
(arguments
`(#:cabal-revision ("1"
"1065s8bch6zhl6mc8nhvfpwd1irmjd04z7xgycbpihc14x4ijim3")))
(home-page "https://hub.darcs.net/thielema/doctest-exitcode-stdio/")
(synopsis "Run Doctests in a @code{Cabal.Test.exitcode-stdio} environment")
(description
@ -1140,55 +1121,33 @@ these constraints more cleanly.")
environment.")
(license license:bsd-3)))
(define-public ghc-cabal-doctest
(package
(name "ghc-cabal-doctest")
(version "1.0.8")
(source
(origin
(method url-fetch)
(uri (hackage-uri "cabal-doctest" version))
(sha256
(base32 "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cabal-doctest")))
(arguments
`(#:cabal-revision
("2" "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb")))
(home-page "https://github.com/phadej/cabal-doctest")
(synopsis "@file{Setup.hs} helper for Doctests running")
(description
"This package provides helpers for running Doctests in @file{Setup.hs}.")
(license license:bsd-3)))
(define-public ghc-tasty-silver
(package
(name "ghc-tasty-silver")
(version "3.2.3")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-silver" version))
(sha256
(base32 "0nvh2k8iqqkanmp7lpwd3asimyarzisly8wavbdahcxryn0j4xb7"))))
(version "3.3.1.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-silver" version))
(sha256
(base32
"13j0zs0ciijv9q2nncna1gbgsgw2g7xc228hzmqic1750n3ybz9m"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-silver")))
(inputs
(list ghc-ansi-terminal
ghc-async
ghc-optparse-applicative
ghc-process-extras
ghc-regex-tdfa
ghc-semigroups
ghc-tagged
ghc-tasty
ghc-temporary))
(native-inputs
(list ghc-tasty-hunit ghc-silently))
(inputs (list ghc-ansi-terminal
ghc-async
ghc-optparse-applicative
ghc-process-extras
ghc-regex-tdfa
ghc-silently
ghc-tagged
ghc-tasty
ghc-temporary
ghc-semigroups))
(native-inputs (list ghc-tasty-hunit))
(home-page "https://github.com/phile314/tasty-silver")
(synopsis "Fancy test runner, including support for golden tests")
(description
"This package provides a fancy test runner and support for @dfn{golden
"This package provides a fancy test runner and support for @dfn{golden
testing}. A golden test is an IO action that writes its result to a file. To
pass the test, this output file should be identical to the corresponding
``golden'' file, which contains the correct result for the test. The test
@ -1196,3 +1155,22 @@ runner allows filtering tests using regexes, and to interactively inspect the
result of golden tests.")
(license license:expat)))
(define-public ghc-tasty-inspection-testing
(package
(name "ghc-tasty-inspection-testing")
(version "0.1.0.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-inspection-testing" version))
(sha256
(base32
"0p46w44f19w7lvdzyg3vq6qzix0rjp8p23ilxz82dviq38lgmifp"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-inspection-testing")))
(inputs (list ghc-inspection-testing ghc-tasty))
(home-page "https://github.com/Bodigrim/tasty-inspection-testing")
(synopsis "Inspection testing support for tasty")
(description
"Integrate @@inspection-testing@@ into @@tasty@@ test suites.")
(license license:expat)))

View File

@ -27,6 +27,7 @@
#:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls)
#:use-module (guix build-system haskell)
#:use-module (guix download)
@ -209,25 +210,24 @@ that hides the C implementation.")
(define-public ghc-cryptohash-sha1
(package
(name "ghc-cryptohash-sha1")
(version "0.11.100.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "cryptohash-sha1" version))
(sha256
(base32
"1aqdxdhxhl9jldh951djpwxx8z7gzaqspxl7iwpl84i5ahrsyy9w"))))
(version "0.11.101.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "cryptohash-sha1" version))
(sha256
(base32
"0h9jl9v38gj0vnscqx7xdklk634p05fa6z2pcvknisq2mnbjq154"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cryptohash-sha1")))
(arguments
`(#:cabal-revision
("6" "10rpxrmqgwihmplczglwxf5q3l13z9j3kvi065z884y4dymmnkgc")
#:tests? #f)) ; tests require old version of ghc-hunit (0.9)
(native-inputs (list ghc-base16-bytestring ghc-sha ghc-tasty
ghc-tasty-quickcheck ghc-hunit))
ghc-tasty-quickcheck ghc-tasty-hunit))
(arguments
`(#:cabal-revision ("1"
"0bz9rfl7b2iwn45m0lxcmsyi5rrv3xdgzx2lzr79bds91dw6i25b")))
(home-page "https://github.com/hvr/cryptohash-sha1")
(synopsis "SHA-1 implementation for Haskell")
(description "This Haskell package provides an incremental and one-pass,
(description
"This Haskell package provides an incremental and one-pass,
pure API to the @uref{https://en.wikipedia.org/wiki/SHA-1, SHA-1 hash algorithm},
including @uref{https://en.wikipedia.org/wiki/HMAC, HMAC support}, with
performance close to the fastest implementations available in other languages.
@ -270,23 +270,18 @@ the C implementation.")
(define-public ghc-cryptonite
(package
(name "ghc-cryptonite")
(version "0.29")
(version "0.30")
(source (origin
(method url-fetch)
(uri (hackage-uri "cryptonite" version))
(sha256
(base32
"13xhp3hshb8x06bw37kp16c9jpjmgfn06nkj9drz745fv8f04fnq"))))
"07bb97iszhnrfddh5ql6p3dqd0c13xycjw5n2kljw7d0ia59q2an"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cryptonite")))
;; FIXME: tests are broken.
;; See https://github.com/haskell-crypto/cryptonite/issues/260
(arguments '(#:tests? #f))
(outputs '("out" "static" "doc"))
(inputs
(list ghc-basement ghc-memory ghc-byteable))
(native-inputs
(list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit ghc-tasty-kat))
(inputs (list ghc-memory ghc-basement))
(native-inputs (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit
ghc-tasty-kat))
(home-page "https://github.com/haskell-crypto/cryptonite")
(synopsis "Cryptography primitives")
(description
@ -299,24 +294,21 @@ generators, and more.")
(define-public ghc-digest
(package
(name "ghc-digest")
(version "0.0.1.3")
(source
(origin
(method url-fetch)
(uri (hackage-uri "digest" version))
(sha256
(base32
"1l5383l5pvp018rj3vabrppnzcqrr2g0dvgvmsrbjdn02wzab5jm"))))
(version "0.0.1.4")
(source (origin
(method url-fetch)
(uri (hackage-uri "digest" version))
(sha256
(base32
"05pc5l4bwddszc6vy1hazwi1dnrxg323521gdkis9cvh7zs2a4gr"))))
(build-system haskell-build-system)
(properties '((upstream-name . "digest")))
(arguments
`(#:extra-directories ("zlib")))
(inputs
(list zlib))
(home-page
"https://hackage.haskell.org/package/digest")
(synopsis
"Various cryptographic hashes for bytestrings")
(inputs (list zlib))
(native-inputs (list pkg-config))
(home-page "http://hackage.haskell.org/package/digest")
(synopsis "Various cryptographic hashes for bytestrings")
(description
"This package provides efficient cryptographic hash implementations for
strict and lazy bytestrings. For now, CRC32 and Adler32 are supported; they
@ -326,13 +318,13 @@ are implemented as FFI bindings to efficient code from zlib.")
(define-public ghc-entropy
(package
(name "ghc-entropy")
(version "0.4.1.6")
(source
(origin
(method url-fetch)
(uri (hackage-uri "entropy" version))
(sha256
(base32 "0qmzz0zgad13zl0kjrxz6cxg8ckn2w8saas2a2j72vbafpzmkixd"))))
(version "0.4.1.10")
(source (origin
(method url-fetch)
(uri (hackage-uri "entropy" version))
(sha256
(base32
"1rbx4ydabrjs8kkdg9laznkh9nisiq6b5z93vnp9bh6iy59ivb45"))))
(build-system haskell-build-system)
(properties '((upstream-name . "entropy")))
(home-page "https://github.com/TomMD/entropy")
@ -418,26 +410,24 @@ libraries, like OpenSSL.")
(define-public ghc-x509
(package
(name "ghc-x509")
(version "1.7.5")
(version "1.7.7")
(source (origin
(method url-fetch)
(uri (hackage-uri "x509" version))
(sha256
(base32
"1j67c35g8334jx7x32hh6awhr43dplp0qwal5gnlkmx09axzrc5i"))))
"1zk8lll1hmzl5xvrd16dhyz25151y59xhsqp2mm1wgymwl7r5ijr"))))
(build-system haskell-build-system)
(properties '((upstream-name . "x509")))
(inputs
(list ghc-memory
ghc-hourglass
ghc-pem
ghc-asn1-types
ghc-asn1-encoding
ghc-asn1-parse
ghc-cryptonite))
(native-inputs
(list ghc-tasty ghc-tasty-quickcheck))
(home-page "https://github.com/vincenthz/hs-certificate")
(inputs (list ghc-memory
ghc-hourglass
ghc-pem
ghc-asn1-types
ghc-asn1-encoding
ghc-asn1-parse
ghc-cryptonite))
(native-inputs (list ghc-tasty ghc-tasty-quickcheck))
(home-page "http://github.com/vincenthz/hs-certificate")
(synopsis "X509 reader and writer")
(description
"This library provides functions to read and write X509 certificates.")
@ -446,21 +436,19 @@ libraries, like OpenSSL.")
(define-public ghc-x509-store
(package
(name "ghc-x509-store")
(version "1.6.7")
(version "1.6.9")
(source (origin
(method url-fetch)
(uri (hackage-uri "x509-store" version))
(sha256
(base32
"1y8yyr1i95jkllg8k0z54k5v4vachp848clc07m33xpxidn3b1lp"))))
"1nn8ql7vkp4qgf2msm600sr6ranpsajbhq0sc4c0l6pk1i9174n5"))))
(build-system haskell-build-system)
(properties '((upstream-name . "x509-store")))
(inputs
(list ghc-pem ghc-asn1-types ghc-asn1-encoding ghc-cryptonite
ghc-x509))
(native-inputs
(list ghc-tasty ghc-tasty-hunit))
(home-page "https://github.com/vincenthz/hs-certificate")
(inputs (list ghc-pem ghc-asn1-types ghc-asn1-encoding ghc-cryptonite
ghc-x509))
(native-inputs (list ghc-tasty ghc-tasty-hunit))
(home-page "http://github.com/vincenthz/hs-certificate")
(synopsis "X.509 collection accessing and storing methods")
(description
"This package provides functions for accessing and storing X.509
@ -470,29 +458,26 @@ collections, certificates, revocation lists, and exception lists.")
(define-public ghc-x509-validation
(package
(name "ghc-x509-validation")
(version "1.6.11")
(version "1.6.12")
(source (origin
(method url-fetch)
(uri (hackage-uri "x509-validation" version))
(sha256
(base32
"16yihzljql3z8w5rgdl95fv3hgk7yd86kbl9b3glllsark5j2hzr"))))
"1j7is28ljz4yxwxz5ax3x7ykgwkr38dx46bw7vgj4arkk7hl93hd"))))
(build-system haskell-build-system)
(properties '((upstream-name . "x509-validation")))
(inputs
(list ghc-memory
ghc-byteable
ghc-hourglass
ghc-data-default-class
ghc-pem
ghc-asn1-types
ghc-asn1-encoding
ghc-x509
ghc-x509-store
ghc-cryptonite))
(native-inputs
(list ghc-tasty ghc-tasty-hunit))
(home-page "https://github.com/vincenthz/hs-certificate")
(inputs (list ghc-memory
ghc-hourglass
ghc-data-default-class
ghc-pem
ghc-asn1-types
ghc-asn1-encoding
ghc-x509
ghc-x509-store
ghc-cryptonite))
(native-inputs (list ghc-tasty ghc-tasty-hunit))
(home-page "http://github.com/vincenthz/hs-certificate")
(synopsis "X.509 certificate and revocation list validation")
(description
"This package provides functions for X.509 certificate and revocation
@ -502,18 +487,17 @@ list validation.")
(define-public ghc-x509-system
(package
(name "ghc-x509-system")
(version "1.6.6")
(version "1.6.7")
(source (origin
(method url-fetch)
(uri (hackage-uri "x509-system" version))
(sha256
(base32
"06a4m9c7vlr9nhp9gmqbb46arf0yj1dkdm4nip03hzy67spdmp20"))))
"049bdaxrih49nkhkyl2342qnbx2f0q99z8rld648bz1kkgyizz38"))))
(build-system haskell-build-system)
(properties '((upstream-name . "x509-system")))
(inputs
(list ghc-pem ghc-x509 ghc-x509-store))
(home-page "https://github.com/vincenthz/hs-certificate")
(inputs (list ghc-pem ghc-x509 ghc-x509-store))
(home-page "http://github.com/vincenthz/hs-certificate")
(synopsis "Handle system X.509 accessors and storage")
(description
"This package provides a library to handle system accessors and storage
@ -654,7 +638,7 @@ percent.
(properties '((upstream-name . "ed25519")))
(arguments
`(#:cabal-revision
("3" "1yidh86ymzwmp2b449pwim6vvfcs1qgkkncbixw1zmb7wj6v167v")
("6" "0qyx6cl52fnll8lp6v9133wfvv3zhvq7v2crn441mng520j9wp48")
;; We omit these test suites because they require old versions of
;; packages and packages we do not have.
#:configure-flags
@ -671,33 +655,30 @@ guidelines.")
(define-public ghc-tls
(package
(name "ghc-tls")
(version "1.5.5")
(version "1.5.8")
(source (origin
(method url-fetch)
(uri (hackage-uri "tls" version))
(sha256
(base32
"0j1rxxq5lzs584nk19610mk7mmsqqkgfxw2qj74ibb1zsk7baj4a"))))
"0rxdv8ab98kd4nqql7djmmi51k4vayq21s38s43sx3rzn0iyla3b"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tls")))
(inputs
(list ghc-cereal
ghc-data-default-class
ghc-memory
ghc-cryptonite
ghc-asn1-types
ghc-asn1-encoding
ghc-x509
ghc-x509-store
ghc-x509-validation
ghc-async
ghc-network
ghc-hourglass))
(native-inputs
(list ghc-tasty ghc-tasty-quickcheck ghc-quickcheck))
(home-page "https://github.com/vincenthz/hs-tls")
(synopsis
"TLS/SSL protocol native implementation (Server and Client)")
(inputs (list ghc-cereal
ghc-data-default-class
ghc-memory
ghc-cryptonite
ghc-asn1-types
ghc-asn1-encoding
ghc-x509
ghc-x509-store
ghc-x509-validation
ghc-async
ghc-hourglass
ghc-network))
(native-inputs (list ghc-tasty ghc-tasty-quickcheck ghc-quickcheck))
(home-page "http://github.com/vincenthz/hs-tls")
(synopsis "TLS/SSL protocol native implementation (Server and Client)")
(description
"Native Haskell TLS and SSL protocol implementation for server and client.
This provides a high-level implementation of a sensitive security protocol,
@ -711,23 +692,22 @@ extensions.")
(define-public ghc-hsopenssl
(package
(name "ghc-hsopenssl")
(version "0.11.7.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "HsOpenSSL" version))
(sha256
(base32
"0ysdfl8ck3nzhx597fa13dqf31jq5gzwajlak6r91jajks9w0dl5"))))
(version "0.11.7.4")
(source (origin
(method url-fetch)
(uri (hackage-uri "HsOpenSSL" version))
(sha256
(base32
"0zxcfa8b0ng97v53vb8fvg2gss89b28xiz83rx38a0h4lsxpn2xf"))))
(build-system haskell-build-system)
(properties '((upstream-name . "HsOpenSSL")))
(inputs (list ghc-network openssl))
(arguments
`(#:extra-directories ("openssl")))
(inputs
(list ghc-network openssl))
(home-page "https://github.com/vshabanov/HsOpenSSL")
(home-page "https://github.com/haskell-cryptography/HsOpenSSL")
(synopsis "Partial OpenSSL binding for Haskell")
(description "HsOpenSSL is an OpenSSL binding for Haskell. It can
(description
"HsOpenSSL is an OpenSSL binding for Haskell. It can
generate RSA and DSA keys, read and write PEM files, generate message
digests, sign and verify messages, encrypt and decrypt messages. It has
also some capabilities of creating SSL clients and servers. This
@ -754,6 +734,9 @@ implementation of SSL.")
(list ghc-hsopenssl ghc-io-streams ghc-network))
(native-inputs
(list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
(arguments
`(#:cabal-revision ("1"
"0vfawnfcjrw29qg1n7k6z6bk4bmnk869gjlr9mxw4mzxgl80b2vp")))
(home-page "https://hackage.haskell.org/package/openssl-streams")
(synopsis "OpenSSL network support for io-streams")
(description "This library contains io-streams routines for secure

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -99,7 +99,7 @@
(add-before 'configure 'update-constraints
(lambda _
(substitute* "idris.cabal"
(("(aeson|ansi-terminal|haskeline|megaparsec|optparse-applicative)\\s+[^,]+" all dep)
(("(aeson|ansi-terminal|bytestring|haskeline|libffi|megaparsec|network|optparse-applicative)\\s+[^,]+" all dep)
dep))))
(add-before 'configure 'set-cc-command
(lambda _

View File

@ -1262,71 +1262,74 @@ assembler, PEG) is less than 1MB.")
(license license:expat)))
(define-public carp
(package
(name "carp")
(version "0.5.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/carp-lang/Carp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"14jdnv0ljqvpr9ych1plfw7hp5q57a8j1bv8h3v345x06z783d07"))))
(build-system haskell-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
;; Carp looks inside the sources checkout to know where to
;; find its core libraries and other files.
;; Carp emits C code and tries to compile it with an external
;; C compiler. On Linux it defaults to Clang.
(add-after 'install 'wrap-programs
(lambda* (#:key inputs #:allow-other-keys)
(define (wrap-carp-program program)
(wrap-program (string-append
#$output "/bin/" program)
`("CARP_DIR" prefix
(#$(package-source this-package)))
`("PATH" prefix
,(list (dirname
(search-input-file inputs "bin/clang"))
(dirname
(search-input-file inputs "bin/ld"))))
`("C_INCLUDE_PATH" prefix
,(list (dirname
(search-input-directory
inputs "include/linux"))
(dirname
(search-input-file
inputs "include/stdlib.h"))))))
(for-each wrap-carp-program
(list "carp"
"carp-header-parse")))))))
(inputs
(list bash-minimal
clang
ghc-blaze-markup
ghc-blaze-html
ghc-split
ghc-ansi-terminal
ghc-cmark
ghc-edit-distance
ghc-hashable
ghc-open-browser
ghc-optparse-applicative))
(native-inputs
(list ghc-hunit))
(home-page "https://carp-lang.org/")
(synopsis "Statically typed Lisp without a garbage collector")
(description
"@code{carp} is a Lisp-like programming language that compiles to
;; Release 0.5.5 does not support GHC 9.2.
(let ((commit "339722325ec607091f6035866ebedea2b69080fe")
(revision "1"))
(package
(name "carp")
(version (git-version "0.5.5" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/carp-lang/Carp")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0w0j3imi4270dsmrh96spsc9xllsk5rrh817l80q1nyay9p53xwd"))))
(build-system haskell-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
;; Carp looks inside the sources checkout to know where to
;; find its core libraries and other files.
;; Carp emits C code and tries to compile it with an external
;; C compiler. On Linux it defaults to Clang.
(add-after 'install 'wrap-programs
(lambda* (#:key inputs #:allow-other-keys)
(define (wrap-carp-program program)
(wrap-program (string-append
#$output "/bin/" program)
`("CARP_DIR" prefix
(#$(package-source this-package)))
`("PATH" prefix
,(list (dirname
(search-input-file inputs "bin/clang"))
(dirname
(search-input-file inputs "bin/ld"))))
`("C_INCLUDE_PATH" prefix
,(list (dirname
(search-input-directory
inputs "include/linux"))
(dirname
(search-input-file
inputs "include/stdlib.h"))))))
(for-each wrap-carp-program
(list "carp"
"carp-header-parse")))))))
(inputs
(list bash-minimal
clang
ghc-blaze-markup
ghc-blaze-html
ghc-split
ghc-ansi-terminal
ghc-cmark
ghc-edit-distance
ghc-hashable
ghc-open-browser
ghc-optparse-applicative))
(native-inputs
(list ghc-hunit))
(home-page "https://carp-lang.org/")
(synopsis "Statically typed Lisp without a garbage collector")
(description
"@code{carp} is a Lisp-like programming language that compiles to
C. It features inferred static typing, macros, automatic memory
management without a garbage collector, a REPL, and straightforward
integration with code written in C.")
(license license:asl2.0)))
(license license:asl2.0))))
(define-public lisp-repl-core-dumper
(package
(name "lisp-repl-core-dumper")

View File

@ -1,29 +0,0 @@
Restore compatibility with newer version of base16-bytestring.
Taken from https://raw.githubusercontent.com/archlinux/svntogit-community/packages/trunk/cabal-install-base16-bytestring1.0.patch
diff --git a/Distribution/Client/HashValue.hs b/Distribution/Client/HashValue.hs
index 54b8aee9e..11e647c1c 100644
--- a/Distribution/Client/HashValue.hs
+++ b/Distribution/Client/HashValue.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
module Distribution.Client.HashValue (
@@ -72,10 +73,14 @@ hashFromTUF (Sec.Hash hashstr) =
--TODO: [code cleanup] either we should get TUF to use raw bytestrings or
-- perhaps we should also just use a base16 string as the internal rep.
case Base16.decode (BS.pack hashstr) of
+#if MIN_VERSION_base16_bytestring(1,0,0)
+ Right hash -> HashValue hash
+ Left _ -> error "hashFromTUF: cannot decode base16"
+#else
(hash, trailing) | not (BS.null hash) && BS.null trailing
-> HashValue hash
_ -> error "hashFromTUF: cannot decode base16 hash"
-
+#endif
-- | Truncate a 32 byte SHA256 hash to
--

View File

@ -1,393 +0,0 @@
From ac9b41eef3c781ce188ded2551f98fe75152e30c Mon Sep 17 00:00:00 2001
From: Oleg Grenrus <oleg.grenrus@iki.fi>
Date: Tue, 14 Apr 2020 11:31:34 +0300
Subject: [PATCH] GHC-8.10 support for 3.2
Includes cherry-picked commits:
- Test cabal-install with GHC-8.10 #6709
- Add GHC-8.10.1 job. Only tests Cabal-the-lib part atm. #6617
Also add topHandler' signature.
---
.docker/validate-8.10.1.dockerfile | 60 ++++++
.github/workflows/artifacts.yml | 6 +-
.github/workflows/bootstrap.yml | 4 +-
.github/workflows/linux.yml | 179 ++++++++++++------
.github/workflows/macos.yml | 40 ++--
.github/workflows/quick-jobs.yml | 4 +-
.github/workflows/windows.yml | 117 +++++++++++-
.../Distribution/PackageDescription/Quirks.hs | 19 +-
Makefile | 4 +
boot/ci-artifacts.template.yml | 6 +-
boot/ci-bootstrap.template.yml | 4 +-
boot/ci-linux.template.yml | 8 +-
boot/ci-macos.template.yml | 7 +-
boot/ci-quick-jobs.template.yml | 4 +-
boot/ci-windows.template.yml | 8 +-
cabal-dev-scripts/src/GenValidate.hs | 33 ++--
Distribution/Client/CmdSdist.hs | 3 +
.../Distribution/Client/FetchUtils.hs | 4 +-
.../Distribution/Client/IndexUtils.hs | 2 +-
Distribution/Client/Sandbox.hs | 5 +-
.../Distribution/Client/TargetSelector.hs | 2 +-
Distribution/Client/Update.hs | 4 +-
.../Distribution/Client/Utils/Json.hs | 13 +-
.../Distribution/Solver/Modular/Assignment.hs | 11 +-
.../Distribution/Solver/Modular/Builder.hs | 10 +-
.../Distribution/Solver/Modular/Index.hs | 6 +-
.../Solver/Modular/IndexConversion.hs | 8 +-
.../Distribution/Solver/Modular/Solver.hs | 12 +-
.../Distribution/Solver/Modular/Validate.hs | 5 +-
bootstrap.sh | 6 +-
cabal-install.cabal | 4 +-
cabal-install.cabal.pp | 4 +-
.../targets/complex/q/q.cabal | 3 +-
cabal-testsuite/cabal-testsuite.cabal | 4 +-
validate.sh | 21 +-
35 files changed, 461 insertions(+), 169 deletions(-)
create mode 100644 .docker/validate-8.10.1.dockerfile
diff --git a/Distribution/Client/CmdSdist.hs b/Distribution/Client/CmdSdist.hs
index 9ce0c80100e..a22317004c4 100644
--- a/Distribution/Client/CmdSdist.hs
+++ b/Distribution/Client/CmdSdist.hs
@@ -237,7 +237,10 @@ packageToSdist verbosity projectRootDir format outputFile pkg = do
(norm NoExec -> nonexec, norm Exec -> exec) <-
listPackageSources verbosity (flattenPackageDescription $ packageDescription pkg) knownSuffixHandlers
+ print $ map snd exec
+ print $ map snd nonexec
let files = nub . sortOn snd $ nonexec ++ exec
+ print files
case format of
SourceList nulSep -> do
diff --git a/Distribution/Client/FetchUtils.hs b/Distribution/Client/FetchUtils.hs
index e9a31a91f84..4e5e581f9ec 100644
--- a/Distribution/Client/FetchUtils.hs
+++ b/Distribution/Client/FetchUtils.hs
@@ -176,8 +176,8 @@ fetchRepoTarball verbosity' repoCtxt repo pkgid = do
verbosity = verboseUnmarkOutput verbosity'
downloadRepoPackage = case repo of
- RepoLocal{..} -> return (packageFile repo pkgid)
- RepoLocalNoIndex{..} -> return (packageFile repo pkgid)
+ RepoLocal{} -> return (packageFile repo pkgid)
+ RepoLocalNoIndex{} -> return (packageFile repo pkgid)
RepoRemote{..} -> do
transport <- repoContextGetTransport repoCtxt
diff --git a/Distribution/Client/IndexUtils.hs b/Distribution/Client/IndexUtils.hs
index a76becc05ba..bf0ff7cf5ba 100644
--- a/Distribution/Client/IndexUtils.hs
+++ b/Distribution/Client/IndexUtils.hs
@@ -634,7 +634,7 @@ withIndexEntries
-> ([IndexCacheEntry] -> IO a)
-> ([NoIndexCacheEntry] -> IO a)
-> IO a
-withIndexEntries _ (RepoIndex repoCtxt repo@RepoSecure{..}) callback _ =
+withIndexEntries _ (RepoIndex repoCtxt repo@RepoSecure{}) callback _ =
repoContextWithSecureRepo repoCtxt repo $ \repoSecure ->
Sec.withIndex repoSecure $ \Sec.IndexCallbacks{..} -> do
-- Incrementally (lazily) read all the entries in the tar file in order,
diff --git a/Distribution/Client/Sandbox.hs b/Distribution/Client/Sandbox.hs
index 66b415d7239..14bad3f2135 100644
--- a/Distribution/Client/Sandbox.hs
+++ b/Distribution/Client/Sandbox.hs
@@ -666,7 +666,7 @@ reinstallAddSourceDeps :: Verbosity
-> FilePath
-> IO WereDepsReinstalled
reinstallAddSourceDeps verbosity configFlags' configExFlags
- installFlags globalFlags sandboxDir = topHandler' $ do
+ installFlags globalFlags sandboxDir = topHandlerWith errorMsg $ do
let sandboxDistPref = sandboxBuildDir sandboxDir
configFlags = configFlags'
{ configDistPref = Flag sandboxDistPref }
@@ -710,7 +710,8 @@ reinstallAddSourceDeps verbosity configFlags' configExFlags
++ "offending packages or recreating the sandbox."
logMsg message rest = debugNoWrap verbosity message >> rest
- topHandler' = topHandlerWith $ \_ -> do
+ errorMsg :: a -> IO WereDepsReinstalled
+ errorMsg _ = do
warn verbosity "Couldn't reinstall some add-source dependencies."
-- Here we can't know whether any deps have been reinstalled, so we have
-- to be conservative.
diff --git a/Distribution/Client/TargetSelector.hs b/Distribution/Client/TargetSelector.hs
index 23d92f580fd..f8f683d9875 100644
--- a/Distribution/Client/TargetSelector.hs
+++ b/Distribution/Client/TargetSelector.hs
@@ -222,7 +222,7 @@ readTargetSelectorsWith :: (Applicative m, Monad m) => DirActions m
-> Maybe ComponentKindFilter
-> [String]
-> m (Either [TargetSelectorProblem] [TargetSelector])
-readTargetSelectorsWith dirActions@DirActions{..} pkgs mfilter targetStrs =
+readTargetSelectorsWith dirActions@DirActions{} pkgs mfilter targetStrs =
case parseTargetStrings targetStrs of
([], usertargets) -> do
usertargets' <- mapM (getTargetStringFileStatus dirActions) usertargets
diff --git a/Distribution/Client/Update.hs b/Distribution/Client/Update.hs
index 52bb1f76c96..8ded78b9d2e 100644
--- a/Distribution/Client/Update.hs
+++ b/Distribution/Client/Update.hs
@@ -73,8 +73,8 @@ updateRepo :: Verbosity -> UpdateFlags -> RepoContext -> Repo -> IO ()
updateRepo verbosity updateFlags repoCtxt repo = do
transport <- repoContextGetTransport repoCtxt
case repo of
- RepoLocal{..} -> return ()
- RepoLocalNoIndex{..} -> return ()
+ RepoLocal{} -> return ()
+ RepoLocalNoIndex{} -> return ()
RepoRemote{..} -> do
downloadResult <- downloadIndex transport verbosity repoRemote repoLocalDir
case downloadResult of
diff --git a/Distribution/Client/Utils/Json.hs b/Distribution/Client/Utils/Json.hs
index 89a13af87a4..01d5753136b 100644
--- a/Distribution/Client/Utils/Json.hs
+++ b/Distribution/Client/Utils/Json.hs
@@ -15,12 +15,9 @@ module Distribution.Client.Utils.Json
)
where
-import Data.Char
-import Data.Int
-import Data.String
-import Data.Word
-import Data.List
-import Data.Monoid
+import Distribution.Client.Compat.Prelude
+
+import Data.Char (intToDigit)
import Data.ByteString.Builder (Builder)
import qualified Data.ByteString.Builder as BB
@@ -135,13 +132,13 @@ encodeArrayBB :: [Value] -> Builder
encodeArrayBB [] = "[]"
encodeArrayBB jvs = BB.char8 '[' <> go jvs <> BB.char8 ']'
where
- go = Data.Monoid.mconcat . intersperse (BB.char8 ',') . map encodeValueBB
+ go = mconcat . intersperse (BB.char8 ',') . map encodeValueBB
encodeObjectBB :: Object -> Builder
encodeObjectBB [] = "{}"
encodeObjectBB jvs = BB.char8 '{' <> go jvs <> BB.char8 '}'
where
- go = Data.Monoid.mconcat . intersperse (BB.char8 ',') . map encPair
+ go = mconcat . intersperse (BB.char8 ',') . map encPair
encPair (l,x) = encodeStringBB l <> BB.char8 ':' <> encodeValueBB x
encodeStringBB :: String -> Builder
diff --git a/Distribution/Solver/Modular/Assignment.hs b/Distribution/Solver/Modular/Assignment.hs
index be5e63bfbc1..b05a099ec5a 100644
--- a/Distribution/Solver/Modular/Assignment.hs
+++ b/Distribution/Solver/Modular/Assignment.hs
@@ -9,10 +9,11 @@ module Distribution.Solver.Modular.Assignment
import Prelude ()
import Distribution.Solver.Compat.Prelude hiding (pi)
-import Data.Array as A
-import Data.List as L
-import Data.Map as M
-import Data.Maybe
+import qualified Data.Array as A
+import qualified Data.List as L
+import qualified Data.Map as M
+
+import Data.Maybe (fromJust)
import Distribution.PackageDescription (FlagAssignment, mkFlagAssignment) -- from Cabal
@@ -79,7 +80,7 @@ toCPs (A pa fa sa) rdm =
-- Dependencies per package.
depp :: QPN -> [(Component, PI QPN)]
depp qpn = let v :: Vertex
- v = fromJust (cvm qpn)
+ v = fromJust (cvm qpn) -- TODO: why this is safe?
dvs :: [(Component, Vertex)]
dvs = tg A.! v
in L.map (\ (comp, dv) -> case vm dv of (_, x, _) -> (comp, PI x (pa M.! x))) dvs
diff --git a/Distribution/Solver/Modular/Builder.hs b/Distribution/Solver/Modular/Builder.hs
index eb11a36aa16..5d196f4fd9f 100644
--- a/Distribution/Solver/Modular/Builder.hs
+++ b/Distribution/Solver/Modular/Builder.hs
@@ -19,10 +19,10 @@ module Distribution.Solver.Modular.Builder (
-- flag-guarded dependencies, we cannot introduce them immediately. Instead, we
-- store the entire dependency.
-import Data.List as L
-import Data.Map as M
-import Data.Set as S
-import Prelude hiding (sequence, mapM)
+import qualified Data.List as L
+import qualified Data.Map as M
+import qualified Data.Set as S
+import Prelude
import qualified Distribution.Solver.Modular.ConflictSet as CS
import Distribution.Solver.Modular.Dependency
@@ -55,7 +55,7 @@ data BuildState = BS {
}
-- | Map of available linking targets.
-type LinkingState = Map (PN, I) [PackagePath]
+type LinkingState = M.Map (PN, I) [PackagePath]
-- | Extend the set of open goals with the new goals listed.
--
diff --git a/Distribution/Solver/Modular/Index.hs b/Distribution/Solver/Modular/Index.hs
index fdddfc8237a..ac60fec7d65 100644
--- a/Distribution/Solver/Modular/Index.hs
+++ b/Distribution/Solver/Modular/Index.hs
@@ -6,10 +6,12 @@ module Distribution.Solver.Modular.Index
, mkIndex
) where
-import Data.List as L
-import Data.Map as M
import Prelude hiding (pi)
+import Data.Map (Map)
+import qualified Data.List as L
+import qualified Data.Map as M
+
import Distribution.Solver.Modular.Dependency
import Distribution.Solver.Modular.Flag
import Distribution.Solver.Modular.Package
diff --git a/Distribution/Solver/Modular/IndexConversion.hs b/Distribution/Solver/Modular/IndexConversion.hs
index c9565c80dba..8e9ef614184 100644
--- a/Distribution/Solver/Modular/IndexConversion.hs
+++ b/Distribution/Solver/Modular/IndexConversion.hs
@@ -2,12 +2,12 @@ module Distribution.Solver.Modular.IndexConversion
( convPIs
) where
-import Data.List as L
+import qualified Data.List as L
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as M
-import Data.Maybe
+import Data.Maybe (mapMaybe, fromMaybe, maybeToList)
import Data.Monoid as Mon
-import Data.Set as S
+import qualified Data.Set as S
import Distribution.Compiler
import Distribution.InstalledPackageInfo as IPI
@@ -330,7 +330,7 @@ flagInfo (StrongFlags strfl) =
-- | Internal package names, which should not be interpreted as true
-- dependencies.
-type IPNs = Set PN
+type IPNs = S.Set PN
-- | Convenience function to delete a 'Dependency' if it's
-- for a 'PN' that isn't actually real.
diff --git a/Distribution/Solver/Modular/Solver.hs b/Distribution/Solver/Modular/Solver.hs
index 32452550556..e6aa1fb4374 100644
--- a/Distribution/Solver/Modular/Solver.hs
+++ b/Distribution/Solver/Modular/Solver.hs
@@ -9,9 +9,9 @@ module Distribution.Solver.Modular.Solver
, PruneAfterFirstSuccess(..)
) where
-import Data.Map as M
-import Data.List as L
-import Data.Set as S
+import qualified Data.Map as M
+import qualified Data.List as L
+import qualified Data.Set as S
import Distribution.Verbosity
import Distribution.Compiler (CompilerInfo)
@@ -91,8 +91,8 @@ solve :: SolverConfig -- ^ solver parameters
-> Index -- ^ all available packages as an index
-> PkgConfigDb -- ^ available pkg-config pkgs
-> (PN -> PackagePreferences) -- ^ preferences
- -> Map PN [LabeledPackageConstraint] -- ^ global constraints
- -> Set PN -- ^ global goals
+ -> M.Map PN [LabeledPackageConstraint] -- ^ global constraints
+ -> S.Set PN -- ^ global goals
-> RetryLog Message SolverFailure (Assignment, RevDepMap)
solve sc cinfo idx pkgConfigDB userPrefs userConstraints userGoals =
explorePhase $
@@ -232,7 +232,7 @@ instance GSimpleTree (Tree d c) where
-- Show conflict set
goCS :: ConflictSet -> String
- goCS cs = "{" ++ (intercalate "," . L.map showVar . CS.toList $ cs) ++ "}"
+ goCS cs = "{" ++ (L.intercalate "," . L.map showVar . CS.toList $ cs) ++ "}"
#endif
-- | Replace all goal reasons with a dummy goal reason in the tree
diff --git a/Distribution/Solver/Modular/Validate.hs b/Distribution/Solver/Modular/Validate.hs
index 6195d101b02..a3dec6e1f67 100644
--- a/Distribution/Solver/Modular/Validate.hs
+++ b/Distribution/Solver/Modular/Validate.hs
@@ -15,11 +15,12 @@ module Distribution.Solver.Modular.Validate (validateTree) where
import Control.Applicative
import Control.Monad.Reader hiding (sequence)
import Data.Function (on)
-import Data.List as L
-import Data.Set as S
import Data.Traversable
import Prelude hiding (sequence)
+import qualified Data.List as L
+import qualified Data.Set as S
+
import Language.Haskell.Extension (Extension, Language)
import Data.Map.Strict as M
diff --git a/bootstrap.sh b/bootstrap.sh
index 077d7f4efd2..d5141660474 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -260,9 +260,9 @@ EDIT_DISTANCE_VER="0.2.2.1"; EDIT_DISTANCE_VER_REGEXP="0\.2\.2\.?"
# 0.2.2.*
ED25519_VER="0.0.5.0"; ED25519_VER_REGEXP="0\.0\.?"
# 0.0.*
-HACKAGE_SECURITY_VER="0.6.0.0"; HACKAGE_SECURITY_VER_REGEXP="0\.6\."
- # >= 0.7.0.0 && < 0.7
-TAR_VER="0.5.1.0"; TAR_VER_REGEXP="0\.5\.([1-9]|1[0-9]|0\.[3-9]|0\.1[0-9])\.?"
+HACKAGE_SECURITY_VER="0.6.0.1"; HACKAGE_SECURITY_VER_REGEXP="0\.6\."
+ # >= 0.6.0.0 && < 0.7
+TAR_VER="0.5.1.1"; TAR_VER_REGEXP="0\.5\.([1-9]|1[0-9]|0\.[3-9]|0\.1[0-9])\.?"
# >= 0.5.0.3 && < 0.6
DIGEST_VER="0.0.1.2"; DIGEST_REGEXP="0\.0\.(1\.[2-9]|[2-9]\.?)"
# >= 0.0.1.2 && < 0.1
diff --git a/cabal-install.cabal b/cabal-install.cabal
index 985ea9a5a69..c9d713c29fe 100644
--- a/cabal-install.cabal
+++ b/cabal-install.cabal
@@ -316,7 +316,7 @@ executable cabal
build-depends:
async >= 2.0 && < 2.3,
array >= 0.4 && < 0.6,
- base >= 4.8 && < 4.14,
+ base >= 4.8 && < 4.15,
base16-bytestring >= 0.1.1 && < 0.2,
binary >= 0.7.3 && < 0.9,
bytestring >= 0.10.6.0 && < 0.11,
@@ -341,7 +341,7 @@ executable cabal
time >= 1.5.0.1 && < 1.10,
transformers >= 0.4.2.0 && < 0.6,
zlib >= 0.5.3 && < 0.7,
- hackage-security >= 0.6.0.0 && < 0.7,
+ hackage-security >= 0.6.0.1 && < 0.7,
text >= 1.2.3 && < 1.3,
parsec >= 3.1.13.0 && < 3.2
diff --git a/tests/IntegrationTests2/targets/complex/q/q.cabal b/tests/IntegrationTests2/targets/complex/q/q.cabal
index 556fa4a4202..7ee22fcb28d 100644
--- a/tests/IntegrationTests2/targets/complex/q/q.cabal
+++ b/tests/IntegrationTests2/targets/complex/q/q.cabal
@@ -5,7 +5,8 @@ cabal-version: >= 1.2
library
exposed-modules: Q
- build-depends: base, filepath
+ -- we rely that filepath has filepath-tests component
+ build-depends: base, filepath >=1.4.0.0
executable buildable-false
main-is: Main.hs

View File

@ -0,0 +1,303 @@
Taken from https://github.com/bos/bloomfilter/pull/20
From fb79b39c44404fd791a3bed973e9d844fb084f1e Mon Sep 17 00:00:00 2001
From: Simon Jakobi <simon.jakobi@gmail.com>
Date: Fri, 12 Nov 2021 01:37:36 +0100
Subject: [PATCH] Fix build with GHC 9.2
The `FastShift.shift{L,R}` methods are replaced with `unsafeShift{L,R}`
introduced in base-4.5.
Fixes #19.
---
Data/BloomFilter.hs | 16 +++++------
Data/BloomFilter/Hash.hs | 15 +++++-----
Data/BloomFilter/Mutable.hs | 20 +++++++-------
Data/BloomFilter/Util.hs | 55 ++++++-------------------------------
bloomfilter.cabal | 2 +-
5 files changed, 34 insertions(+), 74 deletions(-)
diff --git a/Data/BloomFilter.hs b/Data/BloomFilter.hs
index 2210cef..6b47c21 100644
--- a/Data/BloomFilter.hs
+++ b/Data/BloomFilter.hs
@@ -78,8 +78,8 @@ import Control.DeepSeq (NFData(..))
import Data.Array.Base (unsafeAt)
import qualified Data.Array.Base as ST
import Data.Array.Unboxed (UArray)
-import Data.Bits ((.&.))
-import Data.BloomFilter.Util (FastShift(..), (:*)(..))
+import Data.Bits ((.&.), unsafeShiftL, unsafeShiftR)
+import Data.BloomFilter.Util ((:*)(..))
import qualified Data.BloomFilter.Mutable as MB
import qualified Data.BloomFilter.Mutable.Internal as MB
import Data.BloomFilter.Mutable.Internal (Hash, MBloom)
@@ -98,7 +98,7 @@ data Bloom a = B {
}
instance Show (Bloom a) where
- show ub = "Bloom { " ++ show ((1::Int) `shiftL` shift ub) ++ " bits } "
+ show ub = "Bloom { " ++ show ((1::Int) `unsafeShiftL` shift ub) ++ " bits } "
instance NFData (Bloom a) where
rnf !_ = ()
@@ -172,7 +172,7 @@ singleton hash numBits elt = create hash numBits (\mb -> MB.insert mb elt)
-- | Given a filter's mask and a hash value, compute an offset into
-- a word array and a bit offset within that word.
hashIdx :: Int -> Word32 -> (Int :* Int)
-hashIdx mask x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
+hashIdx mask x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
where hashMask = 31 -- bitsInHash - 1
y = fromIntegral x .&. mask
@@ -191,7 +191,7 @@ hashesU ub elt = hashIdx (mask ub) `map` hashes ub elt
-- /still/ some possibility that @True@ will be returned.
elem :: a -> Bloom a -> Bool
elem elt ub = all test (hashesU ub elt)
- where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) /= 0
+ where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) /= 0
modify :: (forall s. (MBloom s a -> ST s z)) -- ^ mutation function (result is discarded)
-> Bloom a
@@ -255,11 +255,11 @@ insertList elts = modify $ \mb -> mapM_ (MB.insert mb) elts
-- is /still/ some possibility that @True@ will be returned.
notElem :: a -> Bloom a -> Bool
notElem elt ub = any test (hashesU ub elt)
- where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) == 0
+ where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) == 0
-- | Return the size of an immutable Bloom filter, in bits.
length :: Bloom a -> Int
-length = shiftL 1 . shift
+length = unsafeShiftL 1 . shift
-- | Build an immutable Bloom filter from a seed value. The seeding
-- function populates the filter as follows.
@@ -318,7 +318,7 @@ fromList hashes numBits = unfold hashes numBits convert
logPower2 :: Int -> Int
logPower2 k = go 0 k
where go j 1 = j
- go j n = go (j+1) (n `shiftR` 1)
+ go j n = go (j+1) (n `unsafeShiftR` 1)
-- $overview
--
diff --git a/Data/BloomFilter/Hash.hs b/Data/BloomFilter/Hash.hs
index 132a3a4..d071fd4 100644
--- a/Data/BloomFilter/Hash.hs
+++ b/Data/BloomFilter/Hash.hs
@@ -38,8 +38,7 @@ module Data.BloomFilter.Hash
) where
import Control.Monad (foldM)
-import Data.Bits ((.&.), (.|.), xor)
-import Data.BloomFilter.Util (FastShift(..))
+import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR, xor)
import Data.List (unfoldr)
import Data.Int (Int8, Int16, Int32, Int64)
import Data.Word (Word8, Word16, Word32, Word64)
@@ -91,11 +90,11 @@ class Hashable a where
-> Word64 -- ^ salt
-> IO Word64
hashIO64 v salt = do
- let s1 = fromIntegral (salt `shiftR` 32) .&. maxBound
+ let s1 = fromIntegral (salt `unsafeShiftR` 32) .&. maxBound
s2 = fromIntegral salt
h1 <- hashIO32 v s1
h2 <- hashIO32 v s2
- return $ (fromIntegral h1 `shiftL` 32) .|. fromIntegral h2
+ return $ (fromIntegral h1 `unsafeShiftL` 32) .|. fromIntegral h2
-- | Compute a 32-bit hash.
hash32 :: Hashable a => a -> Word32
@@ -149,8 +148,8 @@ cheapHashes :: Hashable a => Int -- ^ number of hashes to compute
cheapHashes k v = go 0
where go i | i == j = []
| otherwise = hash : go (i + 1)
- where !hash = h1 + (h2 `shiftR` i)
- h1 = fromIntegral (h `shiftR` 32)
+ where !hash = h1 + (h2 `unsafeShiftR` i)
+ h1 = fromIntegral (h `unsafeShiftR` 32)
h2 = fromIntegral h
h = hashSalt64 0x9150a946c4a8966e v
j = fromIntegral k
@@ -163,7 +162,7 @@ instance Hashable Integer where
(salt `xor` 0x3ece731e)
| otherwise = hashIO32 (unfoldr go k) salt
where go 0 = Nothing
- go i = Just (fromIntegral i :: Word32, i `shiftR` 32)
+ go i = Just (fromIntegral i :: Word32, i `unsafeShiftR` 32)
instance Hashable Bool where
hashIO32 = hashOne32
@@ -224,7 +223,7 @@ instance Hashable Word64 where
-- | A fast unchecked shift. Nasty, but otherwise GHC 6.8.2 does a
-- test and branch on every shift.
div4 :: CSize -> CSize
-div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `shiftR` 2)
+div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `unsafeShiftR` 2)
alignedHash :: Ptr a -> CSize -> Word32 -> IO Word32
alignedHash ptr bytes salt
diff --git a/Data/BloomFilter/Mutable.hs b/Data/BloomFilter/Mutable.hs
index edff1fc..0bb5cc9 100644
--- a/Data/BloomFilter/Mutable.hs
+++ b/Data/BloomFilter/Mutable.hs
@@ -65,9 +65,9 @@ module Data.BloomFilter.Mutable
import Control.Monad (liftM, forM_)
import Control.Monad.ST (ST)
import Data.Array.Base (unsafeRead, unsafeWrite)
-import Data.Bits ((.&.), (.|.))
+import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR)
import Data.BloomFilter.Array (newArray)
-import Data.BloomFilter.Util (FastShift(..), (:*)(..), nextPowerOfTwo)
+import Data.BloomFilter.Util ((:*)(..), nextPowerOfTwo)
import Data.Word (Word32)
import Data.BloomFilter.Mutable.Internal
@@ -86,9 +86,9 @@ new hash numBits = MB hash shft msk `liftM` newArray numElems numBytes
| numBits > maxHash = maxHash
| isPowerOfTwo numBits = numBits
| otherwise = nextPowerOfTwo numBits
- numElems = max 2 (twoBits `shiftR` logBitsInHash)
- numBytes = numElems `shiftL` logBytesInHash
- trueBits = numElems `shiftL` logBitsInHash
+ numElems = max 2 (twoBits `unsafeShiftR` logBitsInHash)
+ numBytes = numElems `unsafeShiftL` logBytesInHash
+ trueBits = numElems `unsafeShiftL` logBitsInHash
shft = logPower2 trueBits
msk = trueBits - 1
isPowerOfTwo n = n .&. (n - 1) == 0
@@ -109,7 +109,7 @@ logBytesInHash = 2 -- logPower2 (sizeOf (undefined :: Hash))
-- | Given a filter's mask and a hash value, compute an offset into
-- a word array and a bit offset within that word.
hashIdx :: Int -> Word32 -> (Int :* Int)
-hashIdx msk x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
+hashIdx msk x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
where hashMask = 31 -- bitsInHash - 1
y = fromIntegral x .&. msk
@@ -125,7 +125,7 @@ insert mb elt = do
let mu = bitArray mb
forM_ (hashesM mb elt) $ \(word :* bit) -> do
old <- unsafeRead mu word
- unsafeWrite mu word (old .|. (1 `shiftL` bit))
+ unsafeWrite mu word (old .|. (1 `unsafeShiftL` bit))
-- | Query a mutable Bloom filter for membership. If the value is
-- present, return @True@. If the value is not present, there is
@@ -135,7 +135,7 @@ elem elt mb = loop (hashesM mb elt)
where mu = bitArray mb
loop ((word :* bit):wbs) = do
i <- unsafeRead mu word
- if i .&. (1 `shiftL` bit) == 0
+ if i .&. (1 `unsafeShiftL` bit) == 0
then return False
else loop wbs
loop _ = return True
@@ -145,7 +145,7 @@ elem elt mb = loop (hashesM mb elt)
-- | Return the size of a mutable Bloom filter, in bits.
length :: MBloom s a -> Int
-length = shiftL 1 . shift
+length = unsafeShiftL 1 . shift
-- | Slow, crummy way of computing the integer log of an integer known
@@ -153,7 +153,7 @@ length = shiftL 1 . shift
logPower2 :: Int -> Int
logPower2 k = go 0 k
where go j 1 = j
- go j n = go (j+1) (n `shiftR` 1)
+ go j n = go (j+1) (n `unsafeShiftR` 1)
-- $overview
--
diff --git a/Data/BloomFilter/Util.hs b/Data/BloomFilter/Util.hs
index 7f695dc..6ade6e5 100644
--- a/Data/BloomFilter/Util.hs
+++ b/Data/BloomFilter/Util.hs
@@ -2,15 +2,11 @@
module Data.BloomFilter.Util
(
- FastShift(..)
- , nextPowerOfTwo
+ nextPowerOfTwo
, (:*)(..)
) where
-import Data.Bits ((.|.))
-import qualified Data.Bits as Bits
-import GHC.Base
-import GHC.Word
+import Data.Bits ((.|.), unsafeShiftR)
-- | A strict pair type.
data a :* b = !a :* !b
@@ -22,46 +18,11 @@ nextPowerOfTwo :: Int -> Int
{-# INLINE nextPowerOfTwo #-}
nextPowerOfTwo n =
let a = n - 1
- b = a .|. (a `shiftR` 1)
- c = b .|. (b `shiftR` 2)
- d = c .|. (c `shiftR` 4)
- e = d .|. (d `shiftR` 8)
- f = e .|. (e `shiftR` 16)
- g = f .|. (f `shiftR` 32) -- in case we're on a 64-bit host
+ b = a .|. (a `unsafeShiftR` 1)
+ c = b .|. (b `unsafeShiftR` 2)
+ d = c .|. (c `unsafeShiftR` 4)
+ e = d .|. (d `unsafeShiftR` 8)
+ f = e .|. (e `unsafeShiftR` 16)
+ g = f .|. (f `unsafeShiftR` 32) -- in case we're on a 64-bit host
!h = g + 1
in h
-
--- | This is a workaround for poor optimisation in GHC 6.8.2. It
--- fails to notice constant-width shifts, and adds a test and branch
--- to every shift. This imposes about a 10% performance hit.
-class FastShift a where
- shiftL :: a -> Int -> a
- shiftR :: a -> Int -> a
-
-instance FastShift Word32 where
- {-# INLINE shiftL #-}
- shiftL (W32# x#) (I# i#) = W32# (x# `uncheckedShiftL#` i#)
-
- {-# INLINE shiftR #-}
- shiftR (W32# x#) (I# i#) = W32# (x# `uncheckedShiftRL#` i#)
-
-instance FastShift Word64 where
- {-# INLINE shiftL #-}
- shiftL (W64# x#) (I# i#) = W64# (x# `uncheckedShiftL64#` i#)
-
- {-# INLINE shiftR #-}
- shiftR (W64# x#) (I# i#) = W64# (x# `uncheckedShiftRL64#` i#)
-
-instance FastShift Int where
- {-# INLINE shiftL #-}
- shiftL (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
- {-# INLINE shiftR #-}
- shiftR (I# x#) (I# i#) = I# (x# `iShiftRA#` i#)
-
-instance FastShift Integer where
- {-# INLINE shiftL #-}
- shiftL = Bits.shiftL
-
- {-# INLINE shiftR #-}
- shiftR = Bits.shiftR
diff --git a/bloomfilter.cabal b/bloomfilter.cabal
index 821a5d7..c621f7f 100644
--- a/bloomfilter.cabal
+++ b/bloomfilter.cabal
@@ -18,7 +18,7 @@ extra-source-files: README.markdown cbits/lookup3.c cbits/lookup3.h
library
build-depends:
array,
- base >= 4.4 && < 5,
+ base >= 4.5 && < 5,
bytestring >= 0.9,
deepseq
exposed-modules: Data.BloomFilter

View File

@ -0,0 +1,67 @@
Taken from https://raw.githubusercontent.com/archlinux/svntogit-community/packages/haskell-bytestring-handle/trunk/ghc9.patch
--- bytestring-handle-0.1.0.6/src/Data/ByteString/Handle/Write.hs.orig 2021-06-21 14:54:12.217134401 +0800
+++ bytestring-handle-0.1.0.6/src/Data/ByteString/Handle/Write.hs 2021-06-21 15:24:01.794796505 +0800
@@ -17,7 +17,7 @@
import GHC.IO.Buffer ( BufferState(..), emptyBuffer, Buffer(..) )
import GHC.IO.BufferedIO ( BufferedIO(..) )
-import GHC.IO.Device ( IODevice(..), IODeviceType(..), SeekMode(..) )
+import GHC.IO.Device ( IODevice(..), IODeviceType(..), SeekMode(..), RawIO(..) )
#if MIN_VERSION_base(4,5,0)
import GHC.IO.Encoding ( getLocaleEncoding )
#else
@@ -138,6 +138,7 @@
seek_base = error "seek_base needs to be updated"
})
modifyIORef (write_size ws) (`max` newSeekPos)
+ pure newSeekPos
tell ws = do
ss <- readIORef (write_seek_state ws)
@@ -152,6 +153,12 @@
devType _ = return RegularFile -- TODO: is this correct?
+instance RawIO WriteState where
+ read _ _ _ _ = return 0
+ readNonBlocking _ _ _ _ = return Nothing
+ write _ _ _ _ = return ()
+ writeNonBlocking _ _ _ _ = return 0
+
ioe_seekOutOfRange :: IO a
ioe_seekOutOfRange =
ioException $ IOError Nothing InvalidArgument ""
--- bytestring-handle-0.1.0.6/src/Data/ByteString/Handle/Read.hs.orig 2021-06-21 14:53:55.433129276 +0800
+++ bytestring-handle-0.1.0.6/src/Data/ByteString/Handle/Read.hs 2021-06-21 15:24:25.998784996 +0800
@@ -24,7 +24,7 @@
, emptyBuffer, isEmptyBuffer, newBuffer, newByteBuffer
, bufferElems, withBuffer, withRawBuffer )
import GHC.IO.BufferedIO ( BufferedIO(..) )
-import GHC.IO.Device ( IODevice(..), IODeviceType(..), SeekMode(..) )
+import GHC.IO.Device ( IODevice(..), IODeviceType(..), SeekMode(..), RawIO(..) )
#if MIN_VERSION_base(4,5,0)
import GHC.IO.Encoding ( getLocaleEncoding )
#else
@@ -155,7 +155,7 @@
(seek_before_length curSeekState)
(fromIntegral (seek_pos curSeekState) + seekPos)
SeekFromEnd -> normalisedSeekState (read_chunks_backwards rs) [] (read_length rs) seekPos
- maybe ioe_seekOutOfRange (writeIORef (read_seek_state rs)) newSeekState
+ maybe ioe_seekOutOfRange (\nss -> writeIORef (read_seek_state rs) nss >> pure (fromIntegral(seek_pos nss))) newSeekState
tell rs = do
ss <- readIORef (read_seek_state rs)
@@ -166,6 +166,12 @@
devType _ = return RegularFile -- TODO: is this correct?
+instance RawIO ReadState where
+ read _ _ _ _ = return 0
+ readNonBlocking _ _ _ _ = return Nothing
+ write _ _ _ _ = return ()
+ writeNonBlocking _ _ _ _ = return 0
+
ioe_seekOutOfRange :: IO a
ioe_seekOutOfRange =
ioException $ IOError Nothing InvalidArgument ""

View File

@ -1,66 +0,0 @@
From 919565adc1216b9d3108b3043e8d307292b37393 Mon Sep 17 00:00:00 2001
From: Luis Pedro Coelho <luis@luispedro.org>
Date: Fri, 7 May 2021 11:42:56 +0800
Subject: [PATCH] BLD Update to LTS-17.10
- Updates the GHC version
- Requires `extra-deps` for `diagrams` package
- Simplifies code for NGLessIO monad as UnliftIO can now be auto-derived
---
NGLess/NGLess/NGError.hs | 8 ++------
stack.yaml | 11 ++++++++---
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/NGLess/NGLess/NGError.hs b/NGLess/NGLess/NGError.hs
index a22e557f..c7eddf5b 100644
--- a/NGLess/NGLess/NGError.hs
+++ b/NGLess/NGLess/NGError.hs
@@ -50,7 +50,8 @@ type NGLess = Either NGError
newtype NGLessIO a = NGLessIO { unwrapNGLessIO :: ResourceT IO a }
deriving (Functor, Applicative, Monad, MonadIO,
- MonadResource, MonadThrow, MonadCatch, MonadMask)
+ MonadResource, MonadThrow, MonadCatch, MonadMask,
+ MonadUnliftIO)
instance MonadError NGError NGLessIO where
@@ -62,11 +63,6 @@ instance PrimMonad NGLessIO where
primitive act = NGLessIO (primitive act)
{-# INLINE primitive #-}
-instance MonadUnliftIO NGLessIO where
- askUnliftIO = NGLessIO $ do
- u <- askUnliftIO
- return $ UnliftIO (\(NGLessIO act) -> unliftIO u act)
-
instance MonadFail NGLessIO where
fail err = throwShouldNotOccur err
diff --git a/stack.yaml b/stack.yaml
index 051d973d..11b65887 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,14 +1,19 @@
# For more information, see: https://github.com/commercialhaskell/stack/blob/release/doc/yaml_configuration.md
-resolver: lts-14.20
+resolver: lts-17.10
compiler-check: newer-minor
# Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
extra-deps:
- git: "https://github.com/ngless-toolkit/interval-to-int"
commit: "78289f6b48d41f7cc48169520ec9b77b050a0029"
-
-
+ - diagrams-core-1.4.2@sha256:47de45658e8a805b7cb7f535e7b093daf7e861604fa3c70e25bd4ef481bf1571,2997
+ - diagrams-lib-1.4.3@sha256:04f77778d4b550d3c8e54440800685f88467bef91075e82e009a8a6f45c51033,8232
+ - diagrams-svg-1.4.3@sha256:36708b0b4cf35507ccf689f1a25f6f81b8f41c2c4c2900793de820f66d4e241c,3181
+ - active-0.2.0.14@sha256:e618aba4a7881eb85dc1585e0a01230af6b4fbab6693931e4a5d0d3a5b184406,1823
+ - dual-tree-0.2.2.1@sha256:9ff31e461d873ae74ba51d93b454c0c4094726d7cb78a0c454394c965e83539d,2830
+ - monoid-extras-0.5.1@sha256:438dbfd7b4dce47d8f0ca577f56caf94bd1e21391afa545cad09fe7cf2e5793d,2333
+ - svg-builder-0.1.1@sha256:22de54d326a6b6912e461e1302edb9108b02aac0b6a6368fcdc3c4a224d487fd,1440
allow-newer: true
# Override default flag values for local packages and extra-deps

View File

@ -2,15 +2,15 @@ This patch is required for xmonad to make use of shared libraries.
Without it, xmonad will not work since we do not (by default) use
statically linked Haskell libraries.
diff -ruN xmonad-0.15-a/src/XMonad/Core.hs xmonad-0.15-b/src/XMonad/Core.hs
--- xmonad-0.15-a/src/XMonad/Core.hs 1969-12-31 19:00:00.000000000 -0500
+++ xmonad-0.15-b/src/XMonad/Core.hs 1969-12-31 19:00:00.000000000 -0500
@@ -681,6 +681,8 @@
compileGHC bin dir errHandle =
runProcess "ghc" ["--make"
, "xmonad.hs"
+ , "-dynamic"
+ , "-fPIC"
, "-i"
, "-ilib"
, "-fforce-recomp"
index 46a0939..5ad4f8f 100644
--- a/src/XMonad/Core.hs
+++ b/src/XMonad/Core.hs
@@ -664,6 +664,8 @@ compile dirs method =
where
ghcArgs = [ "--make"
, "xmonad.hs"
+ , "-dynamic"
+ , "-fPIC"
, "-i" -- only look in @lib@
, "-ilib"
, "-fforce-recomp"

View File

@ -1,16 +0,0 @@
This patch is required for xmonad to make use of shared libraries.
Without it, xmonad will not work since we do not (by default) use
statically linked Haskell libraries.
index 46a0939..5ad4f8f 100644
--- a/src/XMonad/Core.hs
+++ b/src/XMonad/Core.hs
@@ -664,6 +664,8 @@ compile dirs method =
where
ghcArgs = [ "--make"
, "xmonad.hs"
+ , "-dynamic"
+ , "-fPIC"
, "-i" -- only look in @lib@
, "-ilib"
, "-fforce-recomp"

View File

@ -34,79 +34,67 @@
(define-public purescript
(package
(name "purescript")
(version "0.14.5")
(version "0.15.7")
(source
(origin
(method url-fetch)
(uri (hackage-uri "purescript" version))
(sha256
(base32 "06f318hdah076vkviw1ryyg2p0gpbabsp8lbm5x03f2qv92n9j1n"))))
(base32 "1krjkgmxpfqf5a1jqs7qbg6r7ball1464zw6vgrdfzl9057c6l4f"))))
(build-system haskell-build-system)
(properties '((upstream-name . "purescript")))
(inputs
(list ghc-glob
ghc-aeson
ghc-aeson-better-errors
ghc-aeson-pretty
ghc-ansi-terminal
ghc-base-compat
ghc-blaze-html
ghc-bower-json
ghc-boxes
ghc-cborg
ghc-cheapskate
ghc-clock
ghc-cryptonite
ghc-data-ordlist
ghc-dlist
ghc-edit-distance
ghc-file-embed
ghc-fsnotify
ghc-happy
ghc-language-javascript
ghc-lifted-async
ghc-lifted-base
ghc-memory
ghc-microlens-platform
ghc-monad-control
ghc-monad-logger
ghc-network
ghc-parallel
ghc-pattern-arrows
ghc-protolude
ghc-purescript-cst
ghc-regex-tdfa
ghc-safe
ghc-scientific
ghc-semialign
ghc-semigroups
ghc-serialise
ghc-sourcemap
ghc-split
ghc-stringsearch
ghc-syb
ghc-these
ghc-transformers-base
ghc-transformers-compat
ghc-unordered-containers
ghc-utf8-string
ghc-vector
ghc-ansi-wl-pprint
ghc-http-types
ghc-network
ghc-optparse-applicative-0.15.1.0 ; XXX: needs specific version
ghc-wai
ghc-wai-websockets
ghc-warp
ghc-websockets))
(native-inputs
(list ghc-happy
ghc-hunit
ghc-hspec
hspec-discover
ghc-tasty
ghc-tasty-golden
ghc-tasty-hspec))
(inputs (list ghc-aeson
ghc-aeson-better-errors
ghc-ansi-terminal
ghc-blaze-html
ghc-bower-json
ghc-boxes
ghc-cborg
ghc-serialise
ghc-cheapskate
ghc-clock
ghc-cryptonite
ghc-data-ordlist
ghc-dlist
ghc-edit-distance
ghc-file-embed
ghc-glob
ghc-language-javascript
ghc-lens
ghc-lifted-async
ghc-lifted-base
ghc-memory
ghc-monad-control
ghc-monad-logger
ghc-monoidal-containers
ghc-parallel
ghc-pattern-arrows
ghc-protolude
ghc-regex-tdfa
ghc-safe
ghc-scientific
ghc-semigroups
ghc-semialign
ghc-sourcemap
ghc-stringsearch
ghc-these
ghc-transformers-base
ghc-utf8-string
ghc-vector
ghc-witherable
ghc-ansi-wl-pprint
ghc-network
ghc-optparse-applicative
ghc-gitrev))
(native-inputs (list ghc-generic-random
ghc-hspec
ghc-hunit
ghc-newtype
ghc-quickcheck
ghc-regex-base
ghc-split
ghc-typed-process
ghc-happy))
(arguments
`(;; Tests require npm
#:tests? #f
@ -116,7 +104,7 @@
(add-before 'configure 'update-constraints
(lambda _
(substitute* "purescript.cabal"
(("\\b(ansi-terminal|cryptonite|dlist|language-javascript)\\s+[^,]+" all dep)
(("\\b(language-javascript|process)\\s+[^,]+" all dep)
dep)))))))
(home-page "https://www.purescript.org/")
(synopsis "Haskell inspired programming language compiling to JavaScript")
@ -125,39 +113,3 @@
expressive types, inspired by Haskell and compiling to JavaScript.")
(license license:bsd-3)))
(define-public ghc-purescript-cst
(package
(name "ghc-purescript-cst")
(version "0.4.0.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "purescript-cst" version))
(sha256
(base32 "0r3f5lr9lrv9wpgkwj6nyl42lvxryj2lvr1w7ld4gki8ylq24n8g"))))
(build-system haskell-build-system)
(properties '((upstream-name . "purescript-cst")))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'update-constraints
(lambda _
(substitute* "purescript-cst.cabal"
(("\\b(dlist)\\s+[^,]+" all dep)
dep)))))))
(inputs
(list ghc-aeson
ghc-base-compat
ghc-dlist
ghc-microlens
ghc-protolude
ghc-scientific
ghc-semigroups
ghc-serialise
ghc-vector))
(native-inputs (list ghc-happy))
(home-page "https://www.purescript.org/")
(synopsis "PureScript Programming Language Concrete Syntax Tree")
(description
"This package implements parser for the PureScript programming language.")
(license license:bsd-3)))

View File

@ -801,40 +801,26 @@ background wallpaper manager with transparency support, a simple session
manager and a system tray.")
(license license:lgpl2.0)))
(define-public xmonad-next
(define-public xmonad
(package
(name "xmonad-next")
(version "0.17.0")
(synopsis "Tiling window manager")
(name "xmonad")
(version "0.17.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "xmonad" version))
(sha256
(base32
"04qspdz9w6xpw1npcmx2zx0595wc68q985pv4i0hvp32zillvdqy"))
(patches (search-patches "xmonad-next-dynamic-linking.patch"))))
"1apqwyqmc51gamfgsvlanzqqig9qvjss89ibcamhnha1gs1k4jl8"))
(patches (search-patches "xmonad-dynamic-linking.patch"))))
(build-system haskell-build-system)
(properties '((upstream-name . "xmonad")))
(inputs (list ghc-data-default-class ghc-setlocale ghc-x11))
(inputs (list ghc-x11 ghc-data-default-class ghc-setlocale))
(native-inputs (list ghc-quickcheck ghc-quickcheck-classes))
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-xsession
(lambda _
(let ((xsessions (string-append #$output "/share/xsessions")))
(mkdir-p xsessions)
(call-with-output-file (string-append xsessions
"/xmonad.desktop")
(lambda (port)
(format port "~
[Desktop Entry]~@
Name=~a~@
Comment=~a~@
Exec=~a/bin/xmonad~@
Type=Application~%" #$name #$synopsis #$output)))))))))
(home-page "https://xmonad.org")
`(#:cabal-revision ("2"
"1rgwrnyb7kijzl2mqm8ks2nydh37q5vkbg4400rg9n6x13w2r9b3")))
(home-page "http://xmonad.org")
(synopsis "Tiling window manager")
(description
"Xmonad is a tiling window manager for X. Windows are arranged
automatically to tile the screen without gaps or overlap, maximising screen
@ -846,42 +832,16 @@ used on each workspace. Xinerama is fully supported, allowing windows to be
tiled on several screens.")
(license license:bsd-3)))
(define-public xmonad
(package
(inherit xmonad-next)
(name "xmonad")
(version "0.15")
(source (origin
(method url-fetch)
(uri (hackage-uri "xmonad" version))
(sha256
(base32
"0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))
(patches (search-patches "xmonad-dynamic-linking.patch"))))
(inputs
(list ghc-extensible-exceptions
ghc-data-default
ghc-quickcheck
ghc-semigroups
ghc-setlocale
ghc-utf8-string
ghc-x11))
(native-inputs '())
(arguments
`(#:cabal-revision
("1" "0yqh96qqphllr0zyz5j93cij5w2qvf39xxnrb52pz0qz3pywz9wd")
,@(package-arguments xmonad-next)))))
(define-public xmobar
(package
(name "xmobar")
(version "0.44.2")
(version "0.46")
(source (origin
(method url-fetch)
(uri (hackage-uri "xmobar" version))
(sha256
(base32
"0gdphjn5ll5lkb2psdsb34563wsz6g0y2gg3z8cj4jy8lvbbv808"))))
"0glpiq7c0qwfcxnc2flgzj7afm5m1a9ghzwwcq7f8q27m21kddrd"))))
(build-system haskell-build-system)
(properties '((upstream-name . "xmobar")))
(native-inputs
@ -904,6 +864,8 @@ tiled on several screens.")
ghc-timezone-olson
ghc-x11
ghc-x11-xft
ghc-cairo
ghc-pango
libxpm))
(arguments
`(#:configure-flags (list "--flags=all_extensions")
@ -945,53 +907,30 @@ Unlike dmenu, it mangles the input before it presents its choices. In
particular, it displays commonly-chosen options before uncommon ones.")
(license license:bsd-3)))
(define-public ghc-xmonad-contrib-next
(define-public ghc-xmonad-contrib
(package
(name "ghc-xmonad-contrib-next")
(version "0.17.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "xmonad-contrib" version))
(sha256
(base32 "11g1cyfgfvcmz35qhgi9wzxrk3br8m8b7qy3jvph4nnf6aj13wvy"))))
(name "ghc-xmonad-contrib")
(version "0.17.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "xmonad-contrib" version))
(sha256
(base32
"0lwj8xkyaw6h0rv3lz2jdqrwzz7yghfmnhpndygkb3wgyhvq6dxb"))))
(build-system haskell-build-system)
(properties '((upstream-name . "xmonad-contrib")))
(propagated-inputs (list ghc-random ghc-x11 ghc-utf8-string ghc-x11-xft xmonad-next))
(inputs (list ghc-random ghc-x11 xmonad ghc-utf8-string ghc-x11-xft))
(native-inputs (list ghc-quickcheck ghc-hspec))
(home-page "https://xmonad.org")
(arguments
`(#:cabal-revision ("1"
"0dc9nbn0kaw98rgpi1rq8np601zjhdr1y0ydg6yb82wwaqawql6z")))
(home-page "https://xmonad.org/")
(synopsis "Third party extensions for xmonad")
(description
"Third party tiling algorithms, configurations, and scripts to Xmonad, a
tiling window manager for X.")
(license license:bsd-3)))
(define-public ghc-xmonad-contrib
(package
(inherit ghc-xmonad-contrib-next)
(name "ghc-xmonad-contrib")
(version "0.16")
(source
(origin
(method url-fetch)
(uri (hackage-uri "xmonad-contrib" version))
(sha256
(base32 "1pddgkvnbww28wykncc7j0yb0lv15bk7xnnhdcbrwkxzw66w6wmd"))))
(arguments
`(#:cabal-revision
("1" "0vimkby2gq6sgzxzbvz67caba609xqlv2ii2gi8a1cjrnn6ib011")
,@(package-arguments ghc-xmonad-contrib-next)))
(native-inputs '())
(propagated-inputs
(list ghc-old-time
ghc-random
ghc-utf8-string
ghc-extensible-exceptions
ghc-semigroups
ghc-x11
ghc-x11-xft
xmonad))))
(define-public evilwm
(package
(name "evilwm")