diff mbox series

[bug#49079] gnu: Add ocaml-calendar.

Message ID f3f79401d870706b5db7dc6843803260adee500d.1623963181.git.public@yoctocell.xyz
State Accepted
Headers show
Series [bug#49079] gnu: Add ocaml-calendar. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Xinglu Chen June 17, 2021, 8:54 p.m. UTC
* gnu/packages/ocaml.scm (ocaml-calendar): New variable.
---
 gnu/packages/ocaml.scm | 47 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)


base-commit: d7fe0414fc18b83d7a1c284b4b411def6a115100

Comments

Julien Lepiller June 18, 2021, 10:17 p.m. UTC | #1
Le Thu, 17 Jun 2021 22:54:52 +0200,
Xinglu Chen <public@yoctocell.xyz> a écrit :

> * gnu/packages/ocaml.scm (ocaml-calendar): New variable.
> ---

Pushed as dee608a1bb09e691e32203f2493975d71318c296 to master, thank you!

Note that the package embedded time, so it was not deterministic. Since
it was simple to locate, I added a phase that replaces the date with a
constant string. I also moved "tests" on the same line as #:test-target.
Xinglu Chen June 19, 2021, 8:32 a.m. UTC | #2
On Sat, Jun 19 2021, Julien Lepiller wrote:

> Le Thu, 17 Jun 2021 22:54:52 +0200,
> Xinglu Chen <public@yoctocell.xyz> a écrit :
>
>> * gnu/packages/ocaml.scm (ocaml-calendar): New variable.
>> ---
>
> Pushed as dee608a1bb09e691e32203f2493975d71318c296 to master, thank you!
>
> Note that the package embedded time, so it was not deterministic. Since
> it was simple to locate, I added a phase that replaces the date with a
> constant string. I also moved "tests" on the same line as #:test-target.

Thank you for catching this!
diff mbox series

Patch

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index dcfe8ce391..35c6d4e45e 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -20,6 +20,7 @@ 
 ;;; Copyright © 2020, 2021 pukkamustard <pukkamustard@posteo.net>
 ;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2045,6 +2046,52 @@  manipulate such data.")
 spans without being subject to operating system calendar time adjustments.")
     (license license:isc)))
 
+(define-public ocaml-calendar
+  ;; No tags.
+  ;; Commit from 2019-02-03.
+  (let ((commit "a447a88ae3c1e9873e32d2a95d3d3e7c5ed4a7da")
+        (revision "0"))
+    (package
+      (name "ocaml-calendar")
+      ;; Makefile.in says 2.04.
+      (version (git-version "2.04" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ocaml-community/calendar")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "09d9gyqm3zkf3z2m9fx87clqihx6brf8rnzm4yq7c8kf1p572hmc"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:test-target
+         "tests"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'set-environment-variables
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (setenv "OCAMLFIND_DESTDIR"
+                         (string-append out "/lib/ocaml/site-lib"))
+                 (setenv "OCAMLFIND_LDCONF" "ignore")
+                 (mkdir-p (string-append
+                           out "/lib/ocaml/site-lib/calendar"))))))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)))
+      (propagated-inputs
+       `(("ocaml" ,ocaml)
+         ("ocamlfind" ,ocaml-findlib)))
+      (home-page "https://github.com/ocaml-community/calendar")
+      (synopsis "OCaml library for handling dates and times")
+      (description "This package provides types and operations over
+dates and times.")
+      ;; With linking exception.
+      (license license:lgpl2.1+))))
+
 (define-public ocaml-cmdliner
   (package
     (name "ocaml-cmdliner")