From patchwork Mon Apr 21 14:05:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: John Khoo X-Patchwork-Id: 41847 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 014BF27BC4A; Mon, 21 Apr 2025 15:06:23 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id B77CE27BC49 for ; Mon, 21 Apr 2025 15:06:20 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6rmd-0005gV-Of; Mon, 21 Apr 2025 10:06:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6rmc-0005fP-V6 for guix-patches@gnu.org; Mon, 21 Apr 2025 10:06:03 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6rmc-000287-Lr for guix-patches@gnu.org; Mon, 21 Apr 2025 10:06:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:In-Reply-To:References:Subject; bh=cqJglFNbOCG2tttNvqxkaqBHAyodHTM7KaUOU52bZQY=; b=DdLJPX8oJacouoDHcMnExCDa7Qv4MxjmtIvkviX5tOXcvn4/4xOxfJtwUmppGnvspcNx+FC02bW22XgRTjhqWL0Pn/OvY5YwXDBpEXkBjlWUJNumSvQ757V2HF6hXmkthnE+UVQTiXGLLWveHtboQAFaenAjiasiSQi+Kz1W5Fezaz7GXbYdFwpIB0Enx4LTVz0N9qLAC/nOKkir+mJ9u9YfF4zqex4YA7bVL/NaSEqeq6RAjNO34SBtzpWxYHdgumski8FGsdmLIBYuG5fSs/Rw1Vk6hOFu7/9QleOxNs1loUB6MktMCJdFinu/vcF96Xji93P1ts7YS0zr2v4J5A==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1u6rmc-0001VK-Et; Mon, 21 Apr 2025 10:06:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#77949] [PATCH v2 1/3] gnu: utf8proc: Update to 2.10.0. References: In-Reply-To: Resent-From: John Khoo Original-Sender: "Debbugs-submit" Resent-CC: zimon.toutoune@gmail.com, guix-patches@gnu.org Resent-Date: Mon, 21 Apr 2025 14:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77949 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 77949@debbugs.gnu.org Cc: John Khoo , Simon Tournier X-Debbugs-Original-Xcc: Simon Tournier Received: via spool by 77949-submit@debbugs.gnu.org id=B77949.17452443395689 (code B ref 77949); Mon, 21 Apr 2025 14:06:02 +0000 Received: (at 77949) by debbugs.gnu.org; 21 Apr 2025 14:05:39 +0000 Received: from localhost ([127.0.0.1]:35699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u6rmD-0001TW-Pi for submit@debbugs.gnu.org; Mon, 21 Apr 2025 10:05:39 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]:42136) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u6rmA-0001Si-4M for 77949@debbugs.gnu.org; Mon, 21 Apr 2025 10:05:35 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-30820167b47so3700966a91.0 for <77949@debbugs.gnu.org>; Mon, 21 Apr 2025 07:05:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745244327; x=1745849127; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=cqJglFNbOCG2tttNvqxkaqBHAyodHTM7KaUOU52bZQY=; b=YkB8eStNbN1yyBNKGMEYFhyNX9cC4FImtZtIIita24nvJMN1GUdaKBRMfbBtNDy+8/ O5g7YuLPV4ny6ig5ZQtETu2stEKKGbjkHCUwr7XTl8v3VUptK5ZgJQ5AA/CSgczlVaN4 iN1URAFKETSD224bV1DcfH4Exu8gTdnu7p9EXJfD5WHuuL4idK9meUj53+l6UNjhRZPb yRL4r8lwVF7ByF6gDk/0D3DU/LvgHCk+Rx1O43dV9ct9xm0lqVQKO6uB8/Lvnt94ASZe N91OQJ+Fkymxuh3CgF8eWXCfdgl3X6iTfIWbJMFLbAIj+ZyzYUnf90HLNq7dTPYltrc1 an5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745244327; x=1745849127; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cqJglFNbOCG2tttNvqxkaqBHAyodHTM7KaUOU52bZQY=; b=OdKtpDazEE9o5xAQrjg4YjMFg/03VWsTXTTvTmlUsxigfsdVBHobVwMlKC8H10VJb6 k9vtvTAMuUTpliHsKw6DyfPpcb4oEWJaHGkT1h3qWmbOoffxqU2C1cEvTIl2D62JY5/J LTLAQtIyohwqOnDUSIOnXB3BAZ53h/ZJWRiw/ApC7N9WHz1ZWQeaENoZsQsJXhH6z1LY pdv5F3VH2eKgygcFuxrN2fDTu8Lbfu3z1ZZ6vCjH2Asa3MhLEyy9IgPgMxN3IN7II6/w +I7FeS6hzFdfZGqwmQ+p8ehUbY8k+2haCR8znwWwi30dqutQcqlJz45No8gesLbBb4pK IiCQ== X-Gm-Message-State: AOJu0YzzCqPm6LqR1d9HoOFadfDYU5FsAu6iN5730dea3NnjijhjWiGp 39Wc/U7OklqmXaT/hwykJg3disziaPrf+0X74soLdp6LWiJgwx1Tf7K18VM2zTU= X-Gm-Gg: ASbGnct8/TdmmUO5bpQbxWqMpmpDY1p2ummXgsbW6S//UBdA2B8/ROtKP8Cowq2w3xL rvfdutQy2jDNctxK+wipxsAmz+O3Ywwr2+rfX2agEUBalN0b1P+nhKyXYaaMBbqQ8Q+whvrBNf4 KSyX/GuMqZeX+vg+KTB7RMHxgkJTLTonzcTyAMkmjfOkvp/84y0AaAIsT7GJzNvEC+Zs1DTCkdY q9ZwccPjOKcp33gx35VOuw0s5JYlUxvhtg2yZ3c401NlXpe4NL81LFxaq3D4Kw4kJurQDcve1dm 9GwWjehnwXj6dBifPA++uFeaOhx6UKDgzLJM X-Google-Smtp-Source: AGHT+IHhG+yAwZ3chffrBH2odBMaxOkWouWymuvA5zl2pO0Z1BMFGG26sUxh1UAGPXnDGjTjbegmEw== X-Received: by 2002:a17:90b:3cd0:b0:2fa:3174:e344 with SMTP id 98e67ed59e1d1-30879c02d1amr17888443a91.14.1745244326972; Mon, 21 Apr 2025 07:05:26 -0700 (PDT) Received: from localhost ([116.86.61.95]) by smtp.gmail.com with UTF8SMTPSA id 98e67ed59e1d1-3087e1149b1sm6582730a91.40.2025.04.21.07.05.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Apr 2025 07:05:26 -0700 (PDT) From: John Khoo Date: Mon, 21 Apr 2025 22:05:15 +0800 Message-ID: <4c272d92f62b18882fe0e6868f6c61a0291071df.1745244317.git.johnkhootf@gmail.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/textutils.scm (utf8proc): Add new utf8proc-bootstrap package to break dependency loop with Julia, and update to 2.10.0. * gnu/packages/julia.scm (julia): Change utf8proc dependency to utf8proc-bootstrap to break dependency loop. Change-Id: I5b75b8de3803032d423ba055a62c39801dd2cf47 --- gnu/packages/julia.scm | 3 +- gnu/packages/textutils.scm | 134 ++++++++++++++++--------------------- 2 files changed, 60 insertions(+), 77 deletions(-) base-commit: 94e7afbb557d3f2709072bf2bf58618293ca7fbd diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 9668b3fd1e..9a4b38f74e 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2021 Simon Tournier ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2022 Akira Kyle +;;; Copyright © 2025 John Khoo ;;; ;;; This file is part of GNU Guix. ;;; @@ -526,7 +527,7 @@ (define-public julia ("p7zip" ,p7zip) ("pcre2" ,pcre2) ("suitesparse" ,suitesparse) - ("utf8proc" ,utf8proc-2.7.0) + ("utf8proc" ,utf8proc-bootstrap) ; Julia used for tests ("wget" ,wget) ("which" ,which) ("zlib" ,zlib) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index c886b009be..1814490e97 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2024 Sharlatan Hellseher ;;; Copyright © 2024, 2025 Ashish SHUKLA ;;; Copyright © 2024 Artyom V. Poptsov +;;; Copyright © 2025 John Khoo ;;; ;;; This file is part of GNU Guix. ;;; @@ -76,6 +77,7 @@ (define-module (gnu packages textutils) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages java) + #:use-module (gnu packages julia) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) @@ -89,7 +91,8 @@ (define-module (gnu packages textutils) #:use-module (gnu packages ruby) #:use-module (gnu packages slang) #:use-module (gnu packages web) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (srfi srfi-1)) (define-public dos2unix (package @@ -166,22 +169,44 @@ (define-public enca libenca and several charset conversion libraries and tools.") (license license:gpl2))) +;; Bootstrap variant of utf8proc, which breaks the dependency cycle between julia +;; and utf8proc by disabling tests and removing its native-inputs. +(define-public utf8proc-bootstrap + (hidden-package + (package + (name "utf8proc-bootstrap") + (version "2.10.0") + (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 "1n1k67x39sk8xnza4w1xkbgbvgb1g7w2a7j2qrqzqaw1lyilqsy2")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:make-flags (list ,(string-append "CC=" (cc-for-target)) + (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure) + ))) + (home-page "https://juliastrings.github.io/utf8proc/") + (synopsis "C library for processing UTF-8 Unicode data") + (description "utf8proc is a small C library that provides Unicode + normalization, case-folding, and other operations for data in the UTF-8 + encoding, supporting Unicode version 16.0.0.") + (license license:expat)))) + (define-public utf8proc (package + (inherit utf8proc-bootstrap) (name "utf8proc") - (version "2.5.0") - (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 "1xlkazhdnja4lksn5c9nf4bln5gjqa35a8gwlam5r0728w0h83qq")))) - (build-system gnu-build-system) - (native-inputs - (let ((UNICODE_VERSION "13.0.0")) ; defined in data/Makefile + (native-inputs ;; For tests. + (let ((UNICODE_VERSION "16.0.0")) ; defined in data/Makefile ;; Test data that is otherwise downloaded with curl. `(("NormalizationTest.txt" ,(origin @@ -189,7 +214,7 @@ (define-public utf8proc (uri (string-append "https://www.unicode.org/Public/" UNICODE_VERSION "/ucd/NormalizationTest.txt")) (sha256 - (base32 "07g0ya4f6zfzvpp24ccxkb2yq568kh83gls85rjl950nv5fya3nn")))) + (base32 "1cffwlxgn6sawxb627xqaw3shnnfxq0v7cbgsld5w1z7aca9f4fq")))) ("GraphemeBreakTest.txt" ,(origin (method url-fetch) @@ -197,57 +222,26 @@ (define-public utf8proc UNICODE_VERSION "/ucd/auxiliary/GraphemeBreakTest.txt")) (sha256 - (base32 "07f8rrvcsq4pibdz6zxggxy8w7zjjqyw2ggclqlhalyv45yv7prj")))) - + (base32 "1d9w6vdfxakjpp38qjvhgvbl2qx0zv5655ph54dhdb3hs9a96azf")))) + ("DerivedCoreProperties.txt" + ,(origin + (method url-fetch) + (uri (string-append "https://www.unicode.org/Public/" + UNICODE_VERSION "/ucd/DerivedCoreProperties.txt")) + (sha256 + (base32 "1gfsq4vdmzi803i2s8ih7mm4fgs907kvkg88kvv9fi4my9hm3lrr")))) ;; For tests. - ("perl" ,perl)))) + ("perl" ,perl) + ("ruby" ,ruby-2.7) + ("julia" ,julia)))) (arguments - `(#:make-flags (list ,(string-append "CC=" (cc-for-target)) - (string-append "prefix=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'check 'check-data - (lambda* (#:key ,@(if (%current-target-system) - '(native-inputs) - '()) - inputs #:allow-other-keys) - (for-each (lambda (i) - (copy-file (assoc-ref ,@(if (%current-target-system) - '((or native-inputs inputs)) - '(inputs)) i) - (string-append "data/" i))) - '("NormalizationTest.txt" "GraphemeBreakTest.txt")) - (substitute* "data/GraphemeBreakTest.txt" - (("÷") "/") - (("×") "+")) - #t))))) - (home-page "https://juliastrings.github.io/utf8proc/") - (synopsis "C library for processing UTF-8 Unicode data") - (description "utf8proc is a small C library that provides Unicode -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.7.0 - (package - (inherit utf8proc) - (name "utf8proc") - (version "2.7.0") - (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 "1wrsmnaigal94gc3xbzdrrm080zjhihjfdla5admllq2w5dladjj")))) - (arguments - (substitute-keyword-arguments (package-arguments utf8proc) + (substitute-keyword-arguments (package-arguments utf8proc-bootstrap) + ((#:tests? _ #f) + (not (%current-target-system))) ((#:phases phases) - `(modify-phases ,phases - (replace 'check-data + `(modify-phases %standard-phases + (delete 'configure) + (add-before 'check 'check-data (lambda* (#:key inputs native-inputs #:allow-other-keys) (display native-inputs) (for-each (lambda (i) @@ -255,19 +249,7 @@ (define-public utf8proc-2.7.0 (string-append "data/" i))) '("NormalizationTest.txt" "GraphemeBreakTest.txt" "DerivedCoreProperties.txt")))))))) - (native-inputs - (append - (package-native-inputs utf8proc) - (let ((UNICODE_VERSION "14.0.0")) - `(("DerivedCoreProperties.txt" - ,(origin - (method url-fetch) - (uri (string-append "https://www.unicode.org/Public/" - UNICODE_VERSION "/ucd/DerivedCoreProperties.txt")) - (sha256 - (base32 "1g77s8g9443dd92f82pbkim7rk51s7xdwa3mxpzb1lcw8ryxvvg3")))) - ;; For tests - ("ruby" ,ruby-2.7))))))) + (properties (alist-delete 'hidden? (package-properties utf8proc-bootstrap))))) (define-public libconfuse (package