From: Mathieu Lirzin <mthl@openmailbox.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel@gnu.org, Alex Kost <alezost@gmail.com>
Subject: Re: Texinfo in descriptions?
Date: Sun, 30 Aug 2015 22:42:46 +0200 [thread overview]
Message-ID: <87zj18ik3d.fsf@openmailbox.org> (raw)
In-Reply-To: <87613wlmgv.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sun, 30 Aug 2015 19:23:12 +0200")
[-- Attachment #1: Type: text/plain, Size: 2010 bytes --]
Here is an updated patch.
ludo@gnu.org (Ludovic Courtès) writes:
> Mathieu Lirzin <mthl@openmailbox.org> skribis:
>
>> From e98c0ec3b609c077bf471cf838f12f54a89a0226 Mon Sep 17 00:00:00 2001
>> From: Mathieu Lirzin <mthl@openmailbox.org>
>> Date: Fri, 7 Aug 2015 00:10:43 +0200
>> Subject: [PATCH] packages: Add package-description-string.
>>
>> * guix/packages.scm (package-description-string): New variable.
>> * guix/utils.scm (texi->plain-text): Likewise.
>> * guix/ui.scm (package->recutils): Use it.
>> * gnu/packages/perl.scm (perl-devel-globaldestruction)
>> (perl-devel-lexalias, perl-exporter-lite): Adapt to Texinfo's markup.
>> * gnu/packages/python.scm (python2-empy): Likewise.
>
> LGTM.
>
> We must also make sure that the Emacs UI (and guix-web, but that’s a
> different repo) use ‘package-description-string’ instead of
> ‘package-description’.
>
> For Emacs, I think it’s enough to
> s/package-description/package-description-string/ in guix-main.scm.
> Alex?
Added.
>
>> 5 files changed, 20 insertions(+), 5 deletions(-)
>
> I like that it’s all it takes. :-)
5 files changed, 18 insertions(+), 11 deletions(-)
Can you say less?! :)
> Any performance figures? For instance, time of ‘guix package -s’ before
> and after?
With the updated patch I have obtained the following results for command
time ./pre-inst-env guix package -s e
- without patch:
real 0m25.381s
user 0m8.740s
sys 0m0.184s
- with patch:
real 0m24.556s
user 0m10.448s
sys 0m0.220s
This test has revealed one missing modification for "perl-dbd-pg"
package description.
> What about moving ‘package-description-string’ to (guix ui) and have it
> do both rendering and translation?
>
> If an application really needs rendered-but-not-translated stuff, it can
> always use (compose texi-fragment->text package-description); I think
> that’d be an unusual use case anyway.
Yeah that's a nice minimal solution! Thanks.
[-- Attachment #2: 0001-ui-Add-package-description-string.patch --]
[-- Type: text/x-diff, Size: 7223 bytes --]
From bb1ce4f315912e49d4416c2ed213f5f93e802db1 Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@openmailbox.org>
Date: Fri, 7 Aug 2015 00:10:43 +0200
Subject: [PATCH] ui: Add package-description-string.
Provide support for Texinfo's markup in package description.
* guix/ui.scm (package-description-string): New variable.
(package->recutils): Use it.
* emacs/guix-main.scm (%package-param-alist): Likewise.
* gnu/packages/databases.scm (perl-dbd-pg): Adapt to Texinfo's markup.
* gnu/packages/perl.scm (perl-devel-globaldestruction)
(perl-devel-lexalias, perl-exporter-lite): Likewise.
* gnu/packages/python.scm (python2-empy): Likewise.
---
emacs/guix-main.scm | 2 +-
gnu/packages/databases.scm | 2 +-
gnu/packages/perl.scm | 6 +++---
gnu/packages/python.scm | 2 +-
guix/ui.scm | 17 ++++++++++++-----
5 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index fe224fb..73173f2 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -281,7 +281,7 @@ Example:
(license . ,package-license-names)
(source . ,package-source-names)
(synopsis . ,package-synopsis)
- (description . ,package-description)
+ (description . ,package-description-string)
(home-url . ,package-home-page)
(outputs . ,package-outputs)
(non-unique . ,(negate package-unique?))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index cbac16e..1710d0e 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -578,7 +578,7 @@ columns, primary keys, unique constraints and relationships.")
("postgresql" ,postgresql)))
(home-page "http://search.cpan.org/dist/DBD-Pg")
(synopsis "DBI PostgreSQL interface")
- (description "")
+ (description #f)
(license (package-license perl))))
(define-public perl-dbd-sqlite
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index f784798..0236d05 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -1665,7 +1665,7 @@ particular command is available.")
(home-page "http://search.cpan.org/dist/Devel-GlobalDestruction")
(synopsis "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls")
(description "Devel::GlobalDestruction provides a function returning the
-equivalent of \"${^GLOBAL_PHASE} eq 'DESTRUCT'\" for older perls.")
+equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
(license (package-license perl))))
(define-public perl-devel-lexalias
@@ -1909,7 +1909,7 @@ constructors, which speeds code up at runtime by a significant amount. String
eval is not without its issues however - it's difficult to control the scope
it's used in (which determines which variables are in scope inside the eval),
and it's easy to miss compilation errors, since eval catches them and sticks
-them in $@ instead. This module attempts to solve these problems. It
+them in $@@ instead. This module attempts to solve these problems. It
provides an eval_closure function, which evals a string in a clean
environment, other than a fixed list of specified variables. Compilation
errors are rethrown automatically.")
@@ -1953,7 +1953,7 @@ in your modules in a \"Java-esque\" manner.")
(description
"Exporter::Lite is an alternative to Exporter, intended to provide a
lightweight subset of the most commonly-used functionality. It supports
-import(), @EXPORT and @EXPORT_OK and not a whole lot else.")
+import(), @@EXPORT and @@EXPORT_OK and not a whole lot else.")
(home-page (string-append "http://search.cpan.org/~neilb/"
"Exporter-Lite-" version))
(license (package-license perl))))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 940efec..07275d7 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1171,7 +1171,7 @@ other Python program.")
"EmPy is a system for embedding Python expressions and statements in
template text; it takes an EmPy source file, processes it, and produces
output. This is accomplished via expansions, which are special signals to the
-EmPy system and are set off by a special prefix (by default the at sign, @).
+EmPy system and are set off by a special prefix (by default the at sign, @@).
EmPy can expand arbitrary Python expressions and statements in this way, as
well as a variety of special forms. Textual data not explicitly delimited in
this way is sent unaffected to the output, allowing Python to be used in
diff --git a/guix/ui.scm b/guix/ui.scm
index 8de8e3c..d355bd9 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Deck Pickard <deck.r.pickard@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -45,6 +46,8 @@
#:use-module (ice-9 regex)
#:autoload (system repl repl) (start-repl)
#:autoload (system repl debug) (make-debug stack->vector)
+ #:use-module (texinfo)
+ #:use-module (texinfo plain-text)
#:export (_
N_
P_
@@ -69,6 +72,7 @@
switch-symlinks
config-directory
fill-paragraph
+ package-description-string
string->recutils
package->recutils
package-specification->name+version+output
@@ -767,6 +771,11 @@ converted to a space; sequences of more than one line break are preserved."
;;; Packages.
;;;
+(define (package-description-string package)
+ "Return a plain-text representation of PACKAGE description field."
+ (and=> (package-description package)
+ (compose stexi->plain-text texi-fragment->stexi P_)))
+
(define (string->recutils str)
"Return a version of STR where newlines have been replaced by newlines
followed by \"+ \", which makes for a valid multi-line field value in the
@@ -786,10 +795,8 @@ followed by \"+ \", which makes for a valid multi-line field value in the
"Write to PORT a `recutils' record of package P, arranging to fit within
WIDTH columns."
(define (description->recutils str)
- (let ((str (P_ str)))
- (string->recutils
- (fill-paragraph str width
- (string-length "description: ")))))
+ (string->recutils
+ (fill-paragraph str width (string-length "description: "))))
(define (dependencies->recutils packages)
(let ((list (string-join (map package-full-name
@@ -835,7 +842,7 @@ WIDTH columns."
(or (and=> (package-synopsis p) P_)
"")))
(format port "description: ~a~%"
- (and=> (package-description p) description->recutils))
+ (and=> (package-description-string p) description->recutils))
(newline port))
(define (string->generations str)
--
2.5.0
[-- Attachment #3: Type: text/plain, Size: 23 bytes --]
And for the website.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0001-website-packages-Support-Texinfo-s-markup.patch --]
[-- Type: text/x-diff, Size: 1807 bytes --]
From 3c69e9f79f4d5bd5a75d4c083769caf32c1a63ec Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin <mthl@openmailbox.org>
Date: Thu, 27 Aug 2015 17:51:11 +0200
Subject: [PATCH] website: packages: Support Texinfo's markup.
* website/www/packages.scm (package->sxml): Adapt to new Texinfo's
markup in package description.
---
website/www/packages.scm | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/website/www/packages.scm b/website/www/packages.scm
index 09da932..fe4fb2b 100644
--- a/website/www/packages.scm
+++ b/website/www/packages.scm
@@ -37,6 +37,8 @@
#:use-module (ice-9 i18n)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
+ #:use-module (texinfo)
+ #:use-module (texinfo html)
#:export (packages-page))
(define lookup-gnu-package
@@ -170,6 +172,12 @@ decreasing, is 1."
(package-transitive-supported-systems package)))
" ")))
+ (define (package-description-shtml package)
+ "Return a SXML representation of PACKAGE description field with HTML
+vocabulary."
+ (and=> (package-description package)
+ (compose stexi->shtml texi-fragment->stexi)))
+
(define (package-logo name)
(and=> (lookup-gnu-package name)
gnu-package-logo))
@@ -203,7 +211,7 @@ description-ids as formal parameters."
(class "package-logo")
(alt ("Logo of " ,(package-name package))))))
(_ #f))
- (p ,(package-description package))
+ (p ,(package-description-shtml package))
,(license package)
(a (@ (href ,(package-home-page package))
(title "Link to the package's website"))
--
2.5.0
[-- Attachment #5: Type: text/plain, Size: 19 bytes --]
--
Mathieu Lirzin
next prev parent reply other threads:[~2015-08-30 20:43 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-16 11:17 [PATCH] gnu packages: Clean up synopses and descriptions Alex Kost
2015-07-16 9:40 ` Eric Bavier
2015-07-16 15:55 ` Alex Kost
2015-07-16 19:08 ` Ludovic Courtès
2015-07-17 12:41 ` Alex Kost
2015-07-17 21:24 ` Ludovic Courtès
2015-07-18 10:07 ` Alex Kost
2015-07-16 11:52 ` Mathieu Lirzin
2015-07-16 15:50 ` Ludovic Courtès
2015-07-16 21:33 ` Mathieu Lirzin
2015-07-17 21:18 ` Texinfo in descriptions? Ludovic Courtès
2015-07-21 21:37 ` Mathieu Lirzin
2015-07-22 13:35 ` Ludovic Courtès
2015-07-22 21:24 ` Ludovic Courtès
2015-07-22 22:08 ` Andreas Enge
2015-07-23 9:49 ` Mathieu Lirzin
2015-07-23 13:57 ` Ludovic Courtès
2015-07-23 15:09 ` Daniel Pimentel
2015-07-23 18:00 ` Andreas Enge
2015-08-25 22:09 ` Mathieu Lirzin
2015-08-26 7:57 ` Andy Wingo
2015-08-27 19:48 ` Mathieu Lirzin
2015-07-23 13:54 ` Ludovic Courtès
2015-08-27 21:04 ` Mathieu Lirzin
2015-08-28 21:47 ` Mathieu Lirzin
2015-08-30 17:23 ` Ludovic Courtès
2015-08-30 19:06 ` Alex Kost
2015-08-30 20:42 ` Mathieu Lirzin [this message]
2015-08-31 21:21 ` Ludovic Courtès
2015-09-01 16:41 ` Mathieu Lirzin
2015-09-02 21:27 ` Mathieu Lirzin
2015-09-03 22:12 ` Ludovic Courtès
2015-09-04 19:43 ` Mathieu Lirzin
2015-09-06 13:51 ` Ludovic Courtès
2015-09-06 20:10 ` Alex Kost
2015-09-06 21:31 ` Ludovic Courtès
2015-09-07 15:50 ` Alex Kost
2015-09-07 15:59 ` Ludovic Courtès
2015-08-30 10:10 ` Alex Kost
2015-08-30 12:24 ` Mathieu Lirzin
2015-08-30 15:19 ` Alex Kost
2015-07-17 12:35 ` [PATCHES] gnu packages: Clean up synopses and descriptions Alex Kost
2015-07-17 21:07 ` Mathieu Lirzin
2015-07-17 21:30 ` Ludovic Courtès
2015-07-18 10:08 ` Alex Kost
2015-07-18 21:13 ` Andreas Enge
2015-07-19 9:58 ` Alex Kost
2015-07-16 16:03 ` [PATCH] " Alex Kost
2015-07-16 20:02 ` Mathieu Lirzin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zj18ik3d.fsf@openmailbox.org \
--to=mthl@openmailbox.org \
--cc=alezost@gmail.com \
--cc=guix-devel@gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).