Subject: [PATCH v2 1/2] gnu: Add ocaml-camlpdf.

From: Jussi Timperi <[email-masked]>
Date: Tue, 27 May 2025 14:56:43 +0300

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

Change-Id: I097280bdd16eaf810f83fbca13f615a03e4d6702
---
 gnu/packages/ocaml.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 01aef23b2a..f6178ffbff 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2023, 2024 Foundation Devices, Inc. <[email-masked]>
 ;;; Copyright © 2023 Arnaud DABY-SEESARAM <[email-masked]>
 ;;; Copyright © 2024 Sören Tempel <[email-masked]>
+;;; Copyright © 2025 Jussi Timperi <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -659,6 +660,45 @@ (define-public ocaml-extlib
     ;; With static-linking exception
     (license license:lgpl2.1+)))
 
+(define-public ocaml-camlpdf
+  (package
+    (name "ocaml-camlpdf")
+    (version "2.8.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/johnwhitington/camlpdf")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1cbqgwh62cqnsbax4k4iv9gb63k1v545izmbffxj8gj1q6sm0k34"))))
+    (build-system ocaml-build-system)
+    (arguments
+     (list
+      #:tests? #f ;no tests
+      #:make-flags
+        #~(list (string-append "CC=" #$(cc-for-target)))
+      #:phases
+        #~(modify-phases %standard-phases
+            (delete 'configure)
+            (add-after 'unpack 'patch-makefile-shell
+              (lambda _
+                (patch-makefile-SHELL "OCamlMakefile")))
+            (add-after 'install 'install-doc
+              (lambda _
+                (let ((doc (string-append #$output "/share/doc/"
+                                          #$name "-" #$version)))
+                  (copy-recursively "doc/camlpdf/html"
+                                    (string-append doc "/html"))))))))
+    (home-page "https://github.com/johnwhitington/camlpdf")
+    (synopsis "OCaml library for PDF file manipulation")
+    (description
+     "CamlPDF is an OCaml library that provides functionality for reading,
+writing, and modifying PDF files.  It serves as the foundation for the
+@command{cpdf} command-line tool and various API bindings.")
+    (license license:lgpl2.1+)))
+
 (define-public ocaml-cudf
   (package
     (name "ocaml-cudf")

base-commit: da5d2b382e8db08fd8a99c4d14f2c8c2ef0150da
-- 
2.49.0