[PATCH 0/9] Build git-annex with assistant webapp enabled

OpenSubmitted by Jonathan Frederickson.
Details
4 participants
  • Jonathan Frederickson
  • Kyle Meyer
  • Timothy Sample
  • zimoun
Owner
unassigned
Severity
normal
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:53
(address . guix-patches@gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045335.31096-1-jonathan@terracrypt.net
A previous patchset added the git-annex assistant to the git-annex
package, but the webapp functionality was not included. This patchset
enables the webapp, and adds several dependencies that were required
to do so.

Jonathan Frederickson (9):
gnu: Add ghc-yesod-test.
gnu: Add ghc-wai-app-static.
gnu: Add ghc-yesod-static.
gnu: Add ghc-cryptonite-conduit.
gnu: ghc-yesod-core: Update to 1.6.18.6.
gnu: Add ghc-hjsmin.
gnu: Add ghc-template-haskell.
gnu: Add ghc-boot-th.
gnu: git-annex: Build with git-annex assistant webapp enabled.

gnu/packages/haskell-apps.scm | 15 ++-
gnu/packages/haskell-crypto.scm | 39 ++++++++
gnu/packages/haskell-web.scm | 158 +++++++++++++++++++++++++++++++-
gnu/packages/haskell-xyz.scm | 85 +++++++++++++++++
4 files changed, 293 insertions(+), 4 deletions(-)

--
2.29.2
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 1/9] gnu: Add ghc-yesod-test.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-1-jonathan@terracrypt.net
* gnu/packages/haskell-web.scm (ghc-yesod-test): New variable.
---
gnu/packages/haskell-web.scm | 50 ++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index a4269599f6..b1ac84be08 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1399,6 +1399,56 @@ Yesod related packages into one cohesive whole.  This is the version of Yesod,
 whereas most of the core code lives in @code{ghc-yesod-core}.")
     (license license:expat)))
 
+(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
+     "Pragmatic integration tests for haskell web applications using WAI and
+optionally a database (Persistent).  Its main goal is to encourage integration
+and system testing of web applications by making everything easy to test.")
+    (license license:expat)))
+
 (define-public ghc-hxt-charproperties
   (package
     (name "ghc-hxt-charproperties")
-- 
2.29.2
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 2/9] gnu: Add ghc-wai-app-static.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-2-jonathan@terracrypt.net
* gnu/packages/haskell-web.scm (ghc-wai-app-static): New variable.
---
gnu/packages/haskell-web.scm | 51 ++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (64 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index b1ac84be08..cd9d097751 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -745,6 +745,57 @@ See also:
 @end itemize")
     (license license:bsd-3)))
 
+(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
+     "WAI application for static serving.  Also provides some helper functions
+and datatypes for use outside of WAI.")
+    (license license:expat)))
+
 (define-public ghc-wai-websockets
   (package
     (name "ghc-wai-websockets")
-- 
2.29.2
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 4/9] gnu: Add ghc-cryptonite-conduit.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-4-jonathan@terracrypt.net
* gnu/packages/haskell-crypto.scm (ghc-cryptonite-conduit): New variable.
---
gnu/packages/haskell-crypto.scm | 39 +++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index c92dec9932..ec6c643592 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -330,6 +330,45 @@ public key algorithms, key derivation numbers, cryptographic random number
 generators, and more.")
     (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 "Conduit bridge for cryptonite")
+    (description
+     "This package provides a simple conduit wrapper for cryptonite hashes")
+    (license license:bsd-3)))
+
 (define-public ghc-digest
   (package
     (name "ghc-digest")
-- 
2.29.2
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 3/9] gnu: Add ghc-yesod-static.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-3-jonathan@terracrypt.net
* gnu/packages/haskell-web.scm (ghc-yesod-static): New variable.
---
gnu/packages/haskell-web.scm | 52 ++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (65 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index cd9d097751..02b885a587 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1450,6 +1450,58 @@ Yesod related packages into one cohesive whole.  This is the version of Yesod,
 whereas most of the core code lives in @code{ghc-yesod-core}.")
     (license license:expat)))
 
