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.master
parent
3a7261bf96
commit
a747baba00
|
@ -624,6 +624,7 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/nvi-assume-preserve-path.patch \
|
||||
gnu/packages/patches/nvi-dbpagesize-binpower.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/openimageio-boost-1.60.patch \
|
||||
gnu/packages/patches/openjpeg-CVE-2015-6581.patch \
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -42,6 +43,7 @@
|
|||
#:use-module (gnu packages lynx)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages version-control)
|
||||
#: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
|
||||
to the other.")
|
||||
(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)))
|
||||
|
|
|
@ -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 New Issue