From e0fefb2d3110632983fcb1fc0cbdb8e26d8564fc Mon Sep 17 00:00:00 2001 From: Jason Conroy Date: Sun, 21 Dec 2025 10:55:04 -0500 Subject: [PATCH] gnu: ocaml: Move ocaml5.3-findlib to module `ocaml5`. * gnu/packages/ocaml.scm (ocaml5.3-findlib): Delete variable. * gnu/packages/ocaml5.scm (ocaml5.3-findlib): New variables. * guix/build-system/ocaml.scm (default-ocaml5.3-findlib): Update package reference. Change-Id: Idb58f33850f960cfa1ad49a3f897ad17e0383e93 Signed-off-by: Julien Lepiller --- gnu/packages/ocaml.scm | 13 ++------- gnu/packages/ocaml5.scm | 55 +++++++++++++++++++++++++++++++++++++ guix/build-system/ocaml.scm | 2 +- 3 files changed, 59 insertions(+), 11 deletions(-) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index c613af7077c..46d1dfecadc 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -1605,13 +1605,6 @@ compilers that can directly deal with packages.") (native-inputs (list m4 ocaml5:ocaml-5.0)))) -(define-public ocaml5.3-findlib - (package - (inherit ocaml-findlib) - (name "ocaml5.3-findlib") - (native-inputs - (list m4 ocaml5:ocaml-5.3)))) - (define-public ocaml-ounit2 (package (name "ocaml-ounit2") @@ -2015,7 +2008,7 @@ config.h files for instance. Among other things, dune-configurator allows one t `(,@(package-arguments dune-configurator) #:dune ,ocaml5.3-dune-bootstrap #:ocaml ,ocaml5:ocaml-5.3 - #:findlib ,ocaml5.3-findlib)) + #:findlib ,ocaml5:ocaml5.3-findlib)) (propagated-inputs (list ocaml5.3-csexp)))) (define-public dune @@ -2233,7 +2226,7 @@ module of this library is parameterised by the type of S-expressions.") (name "ocaml5.3-csexp") (arguments `(#:ocaml ,ocaml5:ocaml-5.3 - #:findlib ,ocaml5.3-findlib + #:findlib ,ocaml5:ocaml5.3-findlib ,@(substitute-keyword-arguments (package-arguments ocaml-csexp) ((#:dune _) ocaml5.3-dune-bootstrap)))) (propagated-inputs @@ -2392,7 +2385,7 @@ defined in this library.") (arguments `(#:dune ,ocaml5.3-dune-bootstrap #:ocaml ,ocaml5:ocaml-5.3 - #:findlib ,ocaml5.3-findlib)))) + #:findlib ,ocaml5:ocaml5.3-findlib)))) (define-public ocaml-iso8601 (package diff --git a/gnu/packages/ocaml5.scm b/gnu/packages/ocaml5.scm index 5634f03e787..4288985c175 100644 --- a/gnu/packages/ocaml5.scm +++ b/gnu/packages/ocaml5.scm @@ -52,6 +52,7 @@ (define-module (gnu packages ocaml5) #:use-module (gnu packages compression) #:use-module (gnu packages gcc) + #:use-module (gnu packages m4) #:use-module (gnu packages parallel) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -143,6 +144,60 @@ functional, imperative and object-oriented styles of programming.") (base32 "05jhy9zn53v12rn3sg3vllqf5blv1gp7f06803npimc58crxy6rv")))))) +(define-public ocaml5.3-findlib + (package + (name "ocaml5.3-findlib") + (version "1.9.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/ocamlfind") + (commit (string-append "findlib-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a0mxwf3mwl2n6ryqqsvcg73ly8ji0xi0xa2v1p02695495grkki")))) + (build-system gnu-build-system) + (native-inputs (list m4 ocaml-5.3)) + (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"))) + (invoke "./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")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (invoke "make" "install" + (string-append "OCAML_CORE_STDLIB=" out + "/lib/ocaml/site-lib")))))))) + (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 file system 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 license:x11))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm index f709a85b809..45bae9baee2 100644 --- a/guix/build-system/ocaml.scm +++ b/guix/build-system/ocaml.scm @@ -134,7 +134,7 @@ (@* (gnu packages ocaml5) ocaml-5.3)) (define (default-ocaml5.3-findlib) - (@* (gnu packages ocaml) ocaml5.3-findlib)) + (@* (gnu packages ocaml5) ocaml5.3-findlib)) (define (default-ocaml5.3-dune) (@* (gnu packages ocaml) ocaml5.3-dune))