* [bug#28546] Add some ocaml packages @ 2017-09-21 20:46 Julien Lepiller 2017-09-22 4:09 ` Eric Bavier 0 siblings, 1 reply; 5+ messages in thread From: Julien Lepiller @ 2017-09-21 20:46 UTC (permalink / raw) To: 28546 [-- Attachment #1: Type: text/plain, Size: 370 bytes --] Hi, here are 10 new ocaml packages. It adds bap, a binary static analyzer, that I worked so hard to add the dependencies of, and camomile, a dependency of utop, the next thing I want in guix. After this, there will be a small series of patches to add utop, and I will be done with the ocaml packages. Then I'll try to update our ocaml packages and the compiler itself. [-- Attachment #2: 0001-gnu-Add-ocaml-ezjsonm.patch --] [-- Type: text/x-patch, Size: 1982 bytes --] From d177cda39184fd1a1a879feb93f133eecd3bbcc4 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:32:27 +0200 Subject: [PATCH 01/10] gnu: Add ocaml-ezjsonm. * gnu/packages/ocaml.scm (ocaml-ezjsonm): New variable. --- gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 700c5698e..d765a085a 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3197,6 +3197,36 @@ writing to these structures, and they are accessed via the Bigarray module.") (description "Hex is a minimal library providing hexadecimal converters.") (license license:isc))) +(define-public ocaml-ezjsonm + (package + (name "ocaml-ezjsonm") + (version "0.4.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/ezjsonm/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1kag0z2xlk4rw73a240dmkxh9rj6psxxcxkm7d7z0rrj6hzjajgq")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("alcotest" ,ocaml-alcotest))) + (propagated-inputs + `(("hex" ,ocaml-hex) + ("jsonm" ,ocaml-jsonm) + ("lwt" ,ocaml-lwt) + ("sexplib" ,ocaml-sexplib))) + (arguments + `(#:configure-flags (list "--enable-lwt"))) + (home-page "https://github.com/mirage/ezjsonm/") + (synopsis "Easy interface on top of the Jsonm library") + (description "Ezjsonm provides more convenient (but far less flexible) input +and output functions that go to and from [string] values than jsonm. This avoids +the need to write signal code, which is useful for quick scripts that manipulate +JSON.") + (license license:isc))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #3: 0002-gnu-Add-ocaml-uri.patch --] [-- Type: text/x-patch, Size: 1717 bytes --] From 395199079f38b96299dbc02b14a945236ef7d6fe Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:33:33 +0200 Subject: [PATCH 02/10] gnu: Add ocaml-uri. * gnu/packages/ocaml.scm (ocaml-uri): New variable. --- gnu/packages/ocaml.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index d765a085a..c2932634a 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3227,6 +3227,32 @@ the need to write signal code, which is useful for quick scripts that manipulate JSON.") (license license:isc))) +(define-public ocaml-uri + (package + (name "ocaml-uri") + (version "1.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/ocaml-uri/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "02bzrag79prx261rxf9mlak749pwf4flpfl8p012x1xznv9m0clc")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("ounit" ,ocaml-ounit))) + (propagated-inputs + `(("ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("re" ,ocaml-re) + ("ppx-deriving" ,ocaml-ppx-deriving) + ("sexplib" ,ocaml-sexplib) + ("stringext" ,ocaml-stringext))) + (home-page "https://github.com/mirage/ocaml-uri") + (synopsis "RFC3986 URI/URL parsing library") + (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.") + (license license:isc))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #4: 0003-gnu-Add-ocaml-easy-format.patch --] [-- Type: text/x-patch, Size: 1637 bytes --] From cce3c981b31586a0cf334f4f21f650649212e505 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:34:27 +0200 Subject: [PATCH 03/10] gnu: Add ocaml-easy-format. * gnu/packages/ocaml.scm (ocaml-easy-format): New variable. --- gnu/packages/ocaml.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index c2932634a..b07a8ba7d 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3253,6 +3253,29 @@ JSON.") (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.") (license license:isc))) +(define-public ocaml-easy-format + (package + (name "ocaml-easy-format") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mjambon/easy-format/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "1zcz682y9figa84k7lgdjcab5qbzk3yy14ygfqp2dhhrvjygm252")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/mjambon/easy-format") + (synopsis "Interface to the Format module") + (description "Easy-format is a high-level and functional interface to the +Format module of the OCaml standard library.") + (license license:bsd-3))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #5: 0004-gnu-Add-ocaml-optcomp.patch --] [-- Type: text/x-patch, Size: 1793 bytes --] From 8a8f1bedad93fe403df7d374515340f7f2462b2a Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:35:17 +0200 Subject: [PATCH 04/10] gnu: Add ocaml-optcomp. * gnu/packages/ocaml.scm (ocaml-optcomp): New variable. --- gnu/packages/ocaml.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index b07a8ba7d..910c892d6 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3276,6 +3276,33 @@ JSON.") Format module of the OCaml standard library.") (license license:bsd-3))) +(define-public ocaml-optcomp + (package + (name "ocaml-optcomp") + (version "1.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/diml/optcomp/archive/" + version ".tar.gz")) + (sha256 + (base32 + "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:use-make? #t + #:make-flags + (list (string-append "BUILDFLAGS=\"-cflags -I," + (assoc-ref %build-inputs "camlp4") + "/lib/ocaml/site-lib/camlp4/Camlp4Parsers\"")))) + (native-inputs `(("camlp4" ,camlp4))) + (propagated-inputs `(("camlp4" ,camlp4))) + (home-page "https://github.com/diml/optcomp") + (synopsis "Optional compilation with cpp-like directives") + (description "Optcomp provides an optional compilation facility with +cpp-like directives.") + (license license:bsd-3))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #6: 0005-gnu-Add-ocaml-piqilib.patch --] [-- Type: text/x-patch, Size: 3059 bytes --] From 3887a8aa6b8610f4ccfece291d7c8bc12a3966bf Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:44:57 +0200 Subject: [PATCH 05/10] gnu: Add ocaml-piqilib. * gnu/packages/ocaml.scm (ocaml-piqilib): New variable. --- gnu/packages/ocaml.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 910c892d6..86fe1a9e4 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3303,6 +3303,59 @@ Format module of the OCaml standard library.") cpp-like directives.") (license license:bsd-3))) +(define-public ocaml-piqilib + (package + (name "ocaml-piqilib") + (version "0.6.13") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/alavrik/piqi/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "1whqr2bb3gds2zmrzqnv8vqka9928w4lx6mi6g244kmbwb2h8d8l")) + (file-name (string-append name "-" version ".tar.gz")) + (patches (search-patches "ocaml-piqilib-fix-makefile.patch")))) + (build-system ocaml-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "make/OCamlMakefile" + (("/bin/sh") (which "bash"))) + (zero? (system* "./configure" "--prefix" out "--ocaml-libdir" + (string-append out "/lib/ocaml/site-lib")))))) + (add-after 'build 'build-ocaml + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "make" "ocaml")))) + (add-after 'install 'install-ocaml + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "make" "ocaml-install")))) + (add-after 'install-ocaml 'link-stubs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) + (lib (string-append out "/lib/ocaml/site-lib/piqilib"))) + (mkdir-p stubs) + (symlink (string-append lib "/dllpiqilib_stubs.so") + (string-append stubs "/dllpiqilib_stubs.so")))))))) + (native-inputs + `(("which" ,which) + ("camlp4" ,camlp4))) + (propagated-inputs + `(("xmlm" ,ocaml-xmlm) + ("ulex" ,ocaml-ulex) + ("optcomp" ,ocaml-optcomp) + ("easy-format" ,ocaml-easy-format) + ("base64" ,ocaml-base64))) + (home-page "http://piqi.org") + (synopsis "Data serialization and conversion library") + (description "Piqilib is the common library used by the piqi command-line +tool and piqi-ocaml.") + (license license:asl2.0))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #7: 0006-gnu-Add-ocaml-uuidm.patch --] [-- Type: text/x-patch, Size: 1811 bytes --] From 4afbe64878f1b047ba936015e005f7d48a847afa Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:45:47 +0200 Subject: [PATCH 06/10] gnu: Add ocaml-uuidm. * gnu/packages/ocaml.scm (ocaml-uuidm): New variable. --- gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 86fe1a9e4..039033dc0 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3356,6 +3356,36 @@ cpp-like directives.") tool and piqi-ocaml.") (license license:asl2.0))) +(define-public ocaml-uuidm + (package + (name "ocaml-uuidm") + (version "0.9.6") + (source (origin + (method url-fetch) + (uri (string-append "http://erratique.ch/software/uuidm/" + "releases/uuidm-" version ".tbz")) + (sha256 + (base32 + "0hz4fdx0x16k0pw9995vkz5d1hmzz6b16wck9li399rcbfnv5jlc")))) + (build-system ocaml-build-system) + (arguments + `(#:build-flags + (list "build" "--tests" "true" "--with-cmdliner" "true") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("opam" ,opam))) + (propagated-inputs + `(("cmdliner" ,ocaml-cmdliner) + ("topkg" ,ocaml-topkg))) + (home-page "http://erratique.ch/software/uuidm") + (synopsis "Universally unique identifiers (UUIDs) for OCaml") + (description "Uuidm is an OCaml module implementing 128 bits universally +unique identifiers version 3, 5 (named based with MD5, SHA-1 hashing) and 4 +(random based) according to RFC 4122.") + (license license:isc))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #8: 0007-gnu-Add-ocamlgraph.patch --] [-- Type: text/x-patch, Size: 1895 bytes --] From 3756da5e60dae4a109c18e552c6d07233ddfb5b9 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:46:37 +0200 Subject: [PATCH 07/10] gnu: Add ocamlgraph. * gnu/packages/ocaml.scm (ocamlgraph): New variable. --- gnu/packages/ocaml.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 039033dc0..364ccd99a 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3386,6 +3386,34 @@ unique identifiers version 3, 5 (named based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122.") (license license:isc))) +(define-public ocamlgraph + (package + (name "ocamlgraph") + (version "1.8.7") + (source (origin + (method url-fetch) + (uri (string-append "http://ocamlgraph.lri.fr/download/" + "ocamlgraph-" version ".tar.gz")) + (sha256 + (base32 + "1845r537swjil2fcj7lgbibc2zybfwqqasrd2s7bncajs83cl1nz")) + (patches (search-patches "ocamlgraph-honor-source-date-epoch.patch")))) + (build-system ocaml-build-system) + (arguments + `(#:install-target "install-findlib" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-/bin/sh + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "configure" + (("-/bin/sh") (string-append "-" (assoc-ref inputs "bash") + "/bin/sh")))))))) + (inputs `(("lablgtk" ,lablgtk))) + (home-page "http://ocamlgraph.lri.fr/") + (synopsis "A generic graph library for OCaml") + (description "A generic graph library for OCaml.") + (license license:lgpl2.1))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #9: 0008-gnu-Add-ocaml-piqi.patch --] [-- Type: text/x-patch, Size: 2087 bytes --] From aa994f7c4ca830f6b3834fd100d7395fcb83dbf5 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:47:40 +0200 Subject: [PATCH 08/10] gnu: Add ocaml-piqi. * gnu/packages/ocaml.scm (ocaml-piqi): New variable. --- gnu/packages/ocaml.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 364ccd99a..7f65ce859 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3414,6 +3414,41 @@ unique identifiers version 3, 5 (named based with MD5, SHA-1 hashing) and 4 (description "A generic graph library for OCaml.") (license license:lgpl2.1))) +(define-public ocaml-piqi + (package + (name "ocaml-piqi") + (version "0.7.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/alavrik/piqi-ocaml/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "0ngz6y8i98i5v2ma8nk6mc83pdsmf2z0ks7m3xi6clfg3zqbddrv")))) + (build-system ocaml-build-system) + (arguments + `(#:make-flags + (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'patch-/bin/sh + (lambda _ + (substitute* "make/OCamlMakefile" + (("/bin/sh") (which "sh"))) + #t))))) + (native-inputs + `(("which" ,which) + ("protobuf" ,protobuf))) ; for tests + (propagated-inputs + `(("piqilib" ,ocaml-piqilib))) + (home-page "https://github.com/alavrik/piqi-ocaml") + (synopsis "Protocol serialization system for OCaml") + (description "Piqi is a multi-format data serialization system for OCaml. +It provides a uniform interface for serializing OCaml data structures to JSON, +XML and Protocol Buffers formats.") + (license license:asl2.0))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #10: 0009-gnu-Add-ocaml-bap.patch --] [-- Type: text/x-patch, Size: 4064 bytes --] From 2e4a7549a148e56d5d4fe7a869b56e1524dafcb6 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:49:29 +0200 Subject: [PATCH 09/10] gnu: Add ocaml-bap. * gnu/packages/ocaml.scm (ocaml-bap): New variable. --- gnu/packages/ocaml.scm | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 7f65ce859..2e7001c4c 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3449,6 +3449,84 @@ It provides a uniform interface for serializing OCaml data structures to JSON, XML and Protocol Buffers formats.") (license license:asl2.0))) +(define-public ocaml-bap + (package + (name "ocaml-bap") + (version "1.1.0") + (home-page "https://github.com/BinaryAnalysisPlatform/bap") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "1ms95m4j1qrmy7zqmsn2izh7gq68lnmssl7chyhk977kd3sxj66m")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("clang" ,clang) + ("ounit" ,ocaml-ounit))) + (propagated-inputs + `(("core-kernel" ,ocaml-core-kernel) + ("ppx-driver" ,ocaml-ppx-driver) + ("uri" ,ocaml-uri) + ("llvm" ,llvm) + ("gmp" ,gmp) + ("clang-runtime" ,clang-runtime) + ("fileutils" ,ocaml-fileutils) + ("cmdliner" ,ocaml-cmdliner) + ("zarith" ,ocaml-zarith) + ("uuidm" ,ocaml-uuidm) + ("camlzip" ,camlzip) + ("frontc" ,ocaml-frontc) + ("ezjsonm" ,ocaml-ezjsonm) + ("ocurl" ,ocaml-ocurl) + ("piqi" ,ocaml-piqi) + ("ocamlgraph" ,ocamlgraph) + ("bitstring" ,ocaml-bitstring) + ("ppx-jane" ,ocaml-ppx-jane) + ("re" ,ocaml-re))) + (inputs `(("llvm" ,llvm))) + (arguments + `(#:use-make? #t + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "./configure" "--prefix" + (assoc-ref outputs "out") + "--libdir" + (string-append + (assoc-ref outputs "out") + "/lib/ocaml/site-lib") + "--with-llvm-version=3.8" + "--with-llvm-config=llvm-config" + "--enable-everything")))) + (add-before 'install 'fix-ocamlpath + (lambda* (#:key outputs #:allow-other-keys) + (setenv "OCAMLPATH" + (string-append + (getenv "OCAMLPATH") ":" + (assoc-ref outputs "out") + "/lib/ocaml/site-lib")) + (setenv "PATH" + (string-append (getenv "PATH") ":" + (assoc-ref outputs "out") "/bin")))) + (add-after 'install 'link-stubs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) + (lib (string-append out "/lib/ocaml/site-lib/bap-plugin-llvm"))) + (mkdir-p stubs) + (symlink (string-append lib "/dllllvm_plugin_stubs.so") + (string-append stubs "/dllllvm_plugin_stubs.so")))))))) + (synopsis "Binary Analysis Platform") + (description "Binary Analysis Platform is a framework for writing program +analysis tools, that target binary files. The framework consists of a plethora +of libraries, plugins, and frontends. The libraries provide code reusability, +the plugins facilitate extensibility, and the frontends serve as entry points.") + (license license:expat))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #11: 0010-gnu-Add-ocaml-camomile.patch --] [-- Type: text/x-patch, Size: 2131 bytes --] From 553a30b6fd292a7b69a271e61e7a64a1ad9bcbf5 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:51:14 +0200 Subject: [PATCH 10/10] gnu: Add ocaml-camomile. * gnu/packages/ocaml.scm (ocaml-camomile): New variable. --- gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 2e7001c4c..31dde1952 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3527,6 +3527,36 @@ of libraries, plugins, and frontends. The libraries provide code reusability, the plugins facilitate extensibility, and the frontends serve as entry points.") (license license:expat))) +(define-public ocaml-camomile + (package + (name "ocaml-camomile") + (version "0.8.5") + (home-page "https://github.com/yoriyuki/Camomile") + (source (origin + (method url-fetch) + (uri (string-append home-page "/releases/download/rel-" version + "/camomile-" version ".tar.bz2")) + (sha256 + (base32 + "003ikpvpaliy5hblhckfmln34zqz0mk3y2m1fqvbjngh3h2np045")))) + (build-system ocaml-build-system) + (native-inputs `(("camlp4" ,camlp4))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-bin/sh + (lambda* (#:key #:allow-other-keys) + (substitute* "configure" + (("CONFIG_SHELL-/bin/sh") + (string-append "CONFIG_SHELL-" (which "bash"))))))))) + (synopsis "Comprehensive Unicode library") + (description "Camomile is a Unicode library for OCaml. Camomile provides +Unicode character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from about +200 encodings, collation and locale-sensitive case mappings, and more. The +library is currently designed for Unicode Standard 3.2.") + ;; with an exception for linked libraries to use a different license + (license license:lgpl2.0+))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#28546] Add some ocaml packages 2017-09-21 20:46 [bug#28546] Add some ocaml packages Julien Lepiller @ 2017-09-22 4:09 ` Eric Bavier 2017-09-22 19:04 ` Julien Lepiller 0 siblings, 1 reply; 5+ messages in thread From: Eric Bavier @ 2017-09-22 4:09 UTC (permalink / raw) To: Julien Lepiller; +Cc: 28546 Hi Julien, Thanks for the patches. Just a few comments below: On Thu, 21 Sep 2017 22:46:51 +0200 Julien Lepiller <julien@lepiller.eu> wrote: > From d177cda39184fd1a1a879feb93f133eecd3bbcc4 Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:32:27 +0200 > Subject: [PATCH 01/10] gnu: Add ocaml-ezjsonm. > > * gnu/packages/ocaml.scm (ocaml-ezjsonm): New variable. > --- > gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm > index 700c5698e..d765a085a 100644 > --- a/gnu/packages/ocaml.scm > +++ b/gnu/packages/ocaml.scm > @@ -3197,6 +3197,36 @@ writing to these structures, and they are accessed via the Bigarray module.") > (description "Hex is a minimal library providing hexadecimal converters.") > (license license:isc))) > > +(define-public ocaml-ezjsonm > + (package > + (name "ocaml-ezjsonm") > + (version "0.4.3") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://github.com/mirage/ezjsonm/archive/" > + version ".tar.gz")) In a few of the later patches, you declared 'home-page' before 'source' so that it could be used in the uri. That seams reasonable to me. Did you want to do that in all these patches? > + (home-page "https://github.com/mirage/ezjsonm/") > + (synopsis "Easy interface on top of the Jsonm library") How about some more widely meaningful, like: "Read and write JSON data"? IDK, see section 6.7.5 in the manual. > From 395199079f38b96299dbc02b14a945236ef7d6fe Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:33:33 +0200 > Subject: [PATCH 02/10] gnu: Add ocaml-uri. > > * gnu/packages/ocaml.scm (ocaml-uri): New variable. > --- > + (synopsis "RFC3986 URI/URL parsing library") Similarly, I think we can leave out reference to the RFC in the synopsis, since its in the description already. "URI/URL parsing library" seems enough. > From 8a8f1bedad93fe403df7d374515340f7f2462b2a Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:35:17 +0200 > Subject: [PATCH 04/10] gnu: Add ocaml-optcomp. > > * gnu/packages/ocaml.scm (ocaml-optcomp): New variable. > --- > +(define-public ocaml-optcomp > + (package > + (name "ocaml-optcomp") Since this is a tool/application in its own right, rather than a library, I think this package could be named "optcomp". This would be in line with other packages like "starman", "scons", "behave", "snakemake", etc. > + (version "1.6") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://github.com/diml/optcomp/archive/" > + version ".tar.gz")) > + (sha256 > + (base32 > + "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh")) > + (file-name (string-append name "-" version ".tar.gz")))) > + (build-system ocaml-build-system) > + (arguments > + `(#:use-make? #t > + #:make-flags ^ Remove the tab and align with spaces to '#:' on previous line. > + (native-inputs `(("camlp4" ,camlp4))) > + (propagated-inputs `(("camlp4" ,camlp4))) > + (home-page "https://github.com/diml/optcomp") > + (synopsis "Optional compilation with cpp-like directives") Maybe: "Optional compilation for Ocaml"? > From 3887a8aa6b8610f4ccfece291d7c8bc12a3966bf Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:44:57 +0200 > Subject: [PATCH 05/10] gnu: Add ocaml-piqilib. > > * gnu/packages/ocaml.scm (ocaml-piqilib): New variable. > --- > gnu/packages/ocaml.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 53 insertions(+) > > diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm > index 910c892d6..86fe1a9e4 100644 > --- a/gnu/packages/ocaml.scm > +++ b/gnu/packages/ocaml.scm > @@ -3303,6 +3303,59 @@ Format module of the OCaml standard library.") > cpp-like directives.") > (license license:bsd-3))) > > +(define-public ocaml-piqilib > + (package > + (name "ocaml-piqilib") > + (version "0.6.13") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://github.com/alavrik/piqi/archive/v" > + version ".tar.gz")) > + (sha256 > + (base32 > + "1whqr2bb3gds2zmrzqnv8vqka9928w4lx6mi6g244kmbwb2h8d8l")) > + (file-name (string-append name "-" version ".tar.gz")) > + (patches (search-patches "ocaml-piqilib-fix-makefile.patch")))) ^ This patch is missing. > + (build-system ocaml-build-system) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (replace 'configure > + (lambda* (#:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + (substitute* "make/OCamlMakefile" > + (("/bin/sh") (which "bash"))) Does setting the "SHELL" environment variable work instead? > + (zero? (system* "./configure" "--prefix" out "--ocaml-libdir" > + (string-append out "/lib/ocaml/site-lib")))))) Is passing '#:configure-flags' not enough? > + (add-after 'build 'build-ocaml > + (lambda* (#:key outputs #:allow-other-keys) > + (zero? (system* "make" "ocaml")))) > + (add-after 'install 'install-ocaml > + (lambda* (#:key outputs #:allow-other-keys) > + (zero? (system* "make" "ocaml-install")))) > + (add-after 'install-ocaml 'link-stubs > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) > + (lib (string-append out "/lib/ocaml/site-lib/piqilib"))) > + (mkdir-p stubs) > + (symlink (string-append lib "/dllpiqilib_stubs.so") > + (string-append stubs "/dllpiqilib_stubs.so")))))))) Is there some sort of configuration flag that can be used to install these library into the right place? Is this package to avoid having to build the entire piqi tool? > From 4afbe64878f1b047ba936015e005f7d48a847afa Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:45:47 +0200 > Subject: [PATCH 06/10] gnu: Add ocaml-uuidm. > > * gnu/packages/ocaml.scm (ocaml-uuidm): New variable. > --- > +(define-public ocaml-uuidm > + (package ... > + (synopsis "Universally unique identifiers (UUIDs) for OCaml") I think we'd rather leave the acronym out of the synopsis, and place it in the description instead. > + (description "Uuidm is an OCaml module implementing 128 bits universally > +unique identifiers version 3, 5 (named based with MD5, SHA-1 hashing) and 4 > +(random based) according to RFC 4122.") > From 3756da5e60dae4a109c18e552c6d07233ddfb5b9 Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:46:37 +0200 > Subject: [PATCH 07/10] gnu: Add ocamlgraph. > > * gnu/packages/ocaml.scm (ocamlgraph): New variable. > --- > +(define-public ocamlgraph > + (package > + (name "ocamlgraph") I think we can name this packages "ocaml-graph". Similar to python modules whose names begins with "python". > + (version "1.8.7") > + (source (origin > + (method url-fetch) > + (uri (string-append "http://ocamlgraph.lri.fr/download/" > + "ocamlgraph-" version ".tar.gz")) > + (sha256 > + (base32 > + "1845r537swjil2fcj7lgbibc2zybfwqqasrd2s7bncajs83cl1nz")) > + (patches (search-patches "ocamlgraph-honor-source-date-epoch.patch")))) ^ This patch is missing. > + (build-system ocaml-build-system) > + (arguments > + `(#:install-target "install-findlib" > + #:phases > + (modify-phases %standard-phases > + (add-before 'configure 'fix-/bin/sh > + (lambda* (#:key inputs #:allow-other-keys) > + (substitute* "configure" > + (("-/bin/sh") (string-append "-" (assoc-ref inputs "bash") > + "/bin/sh")))))))) > + (inputs `(("lablgtk" ,lablgtk))) > + (home-page "http://ocamlgraph.lri.fr/") > + (synopsis "A generic graph library for OCaml") Synopses should not start with 'A'. 'guix lint' will warn about this. > + (description "A generic graph library for OCaml.") Rather: "OCamlgraph is a generic graph library for OCaml." > From aa994f7c4ca830f6b3834fd100d7395fcb83dbf5 Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:47:40 +0200 > Subject: [PATCH 08/10] gnu: Add ocaml-piqi. > > * gnu/packages/ocaml.scm (ocaml-piqi): New variable. > --- > +(define-public ocaml-piqi > + (package > + (name "ocaml-piqi") > + (version "0.7.5") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://github.com/alavrik/piqi-ocaml/" > + "archive/v" version ".tar.gz")) > + (sha256 > + (base32 > + "0ngz6y8i98i5v2ma8nk6mc83pdsmf2z0ks7m3xi6clfg3zqbddrv")))) > + (build-system ocaml-build-system) > + (arguments > + `(#:make-flags > + (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) Too bad this is so different from GNU's DESTDIR semantics... > + #:phases > + (modify-phases %standard-phases > + (delete 'configure) > + (add-before 'build 'patch-/bin/sh > + (lambda _ > + (substitute* "make/OCamlMakefile" > + (("/bin/sh") (which "sh"))) Again, I wonder if setting "SHELL" in the environment would suffice. It would be less heavy-handed. > From 2e4a7549a148e56d5d4fe7a869b56e1524dafcb6 Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:49:29 +0200 > Subject: [PATCH 09/10] gnu: Add ocaml-bap. > > * gnu/packages/ocaml.scm (ocaml-bap): New variable. > --- > gnu/packages/ocaml.scm | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 78 insertions(+) > > diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm > index 7f65ce859..2e7001c4c 100644 > --- a/gnu/packages/ocaml.scm > +++ b/gnu/packages/ocaml.scm > @@ -3449,6 +3449,84 @@ It provides a uniform interface for serializing OCaml data structures to JSON, > XML and Protocol Buffers formats.") > (license license:asl2.0))) > > +(define-public ocaml-bap > + (package > + (name "ocaml-bap") This package should be simply named "bap". > + (version "1.1.0") > + (home-page "https://github.com/BinaryAnalysisPlatform/bap") > + (source (origin > + (method url-fetch) > + (uri (string-append home-page "/archive/v" version ".tar.gz")) > + (sha256 > + (base32 > + "1ms95m4j1qrmy7zqmsn2izh7gq68lnmssl7chyhk977kd3sxj66m")) > + (file-name (string-append name "-" version ".tar.gz")))) > + (build-system ocaml-build-system) > + (native-inputs > + `(("oasis" ,ocaml-oasis) > + ("clang" ,clang) > + ("ounit" ,ocaml-ounit))) > + (propagated-inputs > + `(("core-kernel" ,ocaml-core-kernel) > + ("ppx-driver" ,ocaml-ppx-driver) > + ("uri" ,ocaml-uri) > + ("llvm" ,llvm) > + ("gmp" ,gmp) > + ("clang-runtime" ,clang-runtime) > + ("fileutils" ,ocaml-fileutils) > + ("cmdliner" ,ocaml-cmdliner) > + ("zarith" ,ocaml-zarith) > + ("uuidm" ,ocaml-uuidm) > + ("camlzip" ,camlzip) > + ("frontc" ,ocaml-frontc) > + ("ezjsonm" ,ocaml-ezjsonm) > + ("ocurl" ,ocaml-ocurl) > + ("piqi" ,ocaml-piqi) > + ("ocamlgraph" ,ocamlgraph) > + ("bitstring" ,ocaml-bitstring) > + ("ppx-jane" ,ocaml-ppx-jane) > + ("re" ,ocaml-re))) > + (inputs `(("llvm" ,llvm))) > + (arguments > + `(#:use-make? #t > + #:phases > + (modify-phases %standard-phases > + (replace 'configure > + (lambda* (#:key outputs #:allow-other-keys) > + (zero? (system* "./configure" "--prefix" > + (assoc-ref outputs "out") > + "--libdir" > + (string-append > + (assoc-ref outputs "out") > + "/lib/ocaml/site-lib") > + "--with-llvm-version=3.8" > + "--with-llvm-config=llvm-config" > + "--enable-everything")))) Could you put these flags in '#:configure-flags' instead? > + (add-before 'install 'fix-ocamlpath A short comment on why this phase is needed might be useful. > + (lambda* (#:key outputs #:allow-other-keys) > + (setenv "OCAMLPATH" > + (string-append > + (getenv "OCAMLPATH") ":" > + (assoc-ref outputs "out") > + "/lib/ocaml/site-lib")) > + (setenv "PATH" > + (string-append (getenv "PATH") ":" > + (assoc-ref outputs "out") "/bin")))) > From 553a30b6fd292a7b69a271e61e7a64a1ad9bcbf5 Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Thu, 21 Sep 2017 20:51:14 +0200 > Subject: [PATCH 10/10] gnu: Add ocaml-camomile. > > * gnu/packages/ocaml.scm (ocaml-camomile): New variable. > --- > gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm > index 2e7001c4c..31dde1952 100644 > --- a/gnu/packages/ocaml.scm > +++ b/gnu/packages/ocaml.scm > @@ -3527,6 +3527,36 @@ of libraries, plugins, and frontends. The libraries provide code reusability, > the plugins facilitate extensibility, and the frontends serve as entry points.") > (license license:expat))) > > +(define-public ocaml-camomile > + (package > + (name "ocaml-camomile") > + (version "0.8.5") > + (home-page "https://github.com/yoriyuki/Camomile") > + (source (origin > + (method url-fetch) > + (uri (string-append home-page "/releases/download/rel-" version > + "/camomile-" version ".tar.bz2")) > + (sha256 > + (base32 > + "003ikpvpaliy5hblhckfmln34zqz0mk3y2m1fqvbjngh3h2np045")))) > + (build-system ocaml-build-system) > + (native-inputs `(("camlp4" ,camlp4))) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (add-before 'configure 'fix-bin/sh > + (lambda* (#:key #:allow-other-keys) > + (substitute* "configure" > + (("CONFIG_SHELL-/bin/sh") > + (string-append "CONFIG_SHELL-" (which "bash"))))))))) Maybe our ocaml-build-system should be defining SHELL and CONFIG_SHELL in the flags passed to configure, like gnu-build-system does. Or does that not work for some ocaml projects? Otherwise looks good to me. Sorry for long reply and all the questions, `~Eric ^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#28546] Add some ocaml packages 2017-09-22 4:09 ` Eric Bavier @ 2017-09-22 19:04 ` Julien Lepiller 2017-09-26 8:21 ` Ludovic Courtès 0 siblings, 1 reply; 5+ messages in thread From: Julien Lepiller @ 2017-09-22 19:04 UTC (permalink / raw) To: 28546 [-- Attachment #1: Type: text/plain, Size: 4978 bytes --] Le Thu, 21 Sep 2017 23:09:28 -0500, Eric Bavier <ericbavier@centurylink.net> a écrit : > Hi Julien, > > Thanks for the patches. Just a few comments below: Thank you for this very detailed review :) I think I addressed all your comments in the attached new patches, and I will answer your other questions below: > > On Thu, 21 Sep 2017 22:46:51 +0200 > Julien Lepiller <julien@lepiller.eu> wrote: > > In a few of the later patches, you declared 'home-page' before > 'source' so that it could be used in the uri. That seams reasonable > to me. Did you want to do that in all these patches? It seems this is not the way it is done elsewhere, and I was asked to stick with this style. > > "1whqr2bb3gds2zmrzqnv8vqka9928w4lx6mi6g244kmbwb2h8d8l")) > > + (file-name (string-append name "-" version > > ".tar.gz")) > > + (patches (search-patches > > "ocaml-piqilib-fix-makefile.patch")))) > ^ > This patch is missing. Indeed, I use GUIX_PACKAGE_PATH, so it was actually fetching the package and the patch from that other directory... I should remember to unset this variable before testing a patch. > > > + (build-system ocaml-build-system) > > + (arguments > > + `(#:phases > > + (modify-phases %standard-phases > > + (replace 'configure > > + (lambda* (#:key outputs #:allow-other-keys) > > + (let ((out (assoc-ref outputs "out"))) > > + (substitute* "make/OCamlMakefile" > > + (("/bin/sh") (which "bash"))) > > Does setting the "SHELL" environment variable work instead? Yes it does, thank you for spotting this. It also works for most of the other packages. > > > + (zero? (system* "./configure" "--prefix" out > > "--ocaml-libdir" > > + (string-append out > > "/lib/ocaml/site-lib")))))) > > Is passing '#:configure-flags' not enough? The configure script of OCaml packages is usually not an autotools one. The all have a different set of options they require. Our ocaml-build-system passes "-prefix" out and then configure-flags. Setting configure-flags only would therefore fail, because the "-prefix" option would not be recognized (one dash, when it expects two). The ocaml-build-system is made that way because it seems most configure scripts for ocaml packages require only one dash. > > > + (add-after 'build 'build-ocaml > > + (lambda* (#:key outputs #:allow-other-keys) > > + (zero? (system* "make" "ocaml")))) > > + (add-after 'install 'install-ocaml > > + (lambda* (#:key outputs #:allow-other-keys) > > + (zero? (system* "make" "ocaml-install")))) > > + (add-after 'install-ocaml 'link-stubs > > + (lambda* (#:key outputs #:allow-other-keys) > > + (let* ((out (assoc-ref outputs "out")) > > + (stubs (string-append out > > "/lib/ocaml/site-lib/stubslibs")) > > + (lib (string-append out > > "/lib/ocaml/site-lib/piqilib"))) > > + (mkdir-p stubs) > > + (symlink (string-append lib "/dllpiqilib_stubs.so") > > + (string-append stubs > > "/dllpiqilib_stubs.so")))))))) > > Is there some sort of configuration flag that can be used to install > these library into the right place? Unfortunately, I didn't find any. > > Is this package to avoid having to build the entire piqi tool? This package doesn't come from the same source as piqi-ocaml. I don't know exactly how it works, though, because I added it only as a dependency. > > + (inputs `(("llvm" ,llvm))) > > + (arguments > > + `(#:use-make? #t > > + #:phases > > + (modify-phases %standard-phases > > + (replace 'configure > > + (lambda* (#:key outputs #:allow-other-keys) > > + (zero? (system* "./configure" "--prefix" > > + (assoc-ref outputs "out") > > + "--libdir" > > + (string-append > > + (assoc-ref outputs "out") > > + "/lib/ocaml/site-lib") > > + "--with-llvm-version=3.8" > > + "--with-llvm-config=llvm-config" > > + "--enable-everything")))) > > Could you put these flags in '#:configure-flags' instead? Again, --prefix vs -prefix > > Maybe our ocaml-build-system should be defining SHELL and CONFIG_SHELL > in the flags passed to configure, like gnu-build-system does. Or does > that not work for some ocaml projects? Since most configure scripts are not autotools one, they don't recognize variables passed as arguments. > > > Otherwise looks good to me. > > Sorry for long reply and all the questions, > `~Eric [-- Attachment #2: 0001-gnu-Add-ocaml-ezjsonm.patch --] [-- Type: text/x-patch, Size: 1964 bytes --] From 5344f2cb8f8661fbc5c8ddb039ce9e2578790e71 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:32:27 +0200 Subject: [PATCH 01/10] gnu: Add ocaml-ezjsonm. * gnu/packages/ocaml.scm (ocaml-ezjsonm): New variable. --- gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 700c5698e..f3ebb2854 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3197,6 +3197,36 @@ writing to these structures, and they are accessed via the Bigarray module.") (description "Hex is a minimal library providing hexadecimal converters.") (license license:isc))) +(define-public ocaml-ezjsonm + (package + (name "ocaml-ezjsonm") + (version "0.4.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/ezjsonm/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1kag0z2xlk4rw73a240dmkxh9rj6psxxcxkm7d7z0rrj6hzjajgq")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("alcotest" ,ocaml-alcotest))) + (propagated-inputs + `(("hex" ,ocaml-hex) + ("jsonm" ,ocaml-jsonm) + ("lwt" ,ocaml-lwt) + ("sexplib" ,ocaml-sexplib))) + (arguments + `(#:configure-flags (list "--enable-lwt"))) + (home-page "https://github.com/mirage/ezjsonm/") + (synopsis "Read and write JSON data") + (description "Ezjsonm provides more convenient (but far less flexible) input +and output functions that go to and from [string] values than jsonm. This avoids +the need to write signal code, which is useful for quick scripts that manipulate +JSON.") + (license license:isc))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #3: 0002-gnu-Add-ocaml-uri.patch --] [-- Type: text/x-patch, Size: 1717 bytes --] From bde4818c65208765febb9407b6c7e524a171a3d8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:33:33 +0200 Subject: [PATCH 02/10] gnu: Add ocaml-uri. * gnu/packages/ocaml.scm (ocaml-uri): New variable. --- gnu/packages/ocaml.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index f3ebb2854..b4b4f2333 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3227,6 +3227,32 @@ the need to write signal code, which is useful for quick scripts that manipulate JSON.") (license license:isc))) +(define-public ocaml-uri + (package + (name "ocaml-uri") + (version "1.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/ocaml-uri/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "02bzrag79prx261rxf9mlak749pwf4flpfl8p012x1xznv9m0clc")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("ounit" ,ocaml-ounit))) + (propagated-inputs + `(("ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("re" ,ocaml-re) + ("ppx-deriving" ,ocaml-ppx-deriving) + ("sexplib" ,ocaml-sexplib) + ("stringext" ,ocaml-stringext))) + (home-page "https://github.com/mirage/ocaml-uri") + (synopsis "RFC3986 URI/URL parsing library") + (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.") + (license license:isc))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #4: 0003-gnu-Add-ocaml-easy-format.patch --] [-- Type: text/x-patch, Size: 1637 bytes --] From e99d48de514e98bf9c1e862f35df406eda9c4a60 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:34:27 +0200 Subject: [PATCH 03/10] gnu: Add ocaml-easy-format. * gnu/packages/ocaml.scm (ocaml-easy-format): New variable. --- gnu/packages/ocaml.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index b4b4f2333..35a5a10e4 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3253,6 +3253,29 @@ JSON.") (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.") (license license:isc))) +(define-public ocaml-easy-format + (package + (name "ocaml-easy-format") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mjambon/easy-format/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "1zcz682y9figa84k7lgdjcab5qbzk3yy14ygfqp2dhhrvjygm252")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/mjambon/easy-format") + (synopsis "Interface to the Format module") + (description "Easy-format is a high-level and functional interface to the +Format module of the OCaml standard library.") + (license license:bsd-3))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #5: 0004-gnu-Add-ocaml-optcomp.patch --] [-- Type: text/x-patch, Size: 1769 bytes --] From ba5861d55b9749978aa7191798afc87417c67c59 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:35:17 +0200 Subject: [PATCH 04/10] gnu: Add ocaml-optcomp. * gnu/packages/ocaml.scm (ocaml-optcomp): New variable. --- gnu/packages/ocaml.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 35a5a10e4..4cb66bd2b 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3276,6 +3276,33 @@ JSON.") Format module of the OCaml standard library.") (license license:bsd-3))) +(define-public optcomp + (package + (name "optcomp") + (version "1.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/diml/optcomp/archive/" + version ".tar.gz")) + (sha256 + (base32 + "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:use-make? #t + #:make-flags + (list (string-append "BUILDFLAGS=\"-cflags -I," + (assoc-ref %build-inputs "camlp4") + "/lib/ocaml/site-lib/camlp4/Camlp4Parsers\"")))) + (native-inputs `(("camlp4" ,camlp4))) + (propagated-inputs `(("camlp4" ,camlp4))) + (home-page "https://github.com/diml/optcomp") + (synopsis "Optional compilation for OCaml") + (description "Optcomp provides an optional compilation facility with +cpp-like directives.") + (license license:bsd-3))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #6: 0005-gnu-Add-ocaml-piqilib.patch --] [-- Type: text/x-patch, Size: 4879 bytes --] From 3647f7d8e330e1f6fbb60596739a21ccd1bd85f3 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:44:57 +0200 Subject: [PATCH 05/10] gnu: Add ocaml-piqilib. * gnu/packages/ocaml.scm (ocaml-piqilib): New variable. --- gnu/packages/ocaml.scm | 53 ++++++++++++++++++++++ .../patches/ocaml-piqilib-fix-makefile.patch | 47 +++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 gnu/packages/patches/ocaml-piqilib-fix-makefile.patch diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 4cb66bd2b..00665959a 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3303,6 +3303,59 @@ Format module of the OCaml standard library.") cpp-like directives.") (license license:bsd-3))) +(define-public ocaml-piqilib + (package + (name "ocaml-piqilib") + (version "0.6.13") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/alavrik/piqi/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "1whqr2bb3gds2zmrzqnv8vqka9928w4lx6mi6g244kmbwb2h8d8l")) + (file-name (string-append name "-" version ".tar.gz")) + (patches (search-patches "ocaml-piqilib-fix-makefile.patch")))) + (build-system ocaml-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "make/OCamlMakefile" + (("/bin/sh") (which "bash"))) + (zero? (system* "./configure" "--prefix" out "--ocaml-libdir" + (string-append out "/lib/ocaml/site-lib")))))) + (add-after 'build 'build-ocaml + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "make" "ocaml")))) + (add-after 'install 'install-ocaml + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "make" "ocaml-install")))) + (add-after 'install-ocaml 'link-stubs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) + (lib (string-append out "/lib/ocaml/site-lib/piqilib"))) + (mkdir-p stubs) + (symlink (string-append lib "/dllpiqilib_stubs.so") + (string-append stubs "/dllpiqilib_stubs.so")))))))) + (native-inputs + `(("which" ,which) + ("camlp4" ,camlp4))) + (propagated-inputs + `(("xmlm" ,ocaml-xmlm) + ("ulex" ,ocaml-ulex) + ("optcomp" ,optcomp) + ("easy-format" ,ocaml-easy-format) + ("base64" ,ocaml-base64))) + (home-page "http://piqi.org") + (synopsis "Data serialization and conversion library") + (description "Piqilib is the common library used by the piqi command-line +tool and piqi-ocaml.") + (license license:asl2.0))) + (define-public coq-flocq (package (name "coq-flocq") diff --git a/gnu/packages/patches/ocaml-piqilib-fix-makefile.patch b/gnu/packages/patches/ocaml-piqilib-fix-makefile.patch new file mode 100644 index 000000000..a21b21983 --- /dev/null +++ b/gnu/packages/patches/ocaml-piqilib-fix-makefile.patch @@ -0,0 +1,47 @@ +From 336e69d6882a1b8d725c43f1c2e340ef4464bac5 Mon Sep 17 00:00:00 2001 +From: Julien Lepiller <julien@lepiller.eu> +Date: Sat, 31 Dec 2016 11:21:14 +0100 +Subject: [PATCH] fix OCAMLPATH in makefile + +--- + Makefile | 2 +- + make/Makefile.ocaml | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 4db87da..9315887 100644 +--- a/Makefile ++++ b/Makefile +@@ -23,7 +23,7 @@ OCAMLFIND_DESTDIR := $(shell cygpath -w $(OCAMLFIND_DESTDIR)) + endif + export OCAMLFIND_DESTDIR + +-OCAMLPATH := $(PIQI_ROOT)/deps ++OCAMLPATH := $(OCAMLPATH):$(PIQI_ROOT)/deps + ifeq ($(SYSTEM),$(filter $(SYSTEM),mingw mingw64)) + OCAMLPATH := $(shell cygpath -w $(OCAMLPATH)) + endif +diff --git a/make/Makefile.ocaml b/make/Makefile.ocaml +index 2b6324d..b82c041 100644 +--- a/make/Makefile.ocaml ++++ b/make/Makefile.ocaml +@@ -1,7 +1,7 @@ + OCAMLMAKEFILE := $(PIQI_ROOT)/make/OCamlMakefile + + +-OCAMLPATH := $(PIQI_BUILD)/lib/ocaml ++OCAMLPATH := $(OCAMLPATH):$(PIQI_BUILD)/lib/ocaml + ifeq ($(SYSTEM),$(filter $(SYSTEM),mingw mingw64)) + OCAMLPATH := $(shell cygpath -w $(OCAMLPATH)) + endif +@@ -23,6 +23,7 @@ post_target:: + + + .ml.mli: $(EXTRADEPS) ++ echo $(OCAMLPATH) + $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \ + if [ -z "$$pp" ]; then \ + $(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \ +-- +2.11.0 + -- 2.14.1 [-- Attachment #7: 0006-gnu-Add-ocaml-uuidm.patch --] [-- Type: text/x-patch, Size: 1811 bytes --] From c0a16c103b6fd2336183e6e3677af5ba61bcbf64 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:45:47 +0200 Subject: [PATCH 06/10] gnu: Add ocaml-uuidm. * gnu/packages/ocaml.scm (ocaml-uuidm): New variable. --- gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 00665959a..d8b43a2bc 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3356,6 +3356,36 @@ cpp-like directives.") tool and piqi-ocaml.") (license license:asl2.0))) +(define-public ocaml-uuidm + (package + (name "ocaml-uuidm") + (version "0.9.6") + (source (origin + (method url-fetch) + (uri (string-append "http://erratique.ch/software/uuidm/" + "releases/uuidm-" version ".tbz")) + (sha256 + (base32 + "0hz4fdx0x16k0pw9995vkz5d1hmzz6b16wck9li399rcbfnv5jlc")))) + (build-system ocaml-build-system) + (arguments + `(#:build-flags + (list "build" "--tests" "true" "--with-cmdliner" "true") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("opam" ,opam))) + (propagated-inputs + `(("cmdliner" ,ocaml-cmdliner) + ("topkg" ,ocaml-topkg))) + (home-page "http://erratique.ch/software/uuidm") + (synopsis "Universally unique identifiers for OCaml") + (description "Uuidm is an OCaml module implementing 128 bits universally +unique identifiers (UUIDs) version 3, 5 (named based with MD5, SHA-1 hashing) +and 4 (random based) according to RFC 4122.") + (license license:isc))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #8: 0007-gnu-Add-ocaml-graph.patch --] [-- Type: text/x-patch, Size: 3276 bytes --] From 11841bf1700fada87a4a747130543ce8de4930f5 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:46:37 +0200 Subject: [PATCH 07/10] gnu: Add ocaml-graph. * gnu/packages/ocaml.scm (ocaml-graph): New variable. --- gnu/packages/ocaml.scm | 27 +++++++++++++++++ .../ocaml-graph-honor-source-date-epoch.patch | 34 ++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index d8b43a2bc..1d4c95730 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3386,6 +3386,33 @@ unique identifiers (UUIDs) version 3, 5 (named based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122.") (license license:isc))) +(define-public ocaml-graph + (package + (name "ocaml-graph") + (version "1.8.7") + (source (origin + (method url-fetch) + (uri (string-append "http://ocamlgraph.lri.fr/download/" + "ocamlgraph-" version ".tar.gz")) + (sha256 + (base32 + "1845r537swjil2fcj7lgbibc2zybfwqqasrd2s7bncajs83cl1nz")) + (patches (search-patches "ocaml-graph-honor-source-date-epoch.patch")))) + (build-system ocaml-build-system) + (arguments + `(#:install-target "install-findlib" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-shell + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CONFIG_SHELL" (string-append (assoc-ref inputs "bash") + "/bin/sh"))))))) + (inputs `(("lablgtk" ,lablgtk))) + (home-page "http://ocamlgraph.lri.fr/") + (synopsis "Graph library for OCaml") + (description "OCamlgraph is a generic graph library for OCaml.") + (license license:lgpl2.1))) + (define-public coq-flocq (package (name "coq-flocq") diff --git a/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch b/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch new file mode 100644 index 000000000..9f8713e3d --- /dev/null +++ b/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch @@ -0,0 +1,34 @@ +From 354ef78aac0b887fae3c10b28eb2b0d83f66bdfe Mon Sep 17 00:00:00 2001 +From: Julien Lepiller <julien@lepiller.eu> +Date: Mon, 2 Jan 2017 17:05:24 +0100 +Subject: [PATCH] Honor SOURCE_DATE_EPOCH + +--- + Makefile.in | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index a32b4b8..ef4c174 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -113,11 +113,16 @@ graph.cmx: $(CMI) $(CMX) + $(OCAMLOPT) $(INCLUDES) -pack -o $@ $^ + + VERSION=1.8.7 ++ifdef SOURCE_DATE_EPOCH ++BUILD_DATE=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" 2>/dev/null || date) ++else ++BUILD_DATE=$(shell date) ++endif + + src/version.ml: Makefile + rm -f $@ + echo "let version = \""$(VERSION)"\"" > $@ +- echo "let date = \""`date`"\"" >> $@ ++ echo "let date = \""$(BUILD_DATE)"\"" >> $@ + + # gtk2 graph editor + ################### +-- +2.11.0 + -- 2.14.1 [-- Attachment #9: 0008-gnu-Add-ocaml-piqi.patch --] [-- Type: text/x-patch, Size: 2287 bytes --] From 28c4c8ce2d5f8b0975b96a578ebbd05002db7774 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:47:40 +0200 Subject: [PATCH 08/10] gnu: Add ocaml-piqi. * gnu/packages/ocaml.scm (ocaml-piqi): New variable. --- gnu/packages/ocaml.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 1d4c95730..27ec8354b 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -47,6 +47,7 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) @@ -3413,6 +3414,38 @@ and 4 (random based) according to RFC 4122.") (description "OCamlgraph is a generic graph library for OCaml.") (license license:lgpl2.1))) +(define-public ocaml-piqi + (package + (name "ocaml-piqi") + (version "0.7.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/alavrik/piqi-ocaml/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "0ngz6y8i98i5v2ma8nk6mc83pdsmf2z0ks7m3xi6clfg3zqbddrv")))) + (build-system ocaml-build-system) + (arguments + `(#:make-flags + (list (string-append "DESTDIR=" (assoc-ref %outputs "out")) + (string-append "SHELL=" (assoc-ref %build-inputs "bash") + "/bin/sh")) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("which" ,which) + ("protobuf" ,protobuf))) ; for tests + (propagated-inputs + `(("piqilib" ,ocaml-piqilib))) + (home-page "https://github.com/alavrik/piqi-ocaml") + (synopsis "Protocol serialization system for OCaml") + (description "Piqi is a multi-format data serialization system for OCaml. +It provides a uniform interface for serializing OCaml data structures to JSON, +XML and Protocol Buffers formats.") + (license license:asl2.0))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #10: 0009-gnu-Add-bap.patch --] [-- Type: text/x-patch, Size: 3856 bytes --] From 9859961c3ab90b8bc5d94689c9bb6e0f657f88c4 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:49:29 +0200 Subject: [PATCH 09/10] gnu: Add bap. * gnu/packages/ocaml.scm (bap): New variable. --- gnu/packages/ocaml.scm | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 27ec8354b..61ebbd937 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages libevent) + #:use-module (gnu packages llvm) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) @@ -3446,6 +3447,74 @@ It provides a uniform interface for serializing OCaml data structures to JSON, XML and Protocol Buffers formats.") (license license:asl2.0))) +(define-public bap + (package + (name "bap") + (version "1.1.0") + (home-page "https://github.com/BinaryAnalysisPlatform/bap") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "1ms95m4j1qrmy7zqmsn2izh7gq68lnmssl7chyhk977kd3sxj66m")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("clang" ,clang) + ("ounit" ,ocaml-ounit))) + (propagated-inputs + `(("core-kernel" ,ocaml-core-kernel) + ("ppx-driver" ,ocaml-ppx-driver) + ("uri" ,ocaml-uri) + ("llvm" ,llvm) + ("gmp" ,gmp) + ("clang-runtime" ,clang-runtime) + ("fileutils" ,ocaml-fileutils) + ("cmdliner" ,ocaml-cmdliner) + ("zarith" ,ocaml-zarith) + ("uuidm" ,ocaml-uuidm) + ("camlzip" ,camlzip) + ("frontc" ,ocaml-frontc) + ("ezjsonm" ,ocaml-ezjsonm) + ("ocurl" ,ocaml-ocurl) + ("piqi" ,ocaml-piqi) + ("ocamlgraph" ,ocaml-graph) + ("bitstring" ,ocaml-bitstring) + ("ppx-jane" ,ocaml-ppx-jane) + ("re" ,ocaml-re))) + (inputs `(("llvm" ,llvm))) + (arguments + `(#:use-make? #t + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "./configure" "--prefix" + (assoc-ref outputs "out") + "--libdir" + (string-append + (assoc-ref outputs "out") + "/lib/ocaml/site-lib") + "--with-llvm-version=3.8" + "--with-llvm-config=llvm-config" + "--enable-everything")))) + (add-after 'install 'link-stubs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) + (lib (string-append out "/lib/ocaml/site-lib/bap-plugin-llvm"))) + (mkdir-p stubs) + (symlink (string-append lib "/dllllvm_plugin_stubs.so") + (string-append stubs "/dllllvm_plugin_stubs.so")))))))) + (synopsis "Binary Analysis Platform") + (description "Binary Analysis Platform is a framework for writing program +analysis tools, that target binary files. The framework consists of a plethora +of libraries, plugins, and frontends. The libraries provide code reusability, +the plugins facilitate extensibility, and the frontends serve as entry points.") + (license license:expat))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 [-- Attachment #11: 0010-gnu-Add-ocaml-camomile.patch --] [-- Type: text/x-patch, Size: 2009 bytes --] From 0a638c17bda12cc16def3c94946f9a065e014949 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Thu, 21 Sep 2017 20:51:14 +0200 Subject: [PATCH 10/10] gnu: Add ocaml-camomile. * gnu/packages/ocaml.scm (ocaml-camomile): New variable. --- gnu/packages/ocaml.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 61ebbd937..61cad7c48 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3515,6 +3515,34 @@ of libraries, plugins, and frontends. The libraries provide code reusability, the plugins facilitate extensibility, and the frontends serve as entry points.") (license license:expat))) +(define-public ocaml-camomile + (package + (name "ocaml-camomile") + (version "0.8.5") + (home-page "https://github.com/yoriyuki/Camomile") + (source (origin + (method url-fetch) + (uri (string-append home-page "/releases/download/rel-" version + "/camomile-" version ".tar.bz2")) + (sha256 + (base32 + "003ikpvpaliy5hblhckfmln34zqz0mk3y2m1fqvbjngh3h2np045")))) + (build-system ocaml-build-system) + (native-inputs `(("camlp4" ,camlp4))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-bin/sh + (lambda _ + (setenv "CONFIG_SHELL" (which "bash"))))))) + (synopsis "Comprehensive Unicode library") + (description "Camomile is a Unicode library for OCaml. Camomile provides +Unicode character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from about +200 encodings, collation and locale-sensitive case mappings, and more. The +library is currently designed for Unicode Standard 3.2.") + ;; with an exception for linked libraries to use a different license + (license license:lgpl2.0+))) + (define-public coq-flocq (package (name "coq-flocq") -- 2.14.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#28546] Add some ocaml packages 2017-09-22 19:04 ` Julien Lepiller @ 2017-09-26 8:21 ` Ludovic Courtès 2017-09-27 19:28 ` bug#28546: " Julien Lepiller 0 siblings, 1 reply; 5+ messages in thread From: Ludovic Courtès @ 2017-09-26 8:21 UTC (permalink / raw) To: Julien Lepiller; +Cc: 28546 Hello Julien, Julien Lepiller <julien@lepiller.eu> skribis: > Le Thu, 21 Sep 2017 23:09:28 -0500, > Eric Bavier <ericbavier@centurylink.net> a écrit : [...] >> Otherwise looks good to me. If you addressed Eric’s concerns and it works for you, you can probably go ahead and push this series. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#28546: Add some ocaml packages 2017-09-26 8:21 ` Ludovic Courtès @ 2017-09-27 19:28 ` Julien Lepiller 0 siblings, 0 replies; 5+ messages in thread From: Julien Lepiller @ 2017-09-27 19:28 UTC (permalink / raw) To: 28546-done Le Tue, 26 Sep 2017 10:21:06 +0200, ludo@gnu.org (Ludovic Courtès) a écrit : > Hello Julien, > > Julien Lepiller <julien@lepiller.eu> skribis: > > > Le Thu, 21 Sep 2017 23:09:28 -0500, > > Eric Bavier <ericbavier@centurylink.net> a écrit : > > [...] > > >> Otherwise looks good to me. > > If you addressed Eric’s concerns and it works for you, you can > probably go ahead and push this series. > > Thanks, > Ludo’. OK, pushed as bf7bc0d6bb8e549f1b05dae3fe4f325311db8310 - 408091d5a58801f88f8a5269387ce5efa701508b. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-09-27 19:30 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-09-21 20:46 [bug#28546] Add some ocaml packages Julien Lepiller 2017-09-22 4:09 ` Eric Bavier 2017-09-22 19:04 ` Julien Lepiller 2017-09-26 8:21 ` Ludovic Courtès 2017-09-27 19:28 ` bug#28546: " Julien Lepiller
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.