From patchwork Wed Feb 2 15:37:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alice BRENON X-Patchwork-Id: 36936 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 F322E27BBEA; Wed, 2 Feb 2022 17:19:59 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, 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 61CCE27BBE9 for ; Wed, 2 Feb 2022 17:19:59 +0000 (GMT) Received: from localhost ([::1]:41386 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nFJIU-0005NS-Hb for patchwork@mira.cbaines.net; Wed, 02 Feb 2022 12:19:58 -0500 Received: from eggs.gnu.org ([209.51.188.92]:50768) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nFHhq-0007fG-Qb for guix-patches@gnu.org; Wed, 02 Feb 2022 10:38:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:59216) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nFHhq-00075g-A9 for guix-patches@gnu.org; Wed, 02 Feb 2022 10:38:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nFHhq-0005n5-5u for guix-patches@gnu.org; Wed, 02 Feb 2022 10:38:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53548] [PATCH] Harden beautify-description Resent-From: Alice BRENON Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 02 Feb 2022 15:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53548 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?utf-8?q?Court=C3=A8s?= Cc: 53548@debbugs.gnu.org, Xinglu Chen , Julien Lepiller Received: via spool by 53548-submit@debbugs.gnu.org id=B53548.164381626822234 (code B ref 53548); Wed, 02 Feb 2022 15:38:02 +0000 Received: (at 53548) by debbugs.gnu.org; 2 Feb 2022 15:37:48 +0000 Received: from localhost ([127.0.0.1]:53113 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nFHhS-0005mO-Pa for submit@debbugs.gnu.org; Wed, 02 Feb 2022 10:37:48 -0500 Received: from lxc-smtp2.ens-lyon.fr ([140.77.167.81]:34520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nFHhO-0005mB-BD for 53548@debbugs.gnu.org; Wed, 02 Feb 2022 10:37:37 -0500 Received: from localhost (localhost [127.0.0.1]) by lxc-smtp2.ens-lyon.fr (Postfix) with ESMTP id DFFF2E6362; Wed, 2 Feb 2022 16:37:32 +0100 (CET) X-Virus-Scanned: by amavisd-new-2.11.0 (20160426) (Debian) at ens-lyon.fr Received: from lxc-smtp2.ens-lyon.fr ([127.0.0.1]) by localhost (lxc-smtp2.ens-lyon.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sFANrwyW-1r2; Wed, 2 Feb 2022 16:37:32 +0100 (CET) Received: from localhost (unknown [78.194.167.103]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) by lxc-smtp2.ens-lyon.fr (Postfix) with ESMTPSA id 78711E633A; Wed, 2 Feb 2022 16:37:32 +0100 (CET) Date: Wed, 2 Feb 2022 16:37:31 +0100 From: Alice BRENON Message-ID: <20220202163731.4e3216f2@ens-lyon.fr> In-Reply-To: <87ee4n8pu3.fsf@gnu.org> References: <20220126104139.17df3cbb@ens-lyon.fr> <87ee4n8pu3.fsf@gnu.org> Organization: ENS de Lyon X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) 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" X-getmail-retrieved-from-mailbox: Patches Hi ! Thank you again for the help. I think it looks really better with the translated reference to the info page. I feared the issues I raised would yield unending discussions but actually with your edit it's already pretty neat while remaining very simple. That's inspiring. For the others interested in this thread, I also made the import of G_ from (guix i18n) explicit because it was being re-exported from (guix ui), and while I was at it, I made the only used import from (guix ui), that is fill-paragraph, explicit. Hope you like this second version better : ) Alice Le Tue, 01 Feb 2022 00:09:40 +0100, Ludovic Courtès a écrit : > Hi Alice, > > Alice BRENON skribis: > > > Missing metadata in packages used to break their imports, at least > > for opam packages, until this was fixed by Julien in > > 24aa7b3c21309b63cc6e8e18d6417d2cddccf6c6. When Xinglu improved the > > output of descriptions in 155fc235b5e1b41b4665c782365dd2bf11beae9c, > > it made the imports break again in the case when the `description` > > field is missing and Julien's fix applies, returning #f in > > `metadata-ref` instead of crashing. Trouble is: > > beautify-description expects its description argument to be a > > string and will crash if this assumption isn't met (when calling > > the `string-prefix?` predicate). > > Thanks for explaining! Some comments: > > > From 22f0523ef3599b45af9448bd4f31f7b8f8ce6af2 Mon Sep 17 00:00:00 > > 2001 From: Alice BRENON > > Date: Wed, 26 Jan 2022 09:27:12 +0100 > > Subject: [PATCH] guix: import: Harden beautify-description. > > > > * guix/import/utils.scm (beautify-description): Handle non-string > > arguments. > > * guix/import/opam.scm: [use-modules] Make imports explicit for > > module (guix import utils). > > [...] > > > #:use-module ((guix utils) #:select (cache-directory > > version>? > > call-with-temporary-output-file)) > > - #:use-module (guix import utils) > > + #:use-module ((guix import utils) #:select (beautify-description > > + guix-hash-url > > + recursive-import > > + spdx-string->license > > + url-fetch)) > > It can’t hurt. > > > + ((not (string? description)) > > + (let ((home-url "https://guix.gnu.org/") > > + (doc-path "fr/manual/devel/en/html_node/") > > + (page > > + > > "Synopses-and-Descriptions.html#Synopses-and-Descriptions")) > > + (string-append > > + "Please fill in the description of your > > package before " > > + "submitting ! See " > > + home-url doc-path page))) > > I’d avoid the URL and maybe make the string translatable, like so: > > (G_ "This package lacks a description … > Run \"info '(guix) Synopses and Descriptions'\" for more > information.") > > … where ‘G_’ comes from (guix i18n). > > WDYT? > > This looks like a welcome improvement to me. > > Thanks! > > Ludo’. From cfb57a40a90bfc31d1b846f3e981469285f1bd7b Mon Sep 17 00:00:00 2001 From: Alice BRENON Date: Wed, 26 Jan 2022 09:27:12 +0100 Subject: [PATCH] guix: import: Harden beautify-description. * guix/import/utils.scm (beautify-description): Handle non-string arguments. [use-modules]: Explicitly import G_ from (guix i18n) and make (guix ui) import explicit. * guix/import/opam.scm: [use-modules] Make imports explicit for module (guix import utils). --- guix/import/opam.scm | 8 ++++++-- guix/import/utils.scm | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/guix/import/opam.scm b/guix/import/opam.scm index a6f6fe8c9f..f569c921b1 100644 --- a/guix/import/opam.scm +++ b/guix/import/opam.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2020 Martin Becze ;;; Copyright © 2021 Xinglu Chen ;;; Copyright © 2021 Sarah Morgensen -;;; Copyright © 2021 Alice Brenon +;;; Copyright © 2021, 2022 Alice Brenon ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,7 +42,11 @@ (define-module (guix import opam) #:use-module ((guix utils) #:select (cache-directory version>? call-with-temporary-output-file)) - #:use-module (guix import utils) + #:use-module ((guix import utils) #:select (beautify-description + guix-hash-url + recursive-import + spdx-string->license + url-fetch)) #:use-module ((guix licenses) #:prefix license:) #:export (opam->guix-package opam-recursive-import diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 1c3cfa3e0b..934b224bec 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Sarah Morgensen ;;; Copyright © 2021 Xinglu Chen +;;; Copyright © 2022 Alice Brenon ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,10 +38,11 @@ (define-module (guix import utils) #:use-module (guix discovery) #:use-module (guix build-system) #:use-module (guix gexp) + #:use-module ((guix i18n) #:select (G_)) #:use-module (guix store) #:use-module (guix download) #:use-module (guix sets) - #:use-module (guix ui) + #:use-module ((guix ui) #:select (fill-paragraph)) #:use-module (gnu packages) #:use-module (ice-9 match) #:use-module (ice-9 rdelim) @@ -241,6 +243,9 @@ (define* (beautify-description description #:optional (length 80)) a proper sentence and by using two spaces between sentences, and wrap lines at LENGTH characters." (let ((cleaned (cond + ((not (string? description)) + (G_ "This package lacks a description. Run \"info '(guix) + Synopses and Descriptions'\" for more information.")) ((string-prefix? "A " description) (string-append "This package provides a" (substring description 1))) -- 2.34.0