Subject: [PATCH v5 1/5] gnu: Add utf8proc-2.6.1.

From: Jean-Baptiste Volatier <[email-masked]>
Date: Sat, 03 Jul 2021 17:41:34 +0000

* gnu/packages/textutils.scm (utf8proc-2.6.1): New variable.

* gnu/packages/textutils.scm (utf8pro): Fix cross-compilation.

Co-Authored-By: zimoun <[email-masked]>.
---
 gnu/packages/textutils.scm | 46 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 44 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index ab34373705..37b925e6d9 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2019 Mădălin Ionel Patrașcu <[email-masked]>
 ;;; Copyright © 2019 Wiktor Żelazny <[email-masked]>
 ;;; Copyright © 2020 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021 Simon Tournier <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -63,6 +64,7 @@
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages slang)
   #:use-module (gnu packages web))

@@ -185,9 +187,9 @@ libenca and several charset conversion libraries and tools.")
        (modify-phases %standard-phases
          (delete 'configure)
          (add-before 'check 'check-data
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* (#:key inputs native-inputs #:allow-other-keys)
              (for-each (lambda (i)
-                         (copy-file (assoc-ref inputs i)
+                         (copy-file (assoc-ref (or native-inputs inputs) i)
                                     (string-append "data/" i)))
                        '("NormalizationTest.txt" "GraphemeBreakTest.txt"))
              (substitute* "data/GraphemeBreakTest.txt"
@@ -201,6 +203,46 @@ normalization, case-folding, and other operations for data in the UTF-8
 encoding, supporting Unicode version 9.0.0.")
     (license license:expat)))

+(define-public utf8proc-2.6.1
+  (package
+    (inherit utf8proc)
+    (name "utf8proc")
+    (version "2.6.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaStrings/utf8proc")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1zqc6airkzkssbjxanx5v8blfk90180gc9id0dx8ncs54f1ib8w7"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments utf8proc)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'check-data
+             (lambda* (#:key inputs native-inputs #:allow-other-keys)
+               (display native-inputs)
+               (for-each (lambda (i)
+                           (copy-file (assoc-ref (or native-inputs inputs) i)
+                                      (string-append "data/" i)))
+                         '("NormalizationTest.txt" "GraphemeBreakTest.txt"
+                           "DerivedCoreProperties.txt"))))))))
+    (native-inputs
+     (append
+      (package-native-inputs utf8proc)
+      (let ((UNICODE_VERSION "13.0.0"))
+        `(("DerivedCoreProperties.txt"
+           ,(origin
+              (method url-fetch)
+              (uri (string-append "https://www.unicode.org/Public/"
+                                  UNICODE_VERSION "/ucd/DerivedCoreProperties.txt"))
+              (sha256
+               (base32 "0j12x112cd8fpgazkc8izxnhhpia44p1m36ff8yapslxndcmzm55"))))
+          ;; For tests
+          ("ruby" ,ruby)))))))
+
 (define-public libconfuse
   (package
     (name "libconfuse")
--
2.32.0