From patchwork Wed Apr 24 01:54:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Lobo Torres X-Patchwork-Id: 63333 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B9FFD27BBEA; Wed, 24 Apr 2024 14:55:43 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id F0D2A27BBE2 for ; Wed, 24 Apr 2024 14:55:41 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rzd5M-0006OX-Ik; Wed, 24 Apr 2024 09:54:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rzRrc-0001sv-3z for guix-patches@gnu.org; Tue, 23 Apr 2024 21:56:00 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rzRrb-00031D-Sb for guix-patches@gnu.org; Tue, 23 Apr 2024 21:55:59 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rzRrp-0006OE-JL; Tue, 23 Apr 2024 21:56:13 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70545] [PATCH 2/2] gnu: Add soupault. Resent-From: Lobo Torres Original-Sender: "Debbugs-submit" Resent-CC: julien@lepiller.eu, pukkamustard@posteo.net, guix-patches@gnu.org Resent-Date: Wed, 24 Apr 2024 01:56:13 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70545 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 70545@debbugs.gnu.org Cc: Lobo Torres , Julien Lepiller , pukkamustard X-Debbugs-Original-Xcc: Julien Lepiller , pukkamustard Received: via spool by 70545-submit@debbugs.gnu.org id=B70545.171392374624251 (code B ref 70545); Wed, 24 Apr 2024 01:56:13 +0000 Received: (at 70545) by debbugs.gnu.org; 24 Apr 2024 01:55:46 +0000 Received: from localhost ([127.0.0.1]:55572 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rzRrI-0006I5-Ui for submit@debbugs.gnu.org; Tue, 23 Apr 2024 21:55:45 -0400 Received: from fout2-smtp.messagingengine.com ([103.168.172.145]:53897) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rzRqw-0006DA-CM for 70545@debbugs.gnu.org; Tue, 23 Apr 2024 21:55:29 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfout.nyi.internal (Postfix) with ESMTP id 16261138030D; Tue, 23 Apr 2024 21:54:56 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Tue, 23 Apr 2024 21:54:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quiltro.org; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1713923696; x=1714010096; bh=2hoTcBaKiap5+UFYQcpwpmBUsZay2DiOqvrQZwLZ3E8=; b= soZG0v2AWZMuDDKq4Qcreu0DZoXHuBgyegLI5jJXCWwgHrPxh3ZLs+QWzZgnlOIa 5VSDX/0U41Me55UnGZFndIyH282Ezw6vvYIuLl6aoG0WGOl9gj7b1aWUtCI7ZT+f odtgnqL/s2itJXc8l/1kxj4U4IxGZfxYJvf+8ALRHOJySJ2g72+B6i23dEycdGdJ zli/yQ45g+Gno/jf0WL1a7dMJurU70pT8jj5RgdobIanyNw+NiBBKgcfjA6DYCG7 TMx6OPZN4ojkode/gouHsjn+w8u+mUT52dCGevlu9wov6rPn3QbKBlC54bhXlm26 OKXMzdZApqaTeAGxfBbmQg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1713923696; x= 1714010096; bh=2hoTcBaKiap5+UFYQcpwpmBUsZay2DiOqvrQZwLZ3E8=; b=L HloBsFD8vPyccRm7JAud7v93eWoayP1/PSx/tECR6NL7PBzGSdHIDn+nHCHicjBW /rq8cdn7gbxgsSY4kdXDqczJxuxbc5d9nqT7gXfSgSoociCN4crXjqbXKT3Xb0gC LgyCTY6dHQuvemzu9V6LG8DrtsumFyXTj75MOUEhWCLPi4uqMB6SpZuSnGG9V/w/ esEAA7d4C6WSBfYwuwBWnKOhV03r4hyPgndGFuv82cakVBTZedDtuM/CVcPQgkzv jMwSugB9SBF3gCMBrJQTBrBSBKUzvnR8cqd4N33Mf96kETSP9WXqsZUqPaoM3p8Q 3QufKL2VlUjAZidmQbMpg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudelvddgheefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvfevufffkffojghfgggtgfesth ekredtredtjeenucfhrhhomhepnfhosghoucfvohhrrhgvshcuoehlohgsohesqhhuihhl thhrohdrohhrgheqnecuggftrfgrthhtvghrnhepgeejtefhtdfgudetkeefhedutdduve ffhfduueejgeeffeekhffgueejvdduteegnecuffhomhgrihhnpehgihhthhhusgdrtgho mhdpshhouhhprghulhhtrdgrphhpnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomheplhhosghosehquhhilhhtrhhordhorhhg X-ME-Proxy: Feedback-ID: i31794918:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 23 Apr 2024 21:54:54 -0400 (EDT) From: Lobo Torres Date: Tue, 23 Apr 2024 21:54:36 -0400 Message-ID: <364b7672205833223030e6438e15cd6cd0e69f33.1713910041.git.lobo@quiltro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Wed, 24 Apr 2024 09:54:43 -0400 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/web.scm (soupault): New variable. * gnu/packages/ocaml.scm (ocaml-containers): New variable. * gnu/packages/ocaml.scm (ocaml-iter): New variable. * gnu/packages/ocaml.scm (ocaml-jingoo): New variable. * gnu/packages/ocaml.scm (ocaml-lambdasoup): New variable. * gnu/packages/ocaml.scm (ocaml-lua-ml): New variable. * gnu/packages/ocaml.scm (ocaml-odate): New variable. * gnu/packages/ocaml.scm (ocaml-otoml): New variable. * gnu/packages/ocaml.scm (ocaml-spelll): New variable. * gnu/packages/ocaml.scm (ocaml-tsort): New variable. Change-Id: Ifde96b25cea2ce7373a174c7c15dfa584ecd7064 --- gnu/packages/ocaml.scm | 233 +++++++++++++++++++++++++++++++++++++++++ gnu/packages/web.scm | 44 ++++++++ 2 files changed, 277 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 75a42058d6..97ba9c5cff 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -1710,6 +1710,56 @@ (define-public ocaml-junit-alcotest ;; with OCaml linking exception (license license:gpl3+))) +(define-public ocaml-jingoo + (package + (name "ocaml-jingoo") + (version "1.5.0") + (home-page "https://github.com/tategakibunko/jingoo") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08qymg1p598q75i7zlma17kwqms83iym46m0wdgfffi0rank0rpd")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-menhir ocaml-ppx-deriving ocaml-re + ocaml-uutf ocaml-uucp)) + (native-inputs (list ocaml-ounit)) + (synopsis "Template engine almost compatible with Jinja2") + (description "Jingoo is an OCaml template engine almost compatible with +Jinja2 (the Python template engine).") + (license license:expat))) + +(define-public ocaml-lambdasoup + (package + (name "ocaml-lambdasoup") + (version "1.0.0") + (home-page "https://github.com/aantron/lambdasoup") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04jd0rjjqcrzm0w490v2bg0bsyps9qgaw63q0fybp474kcvj369x")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-camlp-streams ocaml-markup)) + (native-inputs (list ocaml-bisect-ppx ocaml-ounit2)) + (synopsis "Functional HTML scraping and rewriting with CSS in OCaml") + (description + "Lambda Soup is a functional HTML scraping and manipulation +library for OCaml aimed at being easy to use. It provides a set of elementary +traversals for getting from node to node, familiar functional combinators such +as filter, map, and fold, and support for all CSS selectors that still make +sense when not running in a browser (and a few obvious extensions on top of +that).") + (license license:expat))) + (define-public camlzip (package (name "camlzip") @@ -2402,6 +2452,38 @@ (define-public ocaml-toml (home-page "https://github.com/ocaml-toml/To.ml") (license license:expat))) +(define-public ocaml-otoml + (package + (name "ocaml-otoml") + (version "1.0.5") + (home-page "https://github.com/dmbaturin/otoml") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cchvfwzxrckr4zj5psinq47z2y9lhvb5vyc5hjvi8l7l9vnml3v")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-menhir ocaml-uutf)) + (native-inputs (list ocaml-ounit2 ocaml-odoc)) + (synopsis + "TOML parsing, manipulation, and pretty-printing library (1.0.0-compliant)") + (description + "OTOML is a library for parsing, manipulating, and +pretty-printing TOML files. + +* Fully 1.0.0-compliant. +* No extra dependencies: default implementation uses native numbers and +represents dates as strings. +* Provides a functor for building alternative implementations: plug your own +bignum and calendar libraries if required. +* Informative parse error reporting. +* Pretty-printer offers flexible indentation options.") + (license license:expat))) + (define-public ocaml-grain-dypgen (package (name "ocaml-grain-dypgen") @@ -2630,6 +2712,32 @@ (define-public ocaml-calendar ;; With linking exception. (license license:lgpl2.1+)))) +(define-public ocaml-odate + (package + (name "ocaml-odate") + (version "0.7") + (home-page "https://github.com/hhugo/odate") + (source + (origin + (method url-fetch) + (uri (string-append home-page + "/releases/download/" + version + "/odate-" + version + ".tbz")) + (sha256 + (base32 "1bsmix8qbsk04a1l2x4lrh919xq6a3pmanvgkdlc5wwp3p42q6bl")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-menhir)) + (arguments + ;; broken tests, see https://github.com/hhugo/odate/issues/7 + '(#:tests? #f)) + (synopsis "Date & duration library for OCaml") + (description "Simple date and duration manipulation. Also implements +duration printer based on string format.") + (license license:expat))) + (define-public ocaml-cmdliner (package (name "ocaml-cmdliner") @@ -5551,6 +5659,59 @@ (define-public ocaml-zed capabilities, Zed provides macro recording and cursor management facilities.") (license license:bsd-3))) +(define-public ocaml-spelll + (package + (name "ocaml-spelll") + (version "0.4") + (home-page "https://github.com/c-cube/spelll") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rx8i98wqn8pp5rzb185i1xl4q40m06242gms1xp9jnq19s1z3ww")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-seq ocaml-stdlib-shims)) + (native-inputs (list ocaml-qcheck ocaml-mdx ocaml-odoc)) + (synopsis "Fuzzy string searching, using Levenshtein automaton") + (description "Fuzzy string searching, using Levenshtein automaton. Can be +used for spell-checking.") + (license license:bsd-2))) + +(define-public ocaml-tsort + (package + (name "ocaml-tsort") + (version "2.1.0") + (home-page "https://github.com/dmbaturin/ocaml-tsort") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07m88nxb9w6wv64h18xyz7js6flpglkk5c8lhs8wgh46r13p89s8")))) + (build-system dune-build-system) + (inputs (list ocaml-containers)) + (arguments + ;; no tests with dune build system + '(#:tests? #f)) + (synopsis + "Easy to use and user-friendly topological sort module for OCaml") + (description + "@code{ocaml-tsort} is a library for sorting graphs in topological +order. + +* Uses Kahn's algorithm. +* Easy to use, but not very fast. +* Provides friendly error reporting (e.g., if there's a cycle, tells you what +the offending nodes are).") + (license license:expat))) + (define-public ocaml-lambda-term (package (name "ocaml-lambda-term") @@ -6487,6 +6648,56 @@ (define-public ocaml5.0-base "15vsiv3q53l1bzrvqgspf3lp2104s9dzw62z3nl75f53jvjvsyf6")))) (properties '()))))) +(define-public ocaml-iter + (package + (name "ocaml-iter") + (version "1.8") + (home-page "https://github.com/c-cube/iter") + (source + (origin + (method url-fetch) + (uri (string-append home-page + "/releases/download/v" + version + "/iter-" + version + ".tbz")) + (sha256 + (base32 "08rhykcizbs21mri4zx1b6vg42a4wybl238cla5bmi79bah9qwzq")))) + (build-system dune-build-system) + (native-inputs (list ocaml-qcheck ocaml-ounit2 ocaml-mdx ocaml-odoc)) + (synopsis "Simple iterator abstract datatype") + (description + "A simple abstraction over @code{iter} functions intended to +iterate efficiently on collections while performing some transformations. +Common operations supported include @code{filter}, @code{map}, @code{take}, +@code{drop}, @code{append}, @code{flat_map}, etc.") + (license license:bsd-2))) + +(define-public ocaml-containers + (package + (name "ocaml-containers") + (version "3.13.1") + (home-page "https://github.com/c-cube/ocaml-containers") + (source + (origin + (method url-fetch) + (uri (string-append home-page + "/releases/download/v" + version + "/containers-" + version + ".tbz")) + (sha256 + (base32 "114pcswmscbh5mvniiarbk5jqma3kjs6w9bx2p2lzw1w5kmjd6zb")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-either)) + (native-inputs (list ocaml-qcheck ocaml-iter ocaml-gen ocaml-yojson ocaml-mdx)) + (synopsis "Lightweight, modular standard library extension of OCaml") + (description "Containers is an extension of OCaml's standard library +focused on data structures, combinators and iterators.") + (license license:bsd-2))) + (define-public ocaml-compiler-libs (package (name "ocaml-compiler-libs") @@ -9362,6 +9573,28 @@ (define-public ocaml-bibtex2html bibliography files in BibTeX format, a bibliography in HTML format.") (license license:gpl2))) +(define-public ocaml-lua-ml + (package + (name "ocaml-lua-ml") + (version "0.9.4") + (home-page "https://github.com/lindig/lua-ml") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rz9v7wss4i8jc87c9rmn7b3mhv1cdnxy1kcln6ibbd574gm7h4h")))) + (build-system dune-build-system) + (native-inputs (list ocaml-odoc)) + (synopsis "Embeddable Lua 2.5 interpreter implemented in OCaml") + (description + "Lua-ML is an implementation of the Lua 2.5 programming +language written in OCaml and designed for extending OCaml programs.") + (license license:bsd-2))) + (define-public ocaml-guile (package (name "ocaml-guile") diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index a71a0e07a3..d4149b571f 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -96,6 +96,7 @@ (define-module (gnu packages web) #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) + #:use-module (guix build-system dune) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system go) @@ -178,6 +179,7 @@ (define-module (gnu packages web) #:use-module (gnu packages networking) #:use-module (gnu packages node) #:use-module (gnu packages nss) + #:use-module (gnu packages ocaml) #:use-module (gnu packages openldap) #:use-module (gnu packages openstack) #:use-module (gnu packages package-management) @@ -8833,6 +8835,48 @@ (define-public kiln and can be extended with the use of external commands.") (license license:expat))) +(define-public soupault + (package + (name "soupault") + (version "4.10.0") + (home-page "https://soupault.app/") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PataphysicalSociety/soupault") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17jxxlrxpwsmhn9g7zf36pq842vh7l8122f4v1jbm3qh1rdx2ils")))) + (build-system dune-build-system) + (inputs (list ocaml-base64 + ocaml-camomile + ocaml-containers + ocaml-csv + ocaml-digestif + ocaml-ezjsonm + ocaml-fileutils + ocaml-fmt + ocaml-jingoo + ocaml-lambdasoup + ocaml-lua-ml + ocaml-logs + ocaml-markup + ocaml-odate + ocaml-otoml + ocaml-re + ocaml-spelll + ocaml-tsort + ocaml-yaml)) + (synopsis "Static website management tool") + (description + "A static website generator/framework that works with HTML +element trees and can automatically manipulate them. It can be described as a +robotic webmaster that can edit HTML pages according to your rules, but +doesn’t get tired of editing them.") + (license license:expat))) + (define-public siege (package (name "siege")