From patchwork Mon Apr 21 05:53:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: John Khoo X-Patchwork-Id: 41841 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 7F1BD27BC4D; Mon, 21 Apr 2025 14:26:32 +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=ham 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 6B0CF27BC49 for ; Mon, 21 Apr 2025 14:26:31 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6rAE-0007N4-HD; Mon, 21 Apr 2025 09:26:23 -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 1u6k7U-0002xQ-Rf for guix-patches@gnu.org; Mon, 21 Apr 2025 01:55:04 -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 1u6k7U-0003G3-GO for guix-patches@gnu.org; Mon, 21 Apr 2025 01:55:04 -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:References:In-Reply-To:Date:From:To:Subject; bh=IRjh1gr+AiX8yF5iOGg+6H46asni4a9kX8dULwJcMig=; b=fp1kHqekLb/h0o5z4hn0iWn+3ww4OYr5XraLYsgKNitja4qg0o4WI1iDZLDP0AHUO0jGibZGhiNqRZW8LpaDMfvpMxpKZrXTG3V+yuuX/S5tmY/uScG6bLdTTAxiLCnpD+YPIws1eOPX2YB/SmvKn+HGojyKEIOkktbpXP9PFSDPVbWJOPV58m6ARAguObAqsFXrXGXaGoEKdemPo6Rl4vDqDl0Hktb2LpEx+YcSlyRp0QCpcjdBBrZw/gOrB6l5e2ahm2Od1eabjhsRv6mKyBQ47tfQPh1aKasQh5VsU+VrktlW3941pNkrsnqz+KWAiMGQ16NBPMzP3W79qk2Zww==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1u6k7U-0005Z3-50; Mon, 21 Apr 2025 01:55:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#77949] [PATCH 1/3] gnu: utf8proc: Update to 2.10.0. Resent-From: John Khoo Original-Sender: "Debbugs-submit" Resent-CC: zimon.toutoune@gmail.com, guix-patches@gnu.org Resent-Date: Mon, 21 Apr 2025 05:55:04 +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.174521487321177 (code B ref 77949); Mon, 21 Apr 2025 05:55:04 +0000 Received: (at 77949) by debbugs.gnu.org; 21 Apr 2025 05:54:33 +0000 Received: from localhost ([127.0.0.1]:59088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u6k6y-0005VP-NY for submit@debbugs.gnu.org; Mon, 21 Apr 2025 01:54:33 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]:56628) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u6k6v-0005V0-4Y for 77949@debbugs.gnu.org; Mon, 21 Apr 2025 01:54:30 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-73bf5aa95e7so3238226b3a.1 for <77949@debbugs.gnu.org>; Sun, 20 Apr 2025 22:54:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745214862; x=1745819662; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IRjh1gr+AiX8yF5iOGg+6H46asni4a9kX8dULwJcMig=; b=EgXcz9OooSR0i+/6jH0Se4gYsdmZVt/HNrkvPDBG8WU6mNojqhSXEr/nf4nY/9oD8e HsTBReSiqudaAokp8DkPSnjX083KVsvX8Nql1Pa6SfEgBKDClN0ViJRFoWzKZk1MQJ4R Qg6RWtwxRQr5d9H8qkKaiOzjoMfd1SQjrYss9AgYCBLc9Ut56F2Q+PoXeRczMCxffL8K E7nrCRGOE5mb6/yAfYGqtf85x9Kea6W0idYMVKZ/qN4O2RaF5/fmfN6Tn5Gyv4r2iP5V F3WR7rwSkiisRLuJOX+mBPzXVKy+4O+jv9RQ7/YFaK+xcs3mgQCQbDD5rgdm1JqqpFSY 7rcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745214862; x=1745819662; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IRjh1gr+AiX8yF5iOGg+6H46asni4a9kX8dULwJcMig=; b=Rp7LfOciB996RGIG/3HAFuUMqyHkU/Pd7+P4EMEvwkvGmr2+ilpAq3cPzmzm1pLHL2 7yDcuiY6CNNHin8vL0eVRpY1lSx0gHOMdCjje1ZbIbjfow/ddXd0M2K+hCncz1IW5MhS WQcfnnp/Z6eTZCfcTdfXzKvXxh7lqc2U+EWFaobxDDwgzVj3ExnAgo+lU54FLzyckINf dlh+rDQiJxanArT2ms/pHwLUV5B42gXetp5RsWclZncZnz07hCE+VfmA7mjxq+mEgcRg N7tCgI+XzvEkzU+LWA8nEFFfxfYrddRoB81xBhm192JbS0L1wwXx58MxJgSdFOcsC+zM f3Wg== X-Gm-Message-State: AOJu0YyaVvmL5nK8pWE604oBd8ne74gpEXRNs3AzYOFVzEOXjkgtm98s wYWdBqjOebSc3gT4wfjU2KEQh318F2VECYQSvPoNi/Ou76WvYwR+WsidPULl/yI= X-Gm-Gg: ASbGnctAwafduo8OojfYPFRL7Hf7JNFkWCb1R404JCtC7DIvDIqkaE3u53SpywXf6Uk ZBKWimqOsTSry1UcUehYsCJlDu3OEdyFRABxhRvbCoGsuPlxm+Gp+mmc+TrM8LaF1QDM2k0DYfG qBqZgnYN+K33EFkLQvcHtDrC1EtJdtVXbffpW7eNHvUsaecKEQ1CKQ/tp5BmIeCe31RRZCjWhRF TfhKsuKzGDDiw3oLN3DIiE9smatW0HQ5sdGEAZzRvApuD6Kbo/G97ow3KNjnIm40Nkl+qGuLQ1g mOxikETPJPJaF+87cvdR0iEp0Ksx7GJUozcT X-Google-Smtp-Source: AGHT+IGalWwy+G0MBZV4qEidnlZ+lpMbkx8OpYf+ZZLpytYQssh1abi5wjPM6UNmnNLJ/PxkKVL7jg== X-Received: by 2002:a05:6a00:4acc:b0:736:b9f5:47c6 with SMTP id d2e1a72fcca58-73dc1566938mr13091214b3a.16.1745214861839; Sun, 20 Apr 2025 22:54:21 -0700 (PDT) Received: from localhost ([116.86.61.95]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-73dbf8bf5d5sm5888783b3a.11.2025.04.20.22.54.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 20 Apr 2025 22:54:21 -0700 (PDT) From: John Khoo Date: Mon, 21 Apr 2025 13:53:46 +0800 Message-ID: <4c272d92f62b18882fe0e6868f6c61a0291071df.1745206603.git.johnkhootf@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Mon, 21 Apr 2025 09:26:16 -0400 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(-) -- 2.49.0 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