[PATCH] Add hledger-web and dependencies.

  • Done
  • quality assurance status badge
Details
2 participants
  • paul
  • Timothy Sample
Owner
unassigned
Submitted by
paul
Severity
normal
P
(address . guix-patches@gnu.org)
2f1f6cef-22b5-8706-076d-bebac71d450d@autistici.org
Dear Guixers,

I'm sending a patch series to add hledger-web, its dependencies and to
update hledger, ghc-hledger-lib and ghc-doctest.

Thank you for your time,

Giacomo
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 01/12] gnu: ghc-doctest: Update to 0.16.3.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-1-goodoldpaul@autistici.org
* gnu/packages/haskell-xyz.scm (ghc-doctest): Update to 0.16.3.
---
gnu/packages/haskell-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 1655b88cb0..67ab4f966f 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -3551,7 +3551,7 @@ Writer monad), where list append quickly becomes too expensive.")
(define-public ghc-doctest
(package
(name "ghc-doctest")
- (version "0.16.2")
+ (version "0.16.3")
(source
(origin
(method url-fetch)
@@ -3561,7 +3561,7 @@ Writer monad), where list append quickly becomes too expensive.")
".tar.gz"))
(sha256
(base32
- "0lk4cjfzi5bx2snfzw1zi06li0gvgz3ckfh2kwa98l7nxfdl39ag"))))
+ "1y1l7aa80qkib1z8lsizgg7fpfdmdwhxvi5m255a42jdkjgn5sfg"))))
(build-system haskell-build-system)
(arguments `(#:tests? #f)) ; FIXME: missing test framework
(inputs
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 02/12] gnu: ghc-yesod-core: Update to 1.6.17.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-2-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-yesod-core): Update to 1.6.17.
---
gnu/packages/haskell-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 9a149187b6..589d2d3e11 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1258,7 +1258,7 @@ avoid any issues with characters.")
(define-public ghc-yesod-core
(package
(name "ghc-yesod-core")
- (version "1.6.16.1")
+ (version "1.6.17")
(source
(origin
(method url-fetch)
@@ -1267,7 +1267,7 @@ avoid any issues with characters.")
"yesod-core-" version ".tar.gz"))
(sha256
(base32
- "0a0yv7wkwvb0n6iia532y9nzrirgnm09pjc8hpm0lx4ff609pgd2"))))
+ "1i31xx9ili9r9il0mqpb04pgnq67rfsfr61pw9xmc163akgdfi4l"))))
(build-system haskell-build-system)
(inputs `(("ghc-wai" ,ghc-wai)
("ghc-extra" ,ghc-extra)
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 03/12] gnu: Add ghc-yesod-test.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-3-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-yesod-test): New variable.
---
gnu/packages/haskell-web.scm | 53 ++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 589d2d3e11..a186779e72 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2024,3 +2024,56 @@ Bower's package manifest file, bower.json.")
Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
@command{hdav}, for command-line operation.")
(license license:gpl3)))
+
+(define-public ghc-yesod-test
+ (package
+ (name "ghc-yesod-test")
+ (version "1.6.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/yesod-test/yesod-test-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0vw6yg5b22a6flbl822z23k0l23as5mmxjcdnj2zgjjv5i713yfx"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-cookie" ,ghc-cookie)
+ ("ghc-hspec-core" ,ghc-hspec-core)
+ ("ghc-html-conduit" ,ghc-html-conduit)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-network" ,ghc-network)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-pretty-show" ,ghc-pretty-show)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-xml-conduit" ,ghc-xml-conduit)
+ ("ghc-xml-types" ,ghc-xml-types)
+ ("ghc-yesod-core" ,ghc-yesod-core)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-yesod-form" ,ghc-yesod-form)
+ ("ghc-unliftio" ,ghc-unliftio)
+ ("ghc-unliftio-core" ,ghc-unliftio-core)))
+ (home-page "http://www.yesodweb.com")
+ (synopsis
+ "Integration testing for WAI/Yesod Applications")
+ (description
+ "This package's main goal is to encourage integration
+and system testing of web applications by making everything
+easy to test. Tests are like browser sessions that
+keep track of cookies and the last visited page. You
+can perform assertions on the content of HTML responses
+using CSS selectors.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 04/12] gnu: Add ghc-wai-app-static.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-4-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-wai-app-static): New variable.
---
gnu/packages/haskell-web.scm | 52 ++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index a186779e72..424a734900 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2077,3 +2077,55 @@ keep track of cookies and the last visited page. You
can perform assertions on the content of HTML responses
using CSS selectors.")
(license license:expat)))
+
+(define-public ghc-wai-app-static
+ (package
+ (name "ghc-wai-app-static")
+ (version "3.1.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/"
+ "wai-app-static/wai-app-static-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "138gd5482psq0wbm8s1az672lksi7vbavq6ayiyjkliivf6xpry8"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-wai" ,ghc-wai)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-old-locale" ,ghc-old-locale)
+ ("ghc-file-embed" ,ghc-file-embed)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-http-date" ,ghc-http-date)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-blaze-markup" ,ghc-blaze-markup)
+ ("ghc-mime-types" ,ghc-mime-types)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-zlib" ,ghc-zlib)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-optparse-applicative"
+ ,ghc-optparse-applicative)
+ ("ghc-warp" ,ghc-warp)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-network" ,ghc-network)
+ ("ghc-temporary" ,ghc-temporary)
+ ("ghc-mockery" ,ghc-mockery)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "1q7zwjasysgbp9rdp75535igd7s6mhi2bnl4pzsn6vbyfw3qnsxd")))
+ (home-page
+ "http://www.yesodweb.com/book/web-application-interface")
+ (synopsis "WAI application for static serving")
+ (description
+ "This package provides a WAI application for static serving
+provides some helper functions and datatypes for use outside of WAI.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 05/12] gnu: Add ghc-cryptonite-conduit.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-5-goodoldpaul@autistici.org
* gnu/packages/haskell-crypto.scm (ghc-cryptonite-conduit): New variable.
---
gnu/packages/haskell-crypto.scm | 39 +++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index c92dec9932..1d56327d29 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -838,3 +838,42 @@ implementation of SSL.")
(description "This library contains io-streams routines for secure
networking using OpenSSL (by way of HsOpenSSL).")
(license license:bsd-3)))
+
+(define-public ghc-cryptonite-conduit
+ (package
+ (name "ghc-cryptonite-conduit")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/cryptonite-conduit/cryptonite-conduit-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-conduit" ,ghc-conduit)
+ ("ghc-conduit-extra" ,ghc-conduit-extra)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-resourcet" ,ghc-resourcet)))
+ (native-inputs
+ `(("ghc-conduit-combinators"
+ ,ghc-conduit-combinators)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz")))
+ (home-page
+ "https://github.com/haskell-crypto/cryptonite-conduit")
+ (synopsis "Cryptonite bridge for conduit")
+ (description
+ "This package provides a conduit version for hash and hmac.")
+ (license license:bsd-3)))
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 06/12] gnu: Add ghc-hjsmin.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-6-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-hjsmin): New variable.
---
gnu/packages/haskell-web.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 424a734900..e00afbaf8c 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2129,3 +2129,35 @@ using CSS selectors.")
"This package provides a WAI application for static serving
provides some helper functions and datatypes for use outside of WAI.")
(license license:expat)))
+
+(define-public ghc-hjsmin
+ (package
+ (name "ghc-hjsmin")
+ (version "0.2.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hjsmin/hjsmin-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1r2p5rjdjr25j3w4s57q5hxw2c3ymw12x7ms18yvglnq2ivr9fc1"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:tests? #f)) ;there are none
+ (inputs
+ `(("ghc-language-javascript"
+ ,ghc-language-javascript)
+ ("ghc-optparse-applicative"
+ ,ghc-optparse-applicative)))
+ (native-inputs `(("ghc-extra" ,ghc-extra)))
+ (home-page "https://github.com/erikd/hjsmin")
+ (synopsis
+ "Haskell implementation of a javascript minifier")
+ (description
+ "This package reduces size of javascript files by stripping
+out extraneous whitespace and other syntactic elements, without
+changing the semantics.")
+ (license license:bsd-3)))
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 07/12] gnu: Add ghc-yesod-static.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-7-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-yesod-static): New variable.
---
gnu/packages/haskell-web.scm | 52 ++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index e00afbaf8c..12cd8a2a0d 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2161,3 +2161,55 @@ provides some helper functions and datatypes for use outside of WAI.")
out extraneous whitespace and other syntactic elements, without
changing the semantics.")
(license license:bsd-3)))
+
+(define-public ghc-yesod-static
+ (package
+ (name "ghc-yesod-static")
+ (version "1.6.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/yesod-static/yesod-static-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "18f5hm9ncvkzl8bkn39cg841z0k5iqs5w45afsyk9y6k98pjd54p"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-async" ,ghc-async)
+ ("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-cryptonite-conduit"
+ ,ghc-cryptonite-conduit)
+ ("ghc-css-text" ,ghc-css-text)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-file-embed" ,ghc-file-embed)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-hjsmin" ,ghc-hjsmin)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-mime-types" ,ghc-mime-types)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-app-static" ,ghc-wai-app-static)
+ ("ghc-yesod-core" ,ghc-yesod-core)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-yesod-test" ,ghc-yesod-test)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-rio" ,ghc-rio)))
+ (home-page "http://www.yesodweb.com/")
+ (synopsis
+ "Static file serving subsite for Yesod")
+ (description
+ "This package provides static file serving
+subsite for Yesod Web Framework.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 08/12] gnu: Add ghc-wai-handler-launch.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-8-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-wai-handler-launch): New variable.
---
gnu/packages/haskell-web.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 12cd8a2a0d..ae923dc6f1 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2213,3 +2213,34 @@ changing the semantics.")
"This package provides static file serving
subsite for Yesod Web Framework.")
(license license:expat)))
+
+(define-public ghc-wai-handler-launch
+ (package
+ (name "ghc-wai-handler-launch")
+ (version "3.0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-handler-launch/wai-handler-launch-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1ifqgyc1ccig5angh5l1iq7vyms4lvi8wzvysg5dw82nml49n02m"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-wai" ,ghc-wai)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-streaming-commons" ,ghc-streaming-commons)
+ ("ghc-async" ,ghc-async)))
+ (home-page
+ "http://hackage.haskell.org/package/wai-handler-launch")
+ (synopsis
+ "Launch a web app in the default browser")
+ (description
+ "This package handles cross-platform launching and inserts
+Javascript code to ping the server. When the server no longer
+receives pings, it shuts down.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 09/12] gnu: Add ghc-wai-cors.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-9-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-wai-cors): New variable.
---
gnu/packages/haskell-web.scm | 44 ++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index ae923dc6f1..fc50f5d333 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2244,3 +2244,47 @@ subsite for Yesod Web Framework.")
Javascript code to ping the server. When the server no longer
receives pings, it shuts down.")
(license license:expat)))
+
+(define-public ghc-wai-cors
+ (package
+ (name "ghc-wai-cors")
+ (version "0.2.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-cors/wai-cors-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "10gv3jjlkcb13031frr818p56v2s0qf6dqjsfpwlhwdxdssvx5r5"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:tests? #f)) ;tests require PhantomJS
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base-unicode-symbols"
+ ,ghc-base-unicode-symbols)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-wai" ,ghc-wai)))
+ (native-inputs
+ `(("ghc-network" ,ghc-network)
+ ("ghc-wai-websockets" ,ghc-wai-websockets)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-websockets" ,ghc-websockets)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-wai-websockets" ,ghc-wai-websockets)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-websockets" ,ghc-websockets)))
+ (home-page
+ "https://github.com/larskuhtz/wai-cors")
+ (synopsis "CORS for WAI")
+ (description
+ "This package provides an implemenation of Cross-Origin
+resource sharing (CORS) for Wai that aims to be compliant with
+@url{http://www.w3.org/TR/cors}.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:32
[PATCH 10/12] gnu: ghc-hledger-lib: Update to 1.19.1.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-10-goodoldpaul@autistici.org
* gnu/packages/haskell-xyz.scm (ghc-hledger-lib): Update to 1.19.1.
[inputs]: Add ghc-aeson, ghc-aeson-pretty, ghc-ansi-terminal, gh-fgl,
ghc-tasty, ghc-tasty-hunit, ghc-timeit.
---
gnu/packages/haskell-xyz.scm | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 67ab4f966f..96e1cb5495 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -5866,7 +5866,7 @@ accessed or modified.")
(define-public ghc-hledger-lib
(package
(name "ghc-hledger-lib")
- (version "1.14.1")
+ (version "1.19.1")
(source
(origin
(method url-fetch)
@@ -5876,10 +5876,12 @@ accessed or modified.")
".tar.gz"))
(sha256
(base32
- "1w6qp01cak6spnpldm01czlm6i5a2alw47w76875l2nagrc4rfp2"))))
+ "0py11011r358nmnvwwkc8mlx6mpy36jm8sqlr4i8ihx3x0zjdgya"))))
(build-system haskell-build-system)
(inputs
- `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-aeson-pretty" ,ghc-aeson-pretty)
+ ("ghc-ansi-terminal" ,ghc-ansi-terminal)
("ghc-base-compat-batteries" ,ghc-base-compat-batteries)
("ghc-blaze-markup" ,ghc-blaze-markup)
("ghc-call-stack" ,ghc-call-stack)
@@ -5890,6 +5892,7 @@ accessed or modified.")
("ghc-decimal" ,ghc-decimal)
("ghc-easytest" ,ghc-easytest)
("ghc-extra" ,ghc-extra)
+ ("ghc-fgl" ,ghc-fgl)
("ghc-file-embed" ,ghc-file-embed)
("ghc-glob" ,ghc-glob)
("ghc-hashtables" ,ghc-hashtables)
@@ -5902,6 +5905,9 @@ accessed or modified.")
("ghc-safe" ,ghc-safe)
("ghc-split" ,ghc-split)
("ghc-tabular" ,ghc-tabular)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-timeit" ,ghc-timeit)
("ghc-uglymemo" ,ghc-uglymemo)
("ghc-utf8-string" ,ghc-utf8-string)))
(native-inputs `(("ghc-doctest" ,ghc-doctest)))
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:33
[PATCH 11/12] gnu: hledger: Update to 1.19.1.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-11-goodoldpaul@autistici.org
* gnu/packages/finance.scm (hledger): Update to 1.19.1.
---
gnu/packages/finance.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index a79c70d1e0..b02d39fa78 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -186,7 +186,7 @@ line client and a client based on Qt.")
(define-public hledger
(package
(name "hledger")
- (version "1.14.2")
+ (version "1.19.1")
(source
(origin
(method url-fetch)
@@ -196,7 +196,7 @@ line client and a client based on Qt.")
".tar.gz"))
(sha256
(base32
- "1si9zqparkdq77yji87lhcsrf11fr3gisqwsv82cabhrhc36x6l4"))))
+ "0wfsyf2q1kf90mj3lxs0m5ghj153axmpkc8xfy12vkz5imnyphfm"))))
(build-system haskell-build-system)
(inputs
`(("ghc-ansi-terminal" ,ghc-ansi-terminal)
--
2.29.2
G
G
Giacomo Leidi wrote on 29 Nov 2020 23:33
[PATCH 12/12] gnu: Add hledger-web.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201129223301.19210-12-goodoldpaul@autistici.org
* gnu/packages/finance.scm (hledger-web): New variable.
---
gnu/packages/finance.scm | 61 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)

Toggle diff (71 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index b02d39fa78..4dee1b8746 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -1648,3 +1648,64 @@ generate a variety of reports from them, and provides a web interface.")
(synopsis "Emacs mode for beancount")
(description
"Emacs-beancount is an Emacs mode for the Beancount accounting tool.")))
+
+(define-public hledger-web
+ (package
+ (name "hledger-web")
+ (version "1.19.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hledger-web/hledger-web-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "03wak0dgxhf7y2mc2az4xcypgz1z1lf65vn6kj98z063pmlwp1b0"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-decimal" ,ghc-decimal)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-blaze-markup" ,ghc-blaze-markup)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-clientsession" ,ghc-clientsession)
+ ("ghc-cmdargs" ,ghc-cmdargs)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-conduit-extra" ,ghc-conduit-extra)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-extra" ,ghc-extra)
+ ("ghc-hjsmin" ,ghc-hjsmin)
+ ("hledger" ,hledger)
+ ("ghc-hledger-lib" ,ghc-hledger-lib)
+ ("ghc-http-client" ,ghc-http-client)
+ ("ghc-http-conduit" ,ghc-http-conduit)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-megaparsec" ,ghc-megaparsec)
+ ("ghc-network" ,ghc-network)
+ ("ghc-shakespeare" ,ghc-shakespeare)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-cors" ,ghc-wai-cors)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-wai-handler-launch"
+ ,ghc-wai-handler-launch)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-yaml" ,ghc-yaml)
+ ("ghc-yesod" ,ghc-yesod)
+ ("ghc-yesod-core" ,ghc-yesod-core)
+ ("ghc-yesod-form" ,ghc-yesod-form)
+ ("ghc-yesod-static" ,ghc-yesod-static)))
+ (home-page "https://hledger.org")
+ (synopsis
+ "Web-based user interface for the hledger accounting system")
+ (description
+ "This package provides a simple web-based user interface for
+the hledger accounting system, providing a more modern UI than
+the command-line or terminal interfaces. It can be used as a local
+single-user UI, or as a multi-user UI for viewing/adding/editing on the web.")
+ (license license:gpl3)))
--
2.29.2
T
T
Timothy Sample wrote on 3 Dec 2020 16:59
Re: [bug#44954] [PATCH] Add hledger-web and dependencies.
(name . paul)(address . goodoldpaul@autistici.org)(address . 44954@debbugs.gnu.org)
875z5iubgk.fsf@ngyro.com
Hi Giacomo,

paul <goodoldpaul@autistici.org> writes:

Toggle quote (3 lines)
> I'm sending a patch series to add hledger-web, its dependencies and to
> update hledger, ghc-hledger-lib and ghc-doctest.

Thanks for the patches!

Currently, we are using GHC 8.6.5 as our main Haskell compiler, and then
following the Stackage LTS Haskell 14.27 package set

Based on that, ghc-doctest, ghc-yesod-test, ghc-wai-app-static,
ghc-yesod-static, ghc-hledger-lib, hledger, and hledger-web are too
recent. Also, strangely, ghc-yesod-core is too old.

This is probably not your fault! On older versions of Guix, using the
“stackage” importer would yield packages for the most recent version of
LTS Haskell. This was fixed about a month ago.

Now the importer will pick the correct versions, and running “guix lint”
on your packages will flag any Haskell version problems.

Would you be willing to fix the versions and send an updated patch
series?


-- Tim
P
(name . Timothy Sample)(address . samplet@ngyro.com)(address . 44954@debbugs.gnu.org)
533e8db8-e14a-1da1-e018-c61000cd6629@autistici.org
Dear Tim,

On 12/3/20 4:59 PM, Timothy Sample wrote:
Toggle quote (25 lines)
> Hi Giacomo,
>
> paul <goodoldpaul@autistici.org> writes:
>
>> I'm sending a patch series to add hledger-web, its dependencies and to
>> update hledger, ghc-hledger-lib and ghc-doctest.
> Thanks for the patches!
>
> Currently, we are using GHC 8.6.5 as our main Haskell compiler, and then
> following the Stackage LTS Haskell 14.27 package set
> <https://www.stackage.org/lts-14.27> for package versions.
>
> Based on that, ghc-doctest, ghc-yesod-test, ghc-wai-app-static,
> ghc-yesod-static, ghc-hledger-lib, hledger, and hledger-web are too
> recent. Also, strangely, ghc-yesod-core is too old.
>
> This is probably not your fault! On older versions of Guix, using the
> “stackage” importer would yield packages for the most recent version of
> LTS Haskell. This was fixed about a month ago.
>
> Now the importer will pick the correct versions, and running “guix lint”
> on your packages will flag any Haskell version problems.
>
> Would you be willing to fix the versions and send an updated patch
> series?
I apologize for this inconvenient, this is definitely my fault since I
imported the packages with

guix import hackage -r hledger-web

I'm not an expert in Haskell so I didn't know about the difference
between Hackage and Stackage and it's repercussions on Guix packaging.

I'm sending an updated patch series to fix the versions.

Thank you for your time,

Giacomo
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 1/9] gnu: ghc-yesod-core: Update to 1.6.17.2.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-1-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-yesod-core): Update to 1.6.17.2.
---
gnu/packages/haskell-web.scm | 57 ++++++++++++++++++++++++++++++++++--
1 file changed, 55 insertions(+), 2 deletions(-)

Toggle diff (81 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 9a149187b6..0571076c49 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1258,7 +1258,7 @@ avoid any issues with characters.")
(define-public ghc-yesod-core
(package
(name "ghc-yesod-core")
- (version "1.6.16.1")
+ (version "1.6.17.2")
(source
(origin
(method url-fetch)
@@ -1267,7 +1267,7 @@ avoid any issues with characters.")
"yesod-core-" version ".tar.gz"))
(sha256
(base32
- "0a0yv7wkwvb0n6iia532y9nzrirgnm09pjc8hpm0lx4ff609pgd2"))))
+ "0rcfksbxnwcpg5qh9vjkddv39q95mx4nxzgix51bbwa128hhzcwf"))))
(build-system haskell-build-system)
(inputs `(("ghc-wai" ,ghc-wai)
("ghc-extra" ,ghc-extra)
@@ -2024,3 +2024,56 @@ Bower's package manifest file, bower.json.")
Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
@command{hdav}, for command-line operation.")
(license license:gpl3)))
+
+(define-public ghc-yesod-test
+ (package
+ (name "ghc-yesod-test")
+ (version "1.6.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/yesod-test/yesod-test-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0vw6yg5b22a6flbl822z23k0l23as5mmxjcdnj2zgjjv5i713yfx"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-cookie" ,ghc-cookie)
+ ("ghc-hspec-core" ,ghc-hspec-core)
+ ("ghc-html-conduit" ,ghc-html-conduit)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-network" ,ghc-network)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-pretty-show" ,ghc-pretty-show)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-xml-conduit" ,ghc-xml-conduit)
+ ("ghc-xml-types" ,ghc-xml-types)
+ ("ghc-yesod-core" ,ghc-yesod-core)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-yesod-form" ,ghc-yesod-form)
+ ("ghc-unliftio" ,ghc-unliftio)
+ ("ghc-unliftio-core" ,ghc-unliftio-core)))
+ (home-page "http://www.yesodweb.com")
+ (synopsis
+ "Integration testing for WAI/Yesod Applications")
+ (description
+ "This package's main goal is to encourage integration
+and system testing of web applications by making everything
+easy to test. Tests are like browser sessions that
+keep track of cookies and the last visited page. You
+can perform assertions on the content of HTML responses
+using CSS selectors.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 2/9] gnu: ghc-yesod-test: Update to 1.6.9.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-2-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-yesod-test): Update to 1.6.9.
---
gnu/packages/haskell-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 0571076c49..f439678acc 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2028,7 +2028,7 @@ Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
(define-public ghc-yesod-test
(package
(name "ghc-yesod-test")
- (version "1.6.10")
+ (version "1.6.9")
(source
(origin
(method url-fetch)
@@ -2038,7 +2038,7 @@ Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
".tar.gz"))
(sha256
(base32
- "0vw6yg5b22a6flbl822z23k0l23as5mmxjcdnj2zgjjv5i713yfx"))))
+ "0v25lqq7hgd5lggnyfd9kamkzd4126rd7vlhc131n253n4by4yak"))))
(build-system haskell-build-system)
(inputs
`(("ghc-hunit" ,ghc-hunit)
--
2.29.2
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 3/9] gnu: Add ghc-wai-app-static.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-3-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-wai-app-static): New variable.
---
gnu/packages/haskell-web.scm | 52 ++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index f439678acc..12ab6ee40f 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2077,3 +2077,55 @@ keep track of cookies and the last visited page. You
can perform assertions on the content of HTML responses
using CSS selectors.")
(license license:expat)))
+
+(define-public ghc-wai-app-static
+ (package
+ (name "ghc-wai-app-static")
+ (version "3.1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/"
+ "wai-app-static/wai-app-static-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "10k6jb450p89r6dgpnwh428gg0wfw2qbx9n126jkvbchcjr1f4v8"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-wai" ,ghc-wai)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-old-locale" ,ghc-old-locale)
+ ("ghc-file-embed" ,ghc-file-embed)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-http-date" ,ghc-http-date)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-blaze-markup" ,ghc-blaze-markup)
+ ("ghc-mime-types" ,ghc-mime-types)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-zlib" ,ghc-zlib)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-optparse-applicative"
+ ,ghc-optparse-applicative)
+ ("ghc-warp" ,ghc-warp)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-network" ,ghc-network)
+ ("ghc-temporary" ,ghc-temporary)
+ ("ghc-mockery" ,ghc-mockery)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "0bkmml30rzifvb7nxddj3pxczk0kniahra19mjn0qrkzy1n5752p")))
+ (home-page
+ "http://www.yesodweb.com/book/web-application-interface")
+ (synopsis "WAI application for static serving")
+ (description
+ "This package provides a WAI application for static serving
+provides some helper functions and datatypes for use outside of WAI.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 4/9] gnu: Add ghc-cryptonite-conduit.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-4-goodoldpaul@autistici.org
* gnu/packages/haskell-crypto.scm (ghc-cryptonite-conduit): New variable.
---
gnu/packages/haskell-crypto.scm | 39 +++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index c92dec9932..1d56327d29 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -838,3 +838,42 @@ implementation of SSL.")
(description "This library contains io-streams routines for secure
networking using OpenSSL (by way of HsOpenSSL).")
(license license:bsd-3)))
+
+(define-public ghc-cryptonite-conduit
+ (package
+ (name "ghc-cryptonite-conduit")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/cryptonite-conduit/cryptonite-conduit-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-conduit" ,ghc-conduit)
+ ("ghc-conduit-extra" ,ghc-conduit-extra)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-resourcet" ,ghc-resourcet)))
+ (native-inputs
+ `(("ghc-conduit-combinators"
+ ,ghc-conduit-combinators)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz")))
+ (home-page
+ "https://github.com/haskell-crypto/cryptonite-conduit")
+ (synopsis "Cryptonite bridge for conduit")
+ (description
+ "This package provides a conduit version for hash and hmac.")
+ (license license:bsd-3)))
--
2.29.2
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 5/9] gnu: Add ghc-hjsmin.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-5-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-hjsmin): New variable.
---
gnu/packages/haskell-web.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 12ab6ee40f..0543e5ac1a 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2129,3 +2129,35 @@ using CSS selectors.")
"This package provides a WAI application for static serving
provides some helper functions and datatypes for use outside of WAI.")
(license license:expat)))
+
+(define-public ghc-hjsmin
+ (package
+ (name "ghc-hjsmin")
+ (version "0.2.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hjsmin/hjsmin-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1r2p5rjdjr25j3w4s57q5hxw2c3ymw12x7ms18yvglnq2ivr9fc1"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:tests? #f)) ;there are none
+ (inputs
+ `(("ghc-language-javascript"
+ ,ghc-language-javascript)
+ ("ghc-optparse-applicative"
+ ,ghc-optparse-applicative)))
+ (native-inputs `(("ghc-extra" ,ghc-extra)))
+ (home-page "https://github.com/erikd/hjsmin")
+ (synopsis
+ "Haskell implementation of a javascript minifier")
+ (description
+ "This package reduces size of javascript files by stripping
+out extraneous whitespace and other syntactic elements, without
+changing the semantics.")
+ (license license:bsd-3)))
--
2.29.2
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 6/9] gnu: Add ghc-yesod-static.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-6-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-yesod-static): New variable.
---
gnu/packages/haskell-web.scm | 52 ++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 0543e5ac1a..0f173f4e9c 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2161,3 +2161,55 @@ provides some helper functions and datatypes for use outside of WAI.")
out extraneous whitespace and other syntactic elements, without
changing the semantics.")
(license license:bsd-3)))
+
+(define-public ghc-yesod-static
+ (package
+ (name "ghc-yesod-static")
+ (version "1.6.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/yesod-static/yesod-static-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1jd0ryfr2vyrwasyvbqmc6j4ngv1lgz78w427f169l7gyl1firxb"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-async" ,ghc-async)
+ ("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-cryptonite-conduit"
+ ,ghc-cryptonite-conduit)
+ ("ghc-css-text" ,ghc-css-text)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-file-embed" ,ghc-file-embed)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-hjsmin" ,ghc-hjsmin)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-mime-types" ,ghc-mime-types)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-app-static" ,ghc-wai-app-static)
+ ("ghc-yesod-core" ,ghc-yesod-core)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-yesod-test" ,ghc-yesod-test)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-rio" ,ghc-rio)))
+ (home-page "http://www.yesodweb.com/")
+ (synopsis
+ "Static file serving subsite for Yesod")
+ (description
+ "This package provides static file serving
+subsite for Yesod Web Framework.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 7/9] gnu: Add ghc-wai-handler-launch.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-7-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-wai-handler-launch): New variable.
---
gnu/packages/haskell-web.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 0f173f4e9c..55c29b4932 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2213,3 +2213,34 @@ changing the semantics.")
"This package provides static file serving
subsite for Yesod Web Framework.")
(license license:expat)))
+
+(define-public ghc-wai-handler-launch
+ (package
+ (name "ghc-wai-handler-launch")
+ (version "3.0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-handler-launch/wai-handler-launch-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1ifqgyc1ccig5angh5l1iq7vyms4lvi8wzvysg5dw82nml49n02m"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-wai" ,ghc-wai)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-streaming-commons" ,ghc-streaming-commons)
+ ("ghc-async" ,ghc-async)))
+ (home-page
+ "http://hackage.haskell.org/package/wai-handler-launch")
+ (synopsis
+ "Launch a web app in the default browser")
+ (description
+ "This package handles cross-platform launching and inserts
+Javascript code to ping the server. When the server no longer
+receives pings, it shuts down.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 8/9] gnu: Add ghc-wai-cors.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-8-goodoldpaul@autistici.org
* gnu/packages/haskell-web.scm (ghc-wai-cors): New variable.
---
gnu/packages/haskell-web.scm | 44 ++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 55c29b4932..7f19816fdf 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2244,3 +2244,47 @@ subsite for Yesod Web Framework.")
Javascript code to ping the server. When the server no longer
receives pings, it shuts down.")
(license license:expat)))
+
+(define-public ghc-wai-cors
+ (package
+ (name "ghc-wai-cors")
+ (version "0.2.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-cors/wai-cors-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "10gv3jjlkcb13031frr818p56v2s0qf6dqjsfpwlhwdxdssvx5r5"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:tests? #f)) ;tests require PhantomJS
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base-unicode-symbols"
+ ,ghc-base-unicode-symbols)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-wai" ,ghc-wai)))
+ (native-inputs
+ `(("ghc-network" ,ghc-network)
+ ("ghc-wai-websockets" ,ghc-wai-websockets)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-websockets" ,ghc-websockets)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-wai-websockets" ,ghc-wai-websockets)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-websockets" ,ghc-websockets)))
+ (home-page
+ "https://github.com/larskuhtz/wai-cors")
+ (synopsis "CORS for WAI")
+ (description
+ "This package provides an implemenation of Cross-Origin
+resource sharing (CORS) for Wai that aims to be compliant with
+@url{http://www.w3.org/TR/cors}.")
+ (license license:expat)))
--
2.29.2
G
G
Giacomo Leidi wrote on 4 Dec 2020 20:15
[PATCH 9/9] gnu: Add hledger-web.
(address . 44954@debbugs.gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
20201204191545.24772-9-goodoldpaul@autistici.org
* gnu/packages/finance.scm (hledger-web): New variable.
---
gnu/packages/finance.scm | 56 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)

Toggle diff (66 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index a79c70d1e0..8c7bb7a641 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -1648,3 +1648,59 @@ generate a variety of reports from them, and provides a web interface.")
(synopsis "Emacs mode for beancount")
(description
"Emacs-beancount is an Emacs mode for the Beancount accounting tool.")))
+
+(define-public hledger-web
+ (package
+ (name "hledger-web")
+ (version "1.14.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hledger-web/hledger-web-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0w59nr7mj0nx8z44cvhy1rhlj5rmx0wq4p5nfl4dycfmp7jwvsm1"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-decimal" ,ghc-decimal)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-blaze-markup" ,ghc-blaze-markup)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-clientsession" ,ghc-clientsession)
+ ("ghc-cmdargs" ,ghc-cmdargs)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-conduit-extra" ,ghc-conduit-extra)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-hjsmin" ,ghc-hjsmin)
+ ("hledger" ,hledger)
+ ("ghc-hledger-lib" ,ghc-hledger-lib)
+ ("ghc-http-client" ,ghc-http-client)
+ ("ghc-http-conduit" ,ghc-http-conduit)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-json" ,ghc-json)
+ ("ghc-megaparsec" ,ghc-megaparsec)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-shakespeare" ,ghc-shakespeare)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-wai-handler-launch"
+ ,ghc-wai-handler-launch)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-yaml" ,ghc-yaml)
+ ("ghc-yesod" ,ghc-yesod)
+ ("ghc-yesod-core" ,ghc-yesod-core)
+ ("ghc-yesod-form" ,ghc-yesod-form)
+ ("ghc-yesod-static" ,ghc-yesod-static)))
+ (home-page "https://hledger.org")
+ (synopsis
+ "Web-based user interface for the hledger accounting system")
+ (description
+ "This package provides a simple web-based user interface for
+the hledger accounting system, providing a more modern UI than
+the command-line or terminal interfaces. It can be used as a local
+single-user UI, or as a multi-user UI for viewing/adding/editing on the web.")
+ (license license:gpl3)))
--
2.29.2
T
T
Timothy Sample wrote on 4 Dec 2020 21:06
Re: [bug#44954] [PATCH] Add hledger-web and dependencies.
(name . paul)(address . goodoldpaul@autistici.org)
87wnxxqqsc.fsf@ngyro.com
Hello,

paul <goodoldpaul@autistici.org> writes:

Toggle quote (17 lines)
>> This is probably not your fault! On older versions of Guix, using the
>> “stackage” importer would yield packages for the most recent version of
>> LTS Haskell. This was fixed about a month ago.
>>
>> Now the importer will pick the correct versions, and running “guix lint”
>> on your packages will flag any Haskell version problems.
>>
>> Would you be willing to fix the versions and send an updated patch
>> series?
> I apologize for this inconvenient, this is definitely my fault since I
> imported the packages with
>
> guix import hackage -r hledger-web
>
> I'm not an expert in Haskell so I didn't know about the difference
> between Hackage and Stackage and it's repercussions on Guix packaging.

It’s not a big deal at all and an easy mistake to make. No worries!

Toggle quote (2 lines)
> I'm sending an updated patch series to fix the versions.

Great, but you might want to look at https://bugs.gnu.org/45000.
Someone else is working on getting the “webapp” component of git-annex
to work, and it uses a few of the same dependencies as hledger-web.
It’s not hard on my end to merge the patch sets, but you could possibly
coordinate to avoid duplicate work. I’ve CC’ed Jonathan (the other
submitter) on this message.

Toggle quote (2 lines)
> Thank you for your time,

Thanks for the patches! :)


-- Tim
T
T
Timothy Sample wrote on 6 Dec 2020 06:31
(name . paul)(address . goodoldpaul@autistici.org)(address . 44954@debbugs.gnu.org)
87mtyrqz47.fsf@ngyro.com
Hi,

Timothy Sample <samplet@ngyro.com> writes:

Toggle quote (6 lines)
> paul <goodoldpaul@autistici.org> writes:
>
>> I'm sending an updated patch series to fix the versions.
>
> Great [...]

I have the new patches all lined up and ready to go. Just one more
question. There should be a line for you in the copyright header of
each changed file. I’m happy to add it, but I want to make sure it’s
okay. The Git author field of the commits has

Giacomo Leidi <goodoldpaul@autistici.org>

Shall I use that for the copyright headers?


-- Tim
P
(name . Timothy Sample)(address . samplet@ngyro.com)(address . 44954@debbugs.gnu.org)
3ff42945-87f4-dc70-57e6-b13b4c77c47d@autistici.org
Hi Tim,

On 12/6/20 6:31 AM, Timothy Sample wrote:
Toggle quote (9 lines)
> I have the new patches all lined up and ready to go. Just one more
> question. There should be a line for you in the copyright header of
> each changed file. I’m happy to add it, but I want to make sure it’s
> okay. The Git author field of the commits has
>
> Giacomo Leidi <goodoldpaul@autistici.org>
>
> Shall I use that for the copyright headers?

yes, thank you. I'm not sure if it'll help but I'm attaching the patches
with the copyright header properly added, so that you may reuse them
if/where necessary.

Cheers,

Giacomo
From 56e3f0d068a3560b0927e040b17a3569b6caffd2 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Fri, 4 Dec 2020 19:27:30 +0100
Subject: [PATCH 1/9] gnu: ghc-yesod-core: Update to 1.6.17.2.

* gnu/packages/haskell-web.scm (ghc-yesod-core): Update to 1.6.17.2.
---
gnu/packages/haskell-web.scm | 58 ++++++++++++++++++++++++++++++++++--
1 file changed, 56 insertions(+), 2 deletions(-)

Toggle diff (89 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 9a149187b6..7ffb366eab 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1258,7 +1259,7 @@ avoid any issues with characters.")
(define-public ghc-yesod-core
(package
(name "ghc-yesod-core")
- (version "1.6.16.1")
+ (version "1.6.17.2")
(source
(origin
(method url-fetch)
@@ -1267,7 +1268,7 @@ avoid any issues with characters.")
"yesod-core-" version ".tar.gz"))
(sha256
(base32
- "0a0yv7wkwvb0n6iia532y9nzrirgnm09pjc8hpm0lx4ff609pgd2"))))
+ "0rcfksbxnwcpg5qh9vjkddv39q95mx4nxzgix51bbwa128hhzcwf"))))
(build-system haskell-build-system)
(inputs `(("ghc-wai" ,ghc-wai)
("ghc-extra" ,ghc-extra)
@@ -2024,3 +2025,56 @@ Bower's package manifest file, bower.json.")
Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
@command{hdav}, for command-line operation.")
(license license:gpl3)))
+
+(define-public ghc-yesod-test
+ (package
+ (name "ghc-yesod-test")
+ (version "1.6.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/yesod-test/yesod-test-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0vw6yg5b22a6flbl822z23k0l23as5mmxjcdnj2zgjjv5i713yfx"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-cookie" ,ghc-cookie)
+ ("ghc-hspec-core" ,ghc-hspec-core)
+ ("ghc-html-conduit" ,ghc-html-conduit)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-network" ,ghc-network)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-pretty-show" ,ghc-pretty-show)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-xml-conduit" ,ghc-xml-conduit)
+ ("ghc-xml-types" ,ghc-xml-types)
+ ("ghc-yesod-core" ,ghc-yesod-core)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-yesod-form" ,ghc-yesod-form)
+ ("ghc-unliftio" ,ghc-unliftio)
+ ("ghc-unliftio-core" ,ghc-unliftio-core)))
+ (home-page "http://www.yesodweb.com")
+ (synopsis
+ "Integration testing for WAI/Yesod Applications")
+ (description
+ "This package's main goal is to encourage integration
+and system testing of web applications by making everything
+easy to test. Tests are like browser sessions that
+keep track of cookies and the last visited page. You
+can perform assertions on the content of HTML responses
+using CSS selectors.")
+ (license license:expat)))
--
2.29.2
From 9fe55e8b96f5436acf230e422d91ce1764f2954f Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Fri, 4 Dec 2020 19:38:14 +0100
Subject: [PATCH 2/9] gnu: ghc-yesod-test: Update to 1.6.9.

* gnu/packages/haskell-web.scm (ghc-yesod-test): Update to 1.6.9.
---
gnu/packages/haskell-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 7ffb366eab..c5fec7aaf1 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2029,7 +2029,7 @@ Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
(define-public ghc-yesod-test
(package
(name "ghc-yesod-test")
- (version "1.6.10")
+ (version "1.6.9")
(source
(origin
(method url-fetch)
@@ -2039,7 +2039,7 @@ Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
".tar.gz"))
(sha256
(base32
- "0vw6yg5b22a6flbl822z23k0l23as5mmxjcdnj2zgjjv5i713yfx"))))
+ "0v25lqq7hgd5lggnyfd9kamkzd4126rd7vlhc131n253n4by4yak"))))
(build-system haskell-build-system)
(inputs
`(("ghc-hunit" ,ghc-hunit)
--
2.29.2
From 5a3646d3f4e79d492bc6cae8c35be9e414cc3356 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Sun, 29 Nov 2020 20:28:16 +0100
Subject: [PATCH 3/9] gnu: Add ghc-wai-app-static.

* gnu/packages/haskell-web.scm (ghc-wai-app-static): New variable.
---
gnu/packages/haskell-web.scm | 52 ++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index c5fec7aaf1..34f807df9d 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2078,3 +2078,55 @@ keep track of cookies and the last visited page. You
can perform assertions on the content of HTML responses
using CSS selectors.")
(license license:expat)))
+
+(define-public ghc-wai-app-static
+ (package
+ (name "ghc-wai-app-static")
+ (version "3.1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/"
+ "wai-app-static/wai-app-static-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "10k6jb450p89r6dgpnwh428gg0wfw2qbx9n126jkvbchcjr1f4v8"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-wai" ,ghc-wai)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-old-locale" ,ghc-old-locale)
+ ("ghc-file-embed" ,ghc-file-embed)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-http-date" ,ghc-http-date)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-blaze-markup" ,ghc-blaze-markup)
+ ("ghc-mime-types" ,ghc-mime-types)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-zlib" ,ghc-zlib)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-optparse-applicative"
+ ,ghc-optparse-applicative)
+ ("ghc-warp" ,ghc-warp)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-network" ,ghc-network)
+ ("ghc-temporary" ,ghc-temporary)
+ ("ghc-mockery" ,ghc-mockery)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "0bkmml30rzifvb7nxddj3pxczk0kniahra19mjn0qrkzy1n5752p")))
+ (home-page
+ "http://www.yesodweb.com/book/web-application-interface")
+ (synopsis "WAI application for static serving")
+ (description
+ "This package provides a WAI application for static serving
+provides some helper functions and datatypes for use outside of WAI.")
+ (license license:expat)))
--
2.29.2
From 5db2d40ff325c4fd70c057f7ce366b87b2f6db80 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Sun, 29 Nov 2020 20:36:26 +0100
Subject: [PATCH 4/9] gnu: Add ghc-cryptonite-conduit.

* gnu/packages/haskell-crypto.scm (ghc-cryptonite-conduit): New variable.
---
gnu/packages/haskell-crypto.scm | 40 +++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (57 lines)
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index c92dec9932..bba95e3374 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -838,3 +839,42 @@ implementation of SSL.")
(description "This library contains io-streams routines for secure
networking using OpenSSL (by way of HsOpenSSL).")
(license license:bsd-3)))
+
+(define-public ghc-cryptonite-conduit
+ (package
+ (name "ghc-cryptonite-conduit")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/cryptonite-conduit/cryptonite-conduit-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-conduit" ,ghc-conduit)
+ ("ghc-conduit-extra" ,ghc-conduit-extra)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-resourcet" ,ghc-resourcet)))
+ (native-inputs
+ `(("ghc-conduit-combinators"
+ ,ghc-conduit-combinators)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (arguments
+ `(#:cabal-revision
+ ("1"
+ "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz")))
+ (home-page
+ "https://github.com/haskell-crypto/cryptonite-conduit")
+ (synopsis "Cryptonite bridge for conduit")
+ (description
+ "This package provides a conduit version for hash and hmac.")
+ (license license:bsd-3)))
--
2.29.2
From f3c9da95d2943fc1e5f11858d5ef52995135dc6e Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Fri, 4 Dec 2020 20:15:41 +0100
Subject: [PATCH 5/9] gnu: Add ghc-hjsmin.

* gnu/packages/haskell-web.scm (ghc-hjsmin): New variable.
---
gnu/packages/haskell-web.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 34f807df9d..06d3c1d74b 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2130,3 +2130,35 @@ using CSS selectors.")
"This package provides a WAI application for static serving
provides some helper functions and datatypes for use outside of WAI.")
(license license:expat)))
+
+(define-public ghc-hjsmin
+ (package
+ (name "ghc-hjsmin")
+ (version "0.2.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hjsmin/hjsmin-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1r2p5rjdjr25j3w4s57q5hxw2c3ymw12x7ms18yvglnq2ivr9fc1"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:tests? #f)) ;there are none
+ (inputs
+ `(("ghc-language-javascript"
+ ,ghc-language-javascript)
+ ("ghc-optparse-applicative"
+ ,ghc-optparse-applicative)))
+ (native-inputs `(("ghc-extra" ,ghc-extra)))
+ (home-page "https://github.com/erikd/hjsmin")
+ (synopsis
+ "Haskell implementation of a javascript minifier")
+ (description
+ "This package reduces size of javascript files by stripping
+out extraneous whitespace and other syntactic elements, without
+changing the semantics.")
+ (license license:bsd-3)))
--
2.29.2
From 7716370d8ca50d2718850eb618f402667ee6a763 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Fri, 4 Dec 2020 20:15:42 +0100
Subject: [PATCH 6/9] gnu: Add ghc-yesod-static.

* gnu/packages/haskell-web.scm (ghc-yesod-static): New variable.
---
gnu/packages/haskell-web.scm | 52 ++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 06d3c1d74b..5a1e401b1b 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2162,3 +2162,55 @@ provides some helper functions and datatypes for use outside of WAI.")
out extraneous whitespace and other syntactic elements, without
changing the semantics.")
(license license:bsd-3)))
+
+(define-public ghc-yesod-static
+ (package
+ (name "ghc-yesod-static")
+ (version "1.6.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/yesod-static/yesod-static-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1jd0ryfr2vyrwasyvbqmc6j4ngv1lgz78w427f169l7gyl1firxb"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-async" ,ghc-async)
+ ("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-cryptonite" ,ghc-cryptonite)
+ ("ghc-cryptonite-conduit"
+ ,ghc-cryptonite-conduit)
+ ("ghc-css-text" ,ghc-css-text)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-file-embed" ,ghc-file-embed)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-hjsmin" ,ghc-hjsmin)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-mime-types" ,ghc-mime-types)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-unordered-containers"
+ ,ghc-unordered-containers)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-app-static" ,ghc-wai-app-static)
+ ("ghc-yesod-core" ,ghc-yesod-core)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-yesod-test" ,ghc-yesod-test)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-rio" ,ghc-rio)))
+ (home-page "http://www.yesodweb.com/")
+ (synopsis
+ "Static file serving subsite for Yesod")
+ (description
+ "This package provides static file serving
+subsite for Yesod Web Framework.")
+ (license license:expat)))
--
2.29.2
From fecbd87614eb8e137005d6594992a742610da12f Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Fri, 4 Dec 2020 20:15:43 +0100
Subject: [PATCH 7/9] gnu: Add ghc-wai-handler-launch.

* gnu/packages/haskell-web.scm (ghc-wai-handler-launch): New variable.
---
gnu/packages/haskell-web.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 5a1e401b1b..518f3e8fee 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2214,3 +2214,34 @@ changing the semantics.")
"This package provides static file serving
subsite for Yesod Web Framework.")
(license license:expat)))
+
+(define-public ghc-wai-handler-launch
+ (package
+ (name "ghc-wai-handler-launch")
+ (version "3.0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-handler-launch/wai-handler-launch-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1ifqgyc1ccig5angh5l1iq7vyms4lvi8wzvysg5dw82nml49n02m"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-wai" ,ghc-wai)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-streaming-commons" ,ghc-streaming-commons)
+ ("ghc-async" ,ghc-async)))
+ (home-page
+ "http://hackage.haskell.org/package/wai-handler-launch")
+ (synopsis
+ "Launch a web app in the default browser")
+ (description
+ "This package handles cross-platform launching and inserts
+Javascript code to ping the server. When the server no longer
+receives pings, it shuts down.")
+ (license license:expat)))
--
2.29.2
From 6207963c1d87995a8dc776c13881649b18085879 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Sun, 29 Nov 2020 22:59:29 +0100
Subject: [PATCH 8/9] gnu: Add ghc-wai-cors.

* gnu/packages/haskell-web.scm (ghc-wai-cors): New variable.
---
gnu/packages/haskell-web.scm | 44 ++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 518f3e8fee..5d5764cd17 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2245,3 +2245,47 @@ subsite for Yesod Web Framework.")
Javascript code to ping the server. When the server no longer
receives pings, it shuts down.")
(license license:expat)))
+
+(define-public ghc-wai-cors
+ (package
+ (name "ghc-wai-cors")
+ (version "0.2.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/wai-cors/wai-cors-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "10gv3jjlkcb13031frr818p56v2s0qf6dqjsfpwlhwdxdssvx5r5"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:tests? #f)) ;tests require PhantomJS
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base-unicode-symbols"
+ ,ghc-base-unicode-symbols)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-wai" ,ghc-wai)))
+ (native-inputs
+ `(("ghc-network" ,ghc-network)
+ ("ghc-wai-websockets" ,ghc-wai-websockets)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-websockets" ,ghc-websockets)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-wai-websockets" ,ghc-wai-websockets)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-websockets" ,ghc-websockets)))
+ (home-page
+ "https://github.com/larskuhtz/wai-cors")
+ (synopsis "CORS for WAI")
+ (description
+ "This package provides an implemenation of Cross-Origin
+resource sharing (CORS) for Wai that aims to be compliant with
+@url{http://www.w3.org/TR/cors}.")
+ (license license:expat)))
--
2.29.2
From 112628c497db41d293b8b168d8be9e642b6b1ed7 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Fri, 4 Dec 2020 20:15:45 +0100
Subject: [PATCH 9/9] gnu: Add hledger-web.

* gnu/packages/finance.scm (hledger-web): New variable.
---
gnu/packages/finance.scm | 57 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)

Toggle diff (74 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index a79c70d1e0..ac2e2adfad 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1648,3 +1649,59 @@ generate a variety of reports from them, and provides a web interface.")
(synopsis "Emacs mode for beancount")
(description
"Emacs-beancount is an Emacs mode for the Beancount accounting tool.")))
+
+(define-public hledger-web
+ (package
+ (name "hledger-web")
+ (version "1.14.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hledger-web/hledger-web-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0w59nr7mj0nx8z44cvhy1rhlj5rmx0wq4p5nfl4dycfmp7jwvsm1"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-decimal" ,ghc-decimal)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-blaze-markup" ,ghc-blaze-markup)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-clientsession" ,ghc-clientsession)
+ ("ghc-cmdargs" ,ghc-cmdargs)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-conduit-extra" ,ghc-conduit-extra)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-hjsmin" ,ghc-hjsmin)
+ ("hledger" ,hledger)
+ ("ghc-hledger-lib" ,ghc-hledger-lib)
+ ("ghc-http-client" ,ghc-http-client)
+ ("ghc-http-conduit" ,ghc-http-conduit)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-json" ,ghc-json)
+ ("ghc-megaparsec" ,ghc-megaparsec)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-shakespeare" ,ghc-shakespeare)
+ ("ghc-wai" ,ghc-wai)
+ ("ghc-wai-extra" ,ghc-wai-extra)
+ ("ghc-wai-handler-launch"
+ ,ghc-wai-handler-launch)
+ ("ghc-warp" ,ghc-warp)
+ ("ghc-yaml" ,ghc-yaml)
+ ("ghc-yesod" ,ghc-yesod)
+ ("ghc-yesod-core" ,ghc-yesod-core)
+ ("ghc-yesod-form" ,ghc-yesod-form)
+ ("ghc-yesod-static" ,ghc-yesod-static)))
+ (home-page "https://hledger.org")
+ (synopsis
+ "Web-based user interface for the hledger accounting system")
+ (description
+ "This package provides a simple web-based user interface for
+the hledger accounting system, providing a more modern UI than
+the command-line or terminal interfaces. It can be used as a local
+single-user UI, or as a multi-user UI for viewing/adding/editing on the web.")
+ (license license:gpl3)))
--
2.29.2
T
T
Timothy Sample wrote on 7 Dec 2020 03:47
(name . paul)(address . goodoldpaul@autistici.org)(address . 44954-done@debbugs.gnu.org)
87im9eqqlt.fsf@ngyro.com
Hello,

paul <goodoldpaul@autistici.org> writes:

Toggle quote (14 lines)
> On 12/6/20 6:31 AM, Timothy Sample wrote:
>> I have the new patches all lined up and ready to go. Just one more
>> question. There should be a line for you in the copyright header of
>> each changed file. I’m happy to add it, but I want to make sure it’s
>> okay. The Git author field of the commits has
>>
>> Giacomo Leidi <goodoldpaul@autistici.org>
>>
>> Shall I use that for the copyright headers?
>
> yes, thank you. I'm not sure if it'll help but I'm attaching the
> patches with the copyright header properly added, so that you may
> reuse them if/where necessary.

Patches applied!

I managed to get some tests running for both ghc-hjsmin and ghc-wai-cors
(ghc-wai-cors is not actually a dependency of hledger-web, but I left it
in anyway). I tweaked the odd synopsis and description, and changed
some “home-page” URLs from “http://” to “https://”. Nothing major. :)

Thanks again for the patches!


-- Tim
Closed
?