You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
geopub/guix.scm

656 lines
20 KiB
Scheme

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

(use-modules
(guix packages)
(guix download)
(guix git-download)
(guix build-system dune)
(guix build-system ocaml)
((guix licenses) #:prefix license:)
(gnu packages base)
(gnu packages maths)
(gnu packages multiprecision)
(gnu packages pkg-config)
(gnu packages pv)
(gnu packages ocaml)
(gnu packages rdf)
(gnu packages zig))
(define-public ocaml-crunch
(package
(name "ocaml-crunch")
(version "3.2.0")
(home-page "https://github.com/mirage/ocaml-crunch")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(sha256
(base32
"0xsa9gciszz66q8firfzqxdg7h9v8l95xp86ngr5p4sljrj03cx2"))))
(build-system dune-build-system)
;; require mirage-kv
(arguments '(#:tests? #f))
(propagated-inputs (list ocaml-cmdliner ocaml-ptime))
(native-inputs (list ocaml-lwt))
(synopsis "Convert a filesystem into a static OCaml module")
(description
"`ocaml-crunch` takes a directory of files and compiles them into a standalone
OCaml module which serves the contents directly from memory. This can be
convenient for libraries that need a few embedded files (such as a web server)
and do not want to deal with all the trouble of file configuration.")
(license license:isc)))
(define-public ocaml-decoders
(package
(name "ocaml-decoders")
(version "0.7.0")
(home-page "https://github.com/mattjbray/ocaml-decoders")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(sha256
(base32
"1h5q66nlapbjyqpjn93zpiwdvb9b2kxxgqw2jxyp6a5y815k5hfj"))))
(build-system dune-build-system)
(arguments `(#:tests? #f
#:package "decoders"))
(synopsis "Elm-inspired decoders for Ocaml")
(description
"This package provides a combinator library for \"decoding\" JSON-like values into
your own Ocaml types, inspired by Elm's `Json.Decode` and `Json.Encode`.")
(license license:isc)))
(define-public ocaml-decoders-yojson
(package
(inherit ocaml-decoders)
(name "ocaml-decoders-yojson")
(build-system dune-build-system)
(arguments `(#:tests? #f
#:package "decoders-yojson"))
(propagated-inputs (list ocaml-decoders ocaml-yojson))))
(define-public ocaml-monocypher
(package
(name "ocaml-monocypher")
(version "0.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://inqlab.net/git/ocaml-monocypher.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0pgmlcdg3hkiv97lfw0mza1q1k39hdz98b7xl3ri0prd4zhjm212"))))
(build-system dune-build-system)
(arguments '())
(propagated-inputs
(list ocaml-ctypes))
(native-inputs
(list ocaml-alcotest))
(home-page "https://inqlab.net/ocaml-monocypher.git")
(synopsis "OCaml bindings to the Monocypher cryptographic library")
(description "Monocypher is a cryptographic library. It provides functions
for authenticated encryption, hashing, password hashing and key derivation, key
exchange, and public key signatures. This library provides OCaml bindings to
Monocypher using Ctypes.")
(license license:bsd-2)))
(define-public ocaml-eris
(package
(name "ocaml-eris")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://inqlab.net/git/ocaml-eris.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1kdmgi9mlgd2d0915i4jhjwsgwchzwf8fvqg1xas293lg90iiq3h"))))
(build-system dune-build-system)
(arguments `(#:package "eris"
#:phases (modify-phases %standard-phases
;; required by Zig
(add-before 'build 'set-xdg-cache-home
(lambda _
(setenv "XDG_CACHE_HOME" "/tmp")
#t)))))
(native-inputs
(list zig
ocaml-crunch
ocaml-decoders-yojson
ocaml-bos
ocaml-alcotest
ocaml-qcheck
ocaml-benchmark))
(propagated-inputs
(list ocaml-ctypes
ocaml-monocypher
ocaml-base32
ocaml-cborl
ocaml-lwt
js-of-ocaml))
(home-page "https://codeberg.org/eris/ocaml-eris")
(synopsis "OCaml implementation of ERIS")
(description #f)
(license license:agpl3+)))
(define-public ocaml-cborl
(package
(name "ocaml-cborl")
(version "0.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://inqlab.net/git/ocaml-cborl.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"15bw3s82qpwxs9q42sx9rm0qjk1kdy3zm8m283rc907mls0rjx1i"))))
(build-system dune-build-system)
(arguments '())
(propagated-inputs
(list ocaml-zarith gmp ocaml-fmt))
(native-inputs
(list ocaml-alcotest ocaml-qcheck))
(home-page "https://inqlab.net/git/ocaml-cborl")
(synopsis "OCaml CBOR library")
(description
"The Concise Binary Object Representation (CBOR), as specified by
RFC 8949, is a binary data serialization format. CBOR is similar to
JSON but serializes to binary which is smaller and faster to generate
and parse. This package provides an OCaml implementation of CBOR.")
(license license:agpl3+)))
(define-public ocaml-rdf
(package
(name "ocaml-rdf")
(version "19033af69fe700c75c55b3fd3c61d4b8bdb2c62d")
(home-page "https://codeberg.org/openEngiadina/ocaml-rdf.git")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "182zhdp2fcnsvg0sdba5whkh8db1dmzdj9grqf94337fwn9cd2ss"))))
(build-system dune-build-system)
(arguments `(#:tests? #f))
(native-inputs
(list ocaml-alcotest
ocaml-qcheck))
(propagated-inputs
(list
;; core dependencies
ocaml-uri
ocaml-fmt
ocaml-uuidm
;; serializations
ocaml-yojson
ocaml-xmlm
ocaml-uunf
ocaml-sedlex
;; CBOR
ocaml-cborl
ocaml-base64
ocaml-base32
ocaml-uri
ocaml-z3 z3))
(synopsis "RDF library for OCaml")
(description #f)
(license license:agpl3+)))
(define-public ocaml-ptime
(package
(name "ocaml-ptime")
(version "0.8.5")
(source
(origin
(method url-fetch)
(uri "https://erratique.ch/software/ptime/releases/ptime-0.8.5.tbz")
(sha256
(base32
"1fxq57xy1ajzfdnvv5zfm7ap2nf49znw5f9gbi4kb9vds942ij27"))))
(build-system ocaml-build-system)
(arguments
`(#:build-flags (list "build" "--with-js_of_ocaml" "true" "--tests" "true")
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(propagated-inputs
`(("ocaml-result" ,ocaml-result)
("js-of-ocaml" ,js-of-ocaml)))
(native-inputs
`(("ocaml-findlib" ,ocaml-findlib)
("ocamlbuild" ,ocamlbuild)
("ocaml-topkg" ,ocaml-topkg)
("opam" ,opam)))
(home-page "https://erratique.ch/software/ptime")
(synopsis "POSIX time for OCaml")
(description
"Ptime offers platform independent POSIX time support in pure OCaml. It
provides a type to represent a well-defined range of POSIX timestamps
with picosecond precision, conversion with date-time values,
conversion with [RFC 3339 timestamps][rfc3339] and pretty printing to a
human-readable, locale-independent representation.")
(license license:isc)))
(define-public ocaml-note
(package
(name "ocaml-note")
(version "0.0.2")
(source
(origin
(method url-fetch)
(uri "https://erratique.ch/software/note/releases/note-0.0.2.tbz")
(sha256
(base32
"09la36kpb3hcfyhgkhr1j3b6l3g4jy9b0ps3qbm04pfll1qmfzkg"))))
(build-system ocaml-build-system)
(arguments `(#:build-flags (list "build" "--tests" "true")
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
`(("ocaml-findlib" ,ocaml-findlib)
("ocamlbuild" ,ocamlbuild)
("ocaml-topkg" ,ocaml-topkg)
("opam" ,opam)))
(home-page "https://erratique.ch/software/note")
(synopsis
"Declarative events and signals for OCaml")
(description
"
Note is an OCaml library for functional reactive programming (FRP). It
provides support to program with time varying values: declarative
events and signals.
Note is distributed under the ISC license.
")
(license license:isc)))
(define-public ocaml-brr
(package
(name "ocaml-brr")
(version "0.0.3")
(source
(origin
(method url-fetch)
(uri
(string-append
"https://erratique.ch/software/brr/releases/brr-" version
".tbz"))
(sha256
(base32
"0vmh3imq18yybmc3h24wr0z28ql187nwps3kq4n9nsxc7fip3kgl"))))
(build-system ocaml-build-system)
(arguments `(#:build-flags (list "build" "--tests" "true")
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(propagated-inputs
`(("js-of-ocaml" ,js-of-ocaml)
("ocaml-note" ,ocaml-note)))
(native-inputs
`(("ocaml-findlib" ,ocaml-findlib)
("ocamlbuild" ,ocamlbuild)
("ocaml-topkg" ,ocaml-topkg)
("opam" ,opam)))
(home-page "https://erratique.ch/software/brr")
(synopsis "Browser programming toolkit for OCaml")
(description
"Brr is a toolkit for programming browsers in OCaml with the
[`js_of_ocaml`][jsoo] compiler. It provides:
* Interfaces to a selection of browser APIs.
* Note based reactive support (optional and experimental).
* An OCaml console developer tool for live interaction
with programs running in web pages.
* A JavaScript FFI for idiomatic OCaml programming.
Brr is distributed under the ISC license. It depends on [Note][note]
and on the `js_of_ocaml` compiler and runtime but not on its\nlibraries or syntax extension.
[note]: https://erratique.ch/software/note
[jsoo]: https://ocsigen.org/js_of_ocaml
")
(license license:isc)))
(define-public ocaml-base32
(package
(name "ocaml-base32")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://inqlab.net/git/ocaml-base32.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ccalgcnx178dmnb3523gv47xf0hbfry45pg7dix64bn86niq4b1"))))
(build-system dune-build-system)
(native-inputs
(list ocaml-alcotest ocaml-qcheck))
(home-page "https://inqlab.net/git/ocaml-base32.git")
(synopsis "Base32 encoding for OCaml")
(description "Base32 is a binary-to-text encoding that represents
binary data in an ASCII string format by translating it into a
radix-32 representation. It is specified in RFC 4648.")
(license license:isc)))
(define-public ocaml-lwt-ssl
(package
(name "ocaml-lwt-ssl")
(version "1.1.3")
(home-page "https://github.com/ocsigen/lwt_ssl")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0v417ch5zn0yknj156awa5mrq3mal08pbrvsyribbn63ix6f9y3p"))))
(build-system dune-build-system)
(arguments `(#:test-target "."))
(propagated-inputs
`(("ocaml-lwt" ,ocaml-lwt)
("ocaml-ssl" ,ocaml-ssl)))
(properties `((upstream-name . "lwt_ssl")))
(synopsis "OpenSSL binding for OCaml with concurrent I/O")
(description "This OCaml library provides an Lwt-enabled wrapper around
@code{ocaml-ssl}, that performs I/O concurrently.")
(license license:lgpl2.1+))) ; with linking exception
(define-public ocaml-logs
(package
(name "ocaml-logs")
(version "0.7.0")
(source (origin
(method url-fetch)
(uri (string-append "http://erratique.ch/software/logs/releases/"
"logs-" version ".tbz"))
(sha256
(base32
"1jnmd675wmsmdwyb5mx5b0ac66g4c6gpv5s4mrx2j6pb0wla1x46"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f
#:build-flags (list "build" "--with-js_of_ocaml" "true")
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
`(("ocamlbuild" ,ocamlbuild)
("opam" ,opam)))
(propagated-inputs
`(("fmt" ,ocaml-fmt)
("lwt" ,ocaml-lwt)
("mtime" ,ocaml-mtime)
("result" ,ocaml-result)
("cmdliner" ,ocaml-cmdliner)
("js-of-ocaml" ,js-of-ocaml)
("topkg" ,ocaml-topkg)))
(home-page "https://erratique.ch/software/logs")
(synopsis "Logging infrastructure for OCaml")
(description "Logs provides a logging infrastructure for OCaml. Logging is
performed on sources whose reporting level can be set independently. Log
message report is decoupled from logging and is handled by a reporter.")
(license license:isc)))
(define-public ocaml-markup-lwt
(package
(inherit ocaml-markup)
(name "ocaml-markup-lwt")
(arguments `(#:package "markup-lwt"))
(propagated-inputs
`(("ocaml-bisect-ppx" ,ocaml-bisect-ppx)
("ocaml-uchar" ,ocaml-uchar)
("ocaml-uutf" ,ocaml-uutf)
("ocaml-lwt" ,ocaml-lwt)
("ocaml-markup" ,ocaml-markup)))))
(define-public ocaml-alcotest-lwt
(package
(inherit ocaml-alcotest)
(name "ocaml-alcotest-lwt")
(arguments
`(#:package "alcotest-lwt"
#:test-target "."
;; TODO fix tests
#:tests? #f))
(propagated-inputs
`(("ocaml-alcotest" ,ocaml-alcotest)
("ocaml-lwt" ,ocaml-lwt)
("ocaml-logs" ,ocaml-logs)))
(native-inputs
`(("ocaml-re" ,ocaml-re)
("ocaml-cmdliner" ,ocaml-cmdliner)))))
(define-public ocaml-xmppl
(package
(name "ocaml-xmppl")
(version "c2b9bf97e09059ba10b937a3b3b46fc759ba8612")
(home-page "https://codeberg.org/openEngiadina/ocaml-xmppl.git")
(source
(origin (method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "17aikvs3zq255kajimvsh29qzvlmhb9xmy91fcrny0a2alhkrzv7"))))
;; (arguments `(#:tests? #f))
(build-system dune-build-system)
(native-inputs
`(("alcotest" ,ocaml-alcotest)
("ocaml-alcotest-lwt" ,ocaml-alcotest-lwt)
("qcheck" ,ocaml-qcheck)))
(propagated-inputs
`(("ocaml-lwt" ,ocaml-lwt)
("ocaml-logs" ,ocaml-logs)
("ocaml-fmt" ,ocaml-fmt)
("ocaml-uunf" ,ocaml-uunf)
("ocaml-cmdliner" ,ocaml-cmdliner)
("ocaml-lwt-react" ,ocaml-lwt-react)
("ocaml-angstrom" ,ocaml-angstrom)
("ocaml-markup" ,ocaml-markup)
("ocaml-markup-lwt" ,ocaml-markup-lwt)
("ocaml-xmlm" ,ocaml-xmlm)
("ocaml-digestif" ,ocaml-digestif)
("ocaml-cstruct" ,ocaml-cstruct)
("ocaml-base64" ,ocaml-base64)
("ocaml-brr" ,ocaml-brr)
("ocaml-lwt-ssl" ,ocaml-lwt-ssl)
("js-of-ocaml" ,js-of-ocaml)))
(synopsis #f)
(description #f)
(license license:agpl3+)))
(define-public ocaml-zarith-stubs-js
(package
(name "ocaml-zarith-stubs-js")
(version "0.15.0")
(source
(origin
(method url-fetch)
(uri "https://ocaml.janestreet.com/ocaml-core/v0.15/files/zarith_stubs_js-v0.15.0.tar.gz")
(sha256
(base32 "03sk4awj6wgxq740k0132y1f53q7gz8lw4pd9slf4xynhgw34pps"))))
(build-system dune-build-system)
(arguments `(#:tests? #f))
(properties `((upstream-name . "zarith_stubs_js")))
(home-page "https://github.com/janestreet/zarith_stubs_js")
(synopsis "Javascripts stubs for the Zarith library")
(description
" This library contains no ocaml code, but instead implements all of the Zarith C
stubs in Javascript for use in Js_of_ocaml")
(license license:expat)))
(define-public ocaml-leaflet
(package
(name "ocaml-leaflet")
(version "0.1")
(source
(origin (method git-fetch)
(uri (git-reference
(url "https://git.zapashcanon.fr/swrup/leaflet.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1g832ab6fgjccq6i6q7kzh3v1bh8caw4nsgv8cx4y9kcxq5xz4cd"))))
(build-system dune-build-system)
(propagated-inputs
(list ocaml-brr js-of-ocaml))
(home-page "https://git.zapashcanon.fr/swrup/leaflet")
(synopsis "OCaml bindings for the Leaflet JavaScript library")
(description #f)
(license license:bsd-2)))
(define-public ocaml-datalogl
(package
(name "ocaml-datalogl")
(version "fb12e88def656668018834d69fe8fcd76664ca34")
(home-page "https://codeberg.org/openEngiadina/ocaml-datalogl")
(source
(origin (method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "18yikrdr5lvg3sbc37vkcifv9wqjf5cfzxag7q8hskkdvj6ajmca"))))
(build-system dune-build-system)
(arguments '())
(propagated-inputs
(list ocaml-fmt
ocaml-logs
ocaml-lwt
ocaml-angstrom))
(native-inputs
(list ocaml-alcotest ocaml-alcotest-lwt))
(synopsis "A Datalog library for OCaml")
(description #f)
(license license:agpl3+)))
(define-public ocaml-hmap
(package
(name "ocaml-hmap")
(version "0.8.1")
(source
(origin
(method url-fetch)
(uri "http://erratique.ch/software/hmap/releases/hmap-0.8.1.tbz")
(sha256
(base32 "10xyjy4ab87z7jnghy0wnla9wrmazgyhdwhr4hdmxxdn28dxn03a"))))
(build-system ocaml-build-system)
(arguments
`(#:build-flags
(list "build" "--tests" "true")
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs (list ocaml-topkg ocamlbuild opam))
(home-page "http://erratique.ch/software/hmap")
(synopsis "Heterogeneous value maps for OCaml")
(description
"Hmap provides heterogeneous value maps for OCaml. These maps bind keys to
values with arbitrary types. Keys witness the type of the value they are bound
to which allows to add and lookup bindings in a type safe manner.
Hmap has no dependency and is distributed under the ISC license.")
(license license:isc)))
(define-public ocaml-archi
(package
(name "ocaml-archi")
(version "0.2.0")
(home-page "https://github.com/anmonteiro/archi")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"009rkx7qnwk9yqgmydsa5v8ram79lknzzy0vlw0rqa1i5mdx93gj"))))
(build-system dune-build-system)
(arguments `(#:package "archi"))
(propagated-inputs (list ocaml-hmap))
(native-inputs (list ocaml-alcotest))
(synopsis
"A library for managing the lifecycle of stateful components in OCaml")
(description
"Archi is an OCaml library for managing the lifecycle of stateful components and
their dependencies.")
(license license:bsd-3)))
(define-public ocaml-archi-lwt
(package
(inherit ocaml-archi)
(name "ocaml-archi-lwt")
(arguments `(#:package "archi-lwt"))
(propagated-inputs (list ocaml-archi ocaml-lwt))))
(define-public geopub
(package
(name "geopub")
(version "0.0.0")
(source #f)
(build-system dune-build-system)
(arguments '())
(native-inputs
(list
;; web
js-of-ocaml
ocaml-brr
ocaml-zarith-stubs-js
ocaml-react
ocaml-lwt-react
;; JS bindings
ocaml-leaflet
;; RDF
ocaml-rdf
ocaml-uri
raptor2
;; Database
ocaml-datalogl
ocaml-uuseg
;; XMPP
ocaml-xmppl
;; Content-addressing
ocaml-eris
;; General utils
ocaml-archi-lwt
ocaml-ptime
ocaml-base32))
(home-page "https://gitlab.com/openengiadina/geopub")
(synopsis #f)
(description #f)
(license license:agpl3+)))
geopub