diff mbox series

[bug#36112] gnu: aspell.scm: Fix dictionaries withunderscore/uppercase in name.

Message ID 871s07jmi9.fsf@zete.tk
State Accepted
Headers show
Series [bug#36112] gnu: aspell.scm: Fix dictionaries withunderscore/uppercase in name. | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Jens Mølgaard June 6, 2019, 5:44 a.m. UTC
Salut Guix!

Since the same string is used to generate both the package names and
source URLs of Aspell dictionaries, dictionaries pt-pt and pt-br have
been producing invalid URLs. Their upstream names are pt_PT and pt_BR.

This could be fixed by changing either the way package names or URLs are
generated. Rather than adapting URLs to special cases, it seems more
straightforward to let the dict-name string represent upstream name, and
then downcase and replace underscores to produce a package name in
accordance with the naming conventions.

This was the simplest/easiest thing I could come up with. Do let me know
if there is a smarter way!

Kind regards,
Jens M

Comments

Ludovic Courtès June 6, 2019, 3:41 p.m. UTC | #1
Salut !  :-)

Jens Mølgaard <jens@zete.tk> skribis:

> This could be fixed by changing either the way package names or URLs are
> generated. Rather than adapting URLs to special cases, it seems more
> straightforward to let the dict-name string represent upstream name, and
> then downcase and replace underscores to produce a package name in
> accordance with the naming conventions.
>
> This was the simplest/easiest thing I could come up with. Do let me know
> if there is a smarter way!

This looks like the right way to me!

> From 2bc4b7b31004642fcf300fe49f7b27ebd0353774 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= <jens@zete.tk>
> Date: Thu, 6 Jun 2019 17:06:56 +1200
> Subject: [PATCH] gnu: aspell.scm: Fix dictionaries with underscore/uppercase
>  in name.
>
> ---
>  gnu/packages/aspell.scm | 14 ++++++++++----

Please provide a ChangeLog-style commit log.   :-)

  https://gnu.org/software/guix/manual/en/html_node/Submitting-Patches.html

> +    (name (string-append
> +           "aspell-dict-"
> +           (regexp-substitute/global
> +            ;; Downcase and replace underscore in package names 
> +            ;; to follow Guix naming conventions.
> +            #f "_" (string-downcase dict-name) 'pre "-" 'post)))

What about avoiding regexps with something like:

  (string-map (match-lambda
                (#\_ #\-)
                (chr chr))
              (string-downcase dict-name))

?

Thanks,
Ludo’.
Ludovic Courtès June 7, 2019, 7:32 a.m. UTC | #2
Hi Jens,

Jens Mølgaard <jens@zete.tk> skribis:

> From f2c43296e7e76d6343749f0fa04b0b9223710bb1 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= <jens@zete.tk>
> Date: Thu, 6 Jun 2019 17:06:56 +1200
> Subject: [PATCH] gnu: aspell.scm: Handle dictionary names with
>  underscore/uppercase.
>
> * gnu/packages/aspell.scm(aspell-dictionary)<name>:
> Generate package name from upstream name.
> (aspell-dict-pt-pt, aspell-dict-pt-br): Use upstream name for URL.

Applied, thanks!

Ludo’.
diff mbox series

Patch

From 2bc4b7b31004642fcf300fe49f7b27ebd0353774 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= <jens@zete.tk>
Date: Thu, 6 Jun 2019 17:06:56 +1200
Subject: [PATCH] gnu: aspell.scm: Fix dictionaries with underscore/uppercase
 in name.

---
 gnu/packages/aspell.scm | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index 1bbe57a4ef..19b22c11eb 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -32,7 +32,8 @@ 
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages perl))
+  #:use-module (gnu packages perl)
+  #:use-module (ice-9 regex))
 
 (define-public aspell
   (package
@@ -102,7 +103,12 @@  dictionaries, including personal ones.")
 (define* (aspell-dictionary dict-name full-name
                             #:key version sha256 (prefix "aspell6-"))
   (package
-    (name (string-append "aspell-dict-" dict-name))
+    (name (string-append
+           "aspell-dict-"
+           (regexp-substitute/global
+            ;; Downcase and replace underscore in package names 
+            ;; to follow Guix naming conventions.
+            #f "_" (string-downcase dict-name) 'pre "-" 'post)))
     (version version)
     (source (origin
               (method url-fetch)
@@ -281,7 +287,7 @@  dictionaries, including personal ones.")
                       "0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc")))
 
 (define-public aspell-dict-pt-br
-  (aspell-dictionary "pt-br" "Brazilian Portuguese"
+  (aspell-dictionary "pt_BR" "Brazilian Portuguese"
                      #:version "20090702-0"
                      #:prefix "aspell6-"
                      #:sha256
@@ -289,7 +295,7 @@  dictionaries, including personal ones.")
                       "1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p")))
 
 (define-public aspell-dict-pt-pt
-  (aspell-dictionary "pt-pt" "Portuguese"
+  (aspell-dictionary "pt_PT" "Portuguese"
                      #:version "20070510-0"
                      #:prefix "aspell6-"
                      #:sha256
-- 
2.21.0