+(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 Web Framework")
+    (description
+     "This package provides a static file serving subsite for the Yesod Web
+Framework.")
+    (license license:expat)))
+
 (define-public ghc-yesod-test
   (package
     (name "ghc-yesod-test")
-- 
2.29.2
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 5/9] gnu: ghc-yesod-core: Update to 1.6.18.6.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-5-jonathan@terracrypt.net
* gnu/packages/haskell-web.scm (ghc-yesod-core): Update to 1.6.18.6.
---
gnu/packages/haskell-web.scm | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

Toggle diff (32 lines)
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 02b885a587..ce28253914 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1266,7 +1266,7 @@ avoid any issues with characters.")
 (define-public ghc-yesod-core
   (package
     (name "ghc-yesod-core")
-    (version "1.6.16.1")
+    (version "1.6.18.6")
     (source
      (origin
        (method url-fetch)
@@ -1275,7 +1275,7 @@ avoid any issues with characters.")
                            "yesod-core-" version ".tar.gz"))
        (sha256
         (base32
-         "0a0yv7wkwvb0n6iia532y9nzrirgnm09pjc8hpm0lx4ff609pgd2"))))
+         "1iay7lrc52krhnlkvr6bxchnwk9lj316fv2d47bh3bfay69wqc69"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-wai" ,ghc-wai)
               ("ghc-extra" ,ghc-extra)
@@ -1299,7 +1299,6 @@ avoid any issues with characters.")
               ("ghc-monad-logger" ,ghc-monad-logger)
               ("ghc-conduit" ,ghc-conduit)
               ("ghc-resourcet" ,ghc-resourcet)
-              ("ghc-rio" ,ghc-rio)
               ("ghc-lifted-base" ,ghc-lifted-base)
               ("ghc-blaze-html" ,ghc-blaze-html)
               ("ghc-blaze-markup" ,ghc-blaze-markup)
-- 
2.29.2
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 6/9] gnu: Add ghc-hjsmin.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-6-jonathan@terracrypt.net
* gnu/packages/haskell-xyz.scm (ghc-hjsmin): New variable.
---
gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 19eabd949b..b24c8cf7b7 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -15469,3 +15469,36 @@ Zstandard compression algorithm, a fast lossless compression algorithm
 targeting real-time compression scenarios at zlib-level and better
 compression ratios.")
     (license license:bsd-3)))
