Upgrade Haskell packages.
Script-aided bulk change.
parent
9262c14d73
commit
49a320aaa6
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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. Don’t 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. Don’t 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)))
|
||||
|
||||
|
|
|
@ -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
|
@ -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 _
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
--
|
|
@ -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
|
|
@ -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
|
|
@ -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 ""
|
|
@ -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
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
|
@ -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)))
|
||||
|
|
|
@ -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")
|
||||
|
|
Reference in New Issue