gnu: Add ocaml-findlib.
* gnu/packages/ocaml.scm (ocaml-findlib): New variable. * gnu/packages/patches/ocaml-findlib-make-install.patch: New file. * gnu-system.am (dist_patch_DATA): Register it.
This commit is contained in:
parent
3a7261bf96
commit
a747baba00
3 changed files with 72 additions and 0 deletions
|
@ -624,6 +624,7 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/nvi-assume-preserve-path.patch \
|
gnu/packages/patches/nvi-assume-preserve-path.patch \
|
||||||
gnu/packages/patches/nvi-dbpagesize-binpower.patch \
|
gnu/packages/patches/nvi-dbpagesize-binpower.patch \
|
||||||
gnu/packages/patches/nvi-db4.patch \
|
gnu/packages/patches/nvi-db4.patch \
|
||||||
|
gnu/packages/patches/ocaml-findlib-make-install.patch \
|
||||||
gnu/packages/patches/openexr-missing-samples.patch \
|
gnu/packages/patches/openexr-missing-samples.patch \
|
||||||
gnu/packages/patches/openimageio-boost-1.60.patch \
|
gnu/packages/patches/openimageio-boost-1.60.patch \
|
||||||
gnu/packages/patches/openjpeg-CVE-2015-6581.patch \
|
gnu/packages/patches/openjpeg-CVE-2015-6581.patch \
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
||||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||||
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -42,6 +43,7 @@
|
||||||
#:use-module (gnu packages lynx)
|
#:use-module (gnu packages lynx)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages m4)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages version-control)
|
#:use-module (gnu packages version-control)
|
||||||
#:use-module (gnu packages curl))
|
#:use-module (gnu packages curl))
|
||||||
|
@ -613,3 +615,52 @@ a collection of files and directories to be stored on different hosts
|
||||||
brought up to date by propagating the changes in each replica
|
brought up to date by propagating the changes in each replica
|
||||||
to the other.")
|
to the other.")
|
||||||
(license gpl3+)))
|
(license gpl3+)))
|
||||||
|
|
||||||
|
(define-public ocaml-findlib
|
||||||
|
(package
|
||||||
|
(name "ocaml-findlib")
|
||||||
|
(version "1.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "http://download.camlcity.org/download/"
|
||||||
|
"findlib" "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"02abg1lsnwvjg3igdyb8qjgr5kv1nbwl4gaf8mdinzfii5p82721"))
|
||||||
|
(patches
|
||||||
|
(list (search-patch "ocaml-findlib-make-install.patch")))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("camlp4" ,camlp4)
|
||||||
|
("m4" ,m4)
|
||||||
|
("ocaml" ,ocaml)))
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; no test suite
|
||||||
|
#:parallel-build? #f
|
||||||
|
#:make-flags (list "all" "opt")
|
||||||
|
#:phases (modify-phases %standard-phases
|
||||||
|
(replace
|
||||||
|
'configure
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(system*
|
||||||
|
"./configure"
|
||||||
|
"-bindir" (string-append out "/bin")
|
||||||
|
"-config" (string-append out "/etc/ocamfind.conf")
|
||||||
|
"-mandir" (string-append out "/share/man")
|
||||||
|
"-sitelib" (string-append out "/lib/ocaml/site-lib")
|
||||||
|
"-with-toolbox")))))))
|
||||||
|
(home-page "http://projects.camlcity.org/projects/findlib.html")
|
||||||
|
(synopsis "Management tool for OCaml libraries")
|
||||||
|
(description
|
||||||
|
"The \"findlib\" library provides a scheme to manage reusable software
|
||||||
|
components (packages), and includes tools that support this scheme. Packages
|
||||||
|
are collections of OCaml modules for which metainformation can be stored. The
|
||||||
|
packages are kept in the filesystem hierarchy, but with strict directory
|
||||||
|
structure. The library contains functions to look the directory up that
|
||||||
|
stores a package, to query metainformation about a package, and to retrieve
|
||||||
|
dependency information about multiple packages. There is also a tool that
|
||||||
|
allows the user to enter queries on the command-line. In order to simplify
|
||||||
|
compilation and linkage, there are new frontends of the various OCaml
|
||||||
|
compilers that can directly deal with packages.")
|
||||||
|
(license x11)))
|
||||||
|
|
20
gnu/packages/patches/ocaml-findlib-make-install.patch
Normal file
20
gnu/packages/patches/ocaml-findlib-make-install.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Ocaml wants to install its "core" libraries in OCAML_CORE_STDLIB. That
|
||||||
|
does not work in a store-based distribution.
|
||||||
|
|
||||||
|
A solution was already provided by Nix
|
||||||
|
|
||||||
|
https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/ocaml/findlib/install_topfind.patch
|
||||||
|
|
||||||
|
regenerated for Guix.
|
||||||
|
|
||||||
|
--- findlib-1.5.3/src/findlib/Makefile 2014-09-16 13:21:46.000000000 +0200
|
||||||
|
+++ findlib-1.5.3/src/findlib/Makefile.new 2014-10-01 14:30:54.141082521 +0200
|
||||||
|
@@ -89,7 +89,7 @@
|
||||||
|
install: all
|
||||||
|
mkdir -p "$(prefix)$(OCAML_SITELIB)/$(NAME)"
|
||||||
|
mkdir -p "$(prefix)$(OCAMLFIND_BIN)"
|
||||||
|
- test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_CORE_STDLIB)"
|
||||||
|
+ test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_SITELIB)"
|
||||||
|
files=`$(TOP)/tools/collect_files $(TOP)/Makefile.config findlib.cmi findlib.mli findlib.cma topfind.cmi topfind.mli fl_package_base.mli fl_package_base.cmi fl_metascanner.mli fl_metascanner.cmi fl_metatoken.cmi findlib_top.cma findlib.cmxa findlib.a findlib.cmxs findlib_dynload.cma findlib_dynload.cmxa findlib_dynload.a findlib_dynload.cmxs fl_dynload.mli fl_dynload.cmi META` && \
|
||||||
|
cp $$files "$(prefix)$(OCAML_SITELIB)/$(NAME)"
|
||||||
|
f="ocamlfind$(EXEC_SUFFIX)"; { test -f ocamlfind_opt$(EXEC_SUFFIX) && f="ocamlfind_opt$(EXEC_SUFFIX)"; }; \
|
Reference in a new issue