+
+(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
+    `(#:phases
+       (modify-phases %standard-phases
+         (delete 'check))))
+    (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
+     "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
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 7/9] gnu: Add ghc-template-haskell.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-7-jonathan@terracrypt.net
* gnu/packages/haskell-xyz.scm (ghc-template-haskell): New variable.
---
gnu/packages/haskell-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index b24c8cf7b7..a486f5cd59 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -15502,3 +15502,29 @@ compression ratios.")
      "Reduces size of javascript files by stripping out extraneous whitespace
 and other syntactic elements, without changing the semantics.")
     (license license:bsd-3)))
+
+(define-public ghc-template-haskell
+  (package
+    (name "ghc-template-haskell")
+    (version "2.16.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/template-haskell/template-haskell-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1nk1cv35szp80qkhbyh5gn6vn194zzl0wz186qrqdrdx3a9r9w4g"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-boot-th" ,ghc-boot-th)))
+    (home-page
+     "http://hackage.haskell.org/package/template-haskell")
+    (synopsis "Support library for Template Haskell")
+    (description
+     "This package provides modules containing facilities for manipulating
+Haskell source code using Template Haskell.  See
+<http://www.haskell.org/haskellwiki/Template_Haskell> for more information.")
+    (license license:bsd-3)))
-- 
2.29.2
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 9/9] gnu: git-annex: Build with git-annex assistant webapp enabled.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-9-jonathan@terracrypt.net
* gnu/packages/haskell-apps.scm (git-annex): Enable git-annex assistant
webapp.
---
gnu/packages/haskell-apps.scm | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

Toggle diff (60 lines)
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index da1bd2128c..2d6fac234f 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -350,7 +350,7 @@ to @code{cabal repl}).")
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
-       '("--flags=-Android -Webapp")
+       '("--flags=-Android Webapp")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-shell-for-tests
@@ -441,9 +441,11 @@ to @code{cabal repl}).")
        ("ghc-aeson" ,ghc-aeson)
        ("ghc-async" ,ghc-async)
        ("ghc-aws" ,ghc-aws)
+       ("ghc-blaze-builder" ,ghc-blaze-builder)
        ("ghc-bloomfilter" ,ghc-bloomfilter)
        ("ghc-byteable" ,ghc-byteable)
        ("ghc-case-insensitive" ,ghc-case-insensitive)
+       ("ghc-clientsession" ,ghc-clientsession)
        ("ghc-concurrent-output" ,ghc-concurrent-output)
        ("ghc-crypto-api" ,ghc-crypto-api)
        ("ghc-cryptonite" ,ghc-cryptonite)
@@ -473,6 +475,7 @@ to @code{cabal repl}).")
        ("ghc-network-multicast" ,ghc-network-multicast)
        ("ghc-old-locale" ,ghc-old-locale)
        ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+       ("ghc-path-pieces" ,ghc-path-pieces)
        ("ghc-persistent" ,ghc-persistent)
        ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
        ("ghc-persistent-template" ,ghc-persistent-template)
@@ -483,14 +486,24 @@ to @code{cabal repl}).")
        ("ghc-safesemaphore" ,ghc-safesemaphore)
        ("ghc-sandi" ,ghc-sandi)
        ("ghc-securemem" ,ghc-securemem)
+       ("ghc-shakespeare" ,ghc-shakespeare)
        ("ghc-socks" ,ghc-socks)
        ("ghc-split" ,ghc-split)
        ("ghc-stm-chans" ,ghc-stm-chans)
        ("ghc-tagsoup" ,ghc-tagsoup)
+       ("ghc-template-haskell" ,ghc-template-haskell)
        ("ghc-unix-compat" ,ghc-unix-compat)
        ("ghc-unordered-containers" ,ghc-unordered-containers)
        ("ghc-utf8-string" ,ghc-utf8-string)
        ("ghc-uuid" ,ghc-uuid)
+       ("ghc-wai" ,ghc-wai)
+       ("ghc-wai-extra" ,ghc-wai-extra)
+       ("ghc-warp" ,ghc-warp)
+       ("ghc-warp-tls" ,ghc-warp-tls)
+       ("ghc-yesod" ,ghc-yesod)
+       ("ghc-yesod-core" ,ghc-yesod-core)
+       ("ghc-yesod-form" ,ghc-yesod-form)
+       ("ghc-yesod-static" ,ghc-yesod-static)
        ("git" ,git)
        ("rsync" ,rsync)))
     (native-inputs
-- 
2.29.2
J
J
Jonathan Frederickson wrote on 2 Dec 2020 05:55
[PATCH 8/9] gnu: Add ghc-boot-th.
(address . 45000@debbugs.gnu.org)(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
20201202045540.31248-8-jonathan@terracrypt.net
* gnu/packages/haskell-xyz.scm (ghc-boot-th): New variable.
---
gnu/packages/haskell-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index a486f5cd59..aa52b69540 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -15528,3 +15528,29 @@ and other syntactic elements, without changing the semantics.")
 Haskell source code using Template Haskell.  See
 <http://www.haskell.org/haskellwiki/Template_Haskell> for more information.")
     (license license:bsd-3)))
+
+(define-public ghc-boot-th
+  (package
+    (name "ghc-boot-th")
+    (version "8.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/ghc-boot-th/ghc-boot-th-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0vhhmsd32p7zn9vhpv4d0k0b55n2dyhzy42xblndrma617kz8gli"))))
+    (build-system haskell-build-system)
+    (home-page
+     "http://hackage.haskell.org/package/ghc-boot-th")
+    (synopsis
+     "Shared functionality between GHC and the `template-haskell` library")
+    (description
+     "This library contains various bits shared between the ghc and
+template-haskell libraries.  This package exists to ensure that
+template-haskell has a minimal set of transitive dependencies, since it is
+intended to be depended upon by user code.")
+    (license license:bsd-3)))
-- 
2.29.2
Z
Z
zimoun wrote on 2 Dec 2020 12:17
Re: [bug#45000] [PATCH 0/9] Build git-annex with assistant webapp enabled
(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
86sg8o1mou.fsf@gmail.com
Hi,

Thanks for the patchset.


On Tue, 01 Dec 2020 at 23:53, Jonathan Frederickson <jonathan@terracrypt.net> wrote:

Toggle quote (11 lines)
> Jonathan Frederickson (9):
> gnu: Add ghc-yesod-test.
> gnu: Add ghc-wai-app-static.
> gnu: Add ghc-yesod-static.
> gnu: Add ghc-cryptonite-conduit.
> gnu: ghc-yesod-core: Update to 1.6.18.6.
> gnu: Add ghc-hjsmin.
> gnu: Add ghc-template-haskell.
> gnu: Add ghc-boot-th.
> gnu: git-annex: Build with git-annex assistant webapp enabled.

The git-annex package is growing and now start to fetch bunch of
dependencies. Well, I do not necessary want to have all that when I
only use the CLI part of git-annex.

Does it make sense to have 2 variants: git-annex (minimal) and
git-annex-assistant (full features)?


All the best,
simon
K
K
Kyle Meyer wrote on 3 Dec 2020 06:32
(name . zimoun)(address . zimon.toutoune@gmail.com)
87sg8njw03.fsf@kyleam.com
zimoun writes:

Toggle quote (7 lines)
> The git-annex package is growing and now start to fetch bunch of
> dependencies. Well, I do not necessary want to have all that when I
> only use the CLI part of git-annex.
>
> Does it make sense to have 2 variants: git-annex (minimal) and
> git-annex-assistant (full features)?

While I'm happy to see this series (thanks, Jonathan!), I share the same
feeling as a git-annex user that doesn't use the assistant (and my
impression is that a substantial proportion of git-annex users rely on
only the command-line interface).
Z
Z
zimoun wrote on 3 Dec 2020 14:48
Re: [bug#45000] [PATCH 9/9] gnu: git-annex: Build with git-annex assistant webapp enabled.
(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
868safyp8z.fsf@gmail.com
Hi Jonathan,

Thank you for the series. And for improving the accessibility of
git-annex.


On Tue, 01 Dec 2020 at 23:55, Jonathan Frederickson <jonathan@terracrypt.net> wrote:
Toggle quote (6 lines)
> * gnu/packages/haskell-apps.scm (git-annex): Enable git-annex assistant
> webapp.
> ---
> gnu/packages/haskell-apps.scm | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)

Instead of this patch, does it make sense to create a variant? As
discussed here [1].



For example, something like:

Toggle snippet (5 lines)
(define-public git-annex-assistant
(package
(inherit git-annex)
… tweaks …
WDYT?


All the best,
simon
T
T
Timothy Sample wrote on 3 Dec 2020 21:52
Re: [bug#45000] [PATCH 0/9] Build git-annex with assistant webapp enabled
(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
87v9disjd1.fsf@ngyro.com
Hi Jonathan,

Kyle Meyer <kyle@kyleam.com> writes:

Toggle quote (14 lines)
> zimoun writes:
>
>> The git-annex package is growing and now start to fetch bunch of
>> dependencies. Well, I do not necessary want to have all that when I
>> only use the CLI part of git-annex.
>>
>> Does it make sense to have 2 variants: git-annex (minimal) and
>> git-annex-assistant (full features)?
>
> While I'm happy to see this series (thanks, Jonathan!), I share the same
> feeling as a git-annex user that doesn't use the assistant (and my
> impression is that a substantial proportion of git-annex users rely on
> only the command-line interface).

As an occasional git-annex user, I agree. My preference is for
“git-annex” to be the full experience and to make a “-minimal” package
that omits the assistant. I guess we could also use multiple outputs,
but that would likely be difficult to pull off (not to mention the fact
that it doesn’t do anything to simplify the build-time dependency
graph).

That being said, I could easily make that change on top of this series.

With respect to the patches, I managed to apply them all, build all of
the packages, and run the assistant, so that’s good! However, most of
the packages are more recent then the versions given in the Stackage LTS
Haskell 14.27 list https://www.stackage.org/lts-14.27, which we follow
to maintain a consistent package set. Please see
for an explanation. (The short version is that the problem is not
really your fault but rather the fault of our tools suggesting at every
turn to do the wrong thing.) All of the packages except ghc-hjsmin and
ghc-cryptonite-conduit are too recent.

Would you mind sending an updated patch set with the LTS Haskell 14.27
versions? As of recently, if you run “guix lint” on Haskell packages it
will warn you if the version is wrong and suggest the correct version.

Besides that, there are a few minor issues in the descriptions. Mostly
incomplete sentences. It’s not a big deal as they are easy enough to
fix at commit time. However, if you are going to update the patches
anyway... :)

Thanks!


-- Tim
J
J
Jonathan Frederickson wrote on 4 Dec 2020 02:56
(name . Timothy Sample)(address . samplet@ngyro.com)
4a143acb-6b03-bc7f-12f3-17da26545f56@terracrypt.net
On 12/3/20 3:52 PM, Timothy Sample wrote
Toggle quote (15 lines)
> With respect to the patches, I managed to apply them all, build all of
> the packages, and run the assistant, so that’s good! However, most of
> the packages are more recent then the versions given in the Stackage LTS
> Haskell 14.27 list <https://www.stackage.org/lts-14.27>, which we follow
> to maintain a consistent package set. Please see
> <https://lists.gnu.org/archive/html/guix-patches/2020-12/msg00086.html>
> for an explanation. (The short version is that the problem is not
> really your fault but rather the fault of our tools suggesting at every
> turn to do the wrong thing.) All of the packages except ghc-hjsmin and
> ghc-cryptonite-conduit are too recent
>
> Would you mind sending an updated patch set with the LTS Haskell 14.27
> versions? As of recently, if you run “guix lint” on Haskell packages it
> will warn you if the version is wrong and suggest the correct version.

Oh, oops! Thanks for letting me know. I used the Hackage importer, but I
suppose using the Stackage importer would've been a better starting point?

Anyway, I can make these changes, but... I noticed the thread you linked
to about adding hledger-web includes some of the same dependencies!
Would you suggest that I just go ahead and fix my patch series, and
we'll deal with any conflicts as they come up?

Toggle quote (5 lines)
> Besides that, there are a few minor issues in the descriptions. Mostly
> incomplete sentences. It’s not a big deal as they are easy enough to
> fix at commit time. However, if you are going to update the patches
> anyway... :)

Got it, I'll update those as well.
T
T
Timothy Sample wrote on 4 Dec 2020 15:34
(name . Jonathan Frederickson)(address . jonathan@terracrypt.net)
87r1o5skrm.fsf@ngyro.com
Hi Jonathan,

Jonathan Frederickson <jonathan@terracrypt.net> writes:

Toggle quote (20 lines)
> On 12/3/20 3:52 PM, Timothy Sample wrote
>> With respect to the patches, I managed to apply them all, build all of
>> the packages, and run the assistant, so that’s good! However, most of
>> the packages are more recent then the versions given in the Stackage LTS
>> Haskell 14.27 list <https://www.stackage.org/lts-14.27>, which we follow
>> to maintain a consistent package set. Please see
>> <https://lists.gnu.org/archive/html/guix-patches/2020-12/msg00086.html>
>> for an explanation. (The short version is that the problem is not
>> really your fault but rather the fault of our tools suggesting at every
>> turn to do the wrong thing.) All of the packages except ghc-hjsmin and
>> ghc-cryptonite-conduit are too recent
>> Would you mind sending an updated patch set with the LTS Haskell
>> 14.27
>> versions? As of recently, if you run “guix lint” on Haskell packages it
>> will warn you if the version is wrong and suggest the correct version.
>
> Oh, oops! Thanks for letting me know. I used the Hackage importer, but
> I suppose using the Stackage importer would've been a better starting
> point?

Yup! The Stackage importer will do the right thing.

Toggle quote (5 lines)
> Anyway, I can make these changes, but... I noticed the thread you
> linked to about adding hledger-web includes some of the same
> dependencies! Would you suggest that I just go ahead and fix my patch
> series, and we'll deal with any conflicts as they come up?

I think that makes sense. There should be no big conflicts, since we’ll
end up with the LTS Haskell versions of each package either way. The
only unfortunate thing is the duplication of work. I guess that’s hard
to avoid with a large, distributed, and disorganized group of
volunteers. :)

Toggle quote (7 lines)
>> Besides that, there are a few minor issues in the descriptions. Mostly
>> incomplete sentences. It’s not a big deal as they are easy enough to
>> fix at commit time. However, if you are going to update the patches
>> anyway... :)
>
> Got it, I'll update those as well.

Thanks!


-- Tim
?