Subject: [bug#44457] [PATCH]: gnu: Add hunspell-dict-it-it.

From: paul <[email-masked]>
Date: Sat, 7 Nov 2020 02:20:02 +0100

Hi Jonathan,

I'm attaching an updated patch.

I changed the build system to trivial and removed the useless let (I 
must admit I forgot it there). About the variable naming, technically 
there is also it_CH: the Italian spoke in a region of Switzerland. In 
the Libreoffice repository there's still no dedicated dictionary but it 
could be uploaded in the future, so I'd keep the variable naming. What 
do you think?

Thank you for your review,

Cheers

Giacomo

From 17a476dd234fa4a128eb90ccc8ac9a565045bfa1 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <[email-masked]>
Date: Thu, 5 Nov 2020 02:04:20 +0100
Subject: [PATCH] gnu: Add hunspell-dict-it-it.

* gnu/packages/hunspell.scm: New file;
(hunspell-dictionary): New variable;
(hunspell-dict-it-it): New variable.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk              |  1 +
 gnu/packages/hunspell.scm | 80 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 81 insertions(+)
 create mode 100644 gnu/packages/hunspell.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 2a994bd3b9..510687e714 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -273,6 +273,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/heads.scm			\
   %D%/packages/hexedit.scm			\
   %D%/packages/hugs.scm				\
+  %D%/packages/hunspell.scm				\
   %D%/packages/hurd.scm				\
   %D%/packages/hyperledger.scm			\
   %D%/packages/i2p.scm				\
diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm
new file mode 100644
index 0000000000..ac46dd2104
--- /dev/null
+++ b/gnu/packages/hunspell.scm
@@ -0,0 +1,80 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Giacomo Leidi <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages hunspell)
+  #:use-module (guix build-system trivial)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (ice-9 match)
+  #:use-module (gnu packages libreoffice))
+
+(define* (hunspell-dictionary dict-name full-name #:key home-page license)
+  (package
+    (name (string-append
+           "hunspell-dict-"
+           ;; Downcase and replace underscore in package names
+           ;; to follow Guix naming conventions.
+           (string-map (match-lambda
+                         (#\_ #\-)
+                         (chr chr))
+                       (string-downcase dict-name))))
+    (version (package-version libreoffice))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url (string-append "https://anongit.freedesktop.org/git/"
+                                 "libreoffice/dictionaries.git/"))
+             (commit
+              (string-append "libreoffice-" version))))
+       (file-name (git-file-name "libreoffice-dictionaries" version))
+       (sha256
+        (base32 "0vvxnjpm1322ahf9q8bqs1yhkn7krglw8c6yazcf7a3jljykd9k9"))))
+    (build-system trivial-build-system)
+    (native-inputs
+     `(("source" ,source)))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let* ((dictionary
+                           (string-append (assoc-ref %build-inputs "source")
+                                          "/" ,dict-name
+                                          "/" ,dict-name))
+                          (hunspell (string-append %output "/share/hunspell/"))
+                          (myspell (string-append %output "/share/myspell")))
+                     (for-each
+                      (lambda (ext)
+                        (install-file (string-append dictionary ext)
+                                      hunspell))
+                      '(".aff" ".dic"))
+                     (symlink hunspell myspell)
+                     #t))))
+    (synopsis
+     (string-append "Hunspell dictionary for " full-name " (" dict-name ")"))
+    (description "This package provides a dictionary for the Hunspell
+spell-checking library.")
+    (license license)
+    (home-page home-page)))
+
+(define-public hunspell-dict-it-it
+  (hunspell-dictionary "it_IT" "Italian"
+                       #:home-page "https://libreitalia.org/"
+                       #:license license:gpl3))
-- 
2.29.1