summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-05-17 16:10:48 +0200
committerLudovic Courtès <ludo@gnu.org>2017-05-20 10:16:14 +0200
commit56a03975eb287796128e80feb6799bc07f4b8185 (patch)
tree25e5dca93c345b58f9572e5e3b8412557264821f /gnu/packages
parent37fd9567710b0fc0d7b083f8a1eba3528597c2f6 (diff)
gnu: aspell: 'dict-dir' set to ~/.guix-profile/lib/aspell or $ASPELL_DICT_DIR.
See <https://bugs.gnu.org/25836> for background. * gnu/packages/patches/aspell-default-dict-dir.patch: New file. * gnu/packages/aspell.scm (aspell)[source](patches): New field. [native-search-paths]: New field. * gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/aspell.scm18
-rw-r--r--gnu/packages/patches/aspell-default-dict-dir.patch20
2 files changed, 35 insertions, 3 deletions
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index 06ba2ce472..509d428f64 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
@@ -26,6 +26,7 @@
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
+ #:use-module (gnu packages)
#:use-module (gnu packages perl)
#:use-module (gnu packages base))
@@ -40,7 +41,8 @@
version ".tar.gz"))
(sha256
(base32
- "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm"))))
+ "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm"))
+ (patches (search-patches "aspell-default-dict-dir.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -53,6 +55,15 @@
'("ASPELL_CONF" "" =
("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}")))))))))
(inputs `(("perl" ,perl)))
+
+ (native-search-paths
+ ;; This is a Guix-specific environment variable that takes a single
+ ;; entry, not an actual search path.
+ (list (search-path-specification
+ (variable "ASPELL_DICT_DIR")
+ (separator #f)
+ (files '("lib/aspell")))))
+
(home-page "http://aspell.net/")
(synopsis "Spell checker")
(description
@@ -66,7 +77,8 @@ dictionaries, including personal ones.")
;;; Dictionaries.
;;;
;;; Use 'export ASPELL_CONF="dict-dir $HOME/.guix-profile/lib/aspell"' to use
-;;; them.
+;;; them, or set the Guix-specific 'ASPELL_DICT_DIR', or just do nothing (as
+;;; long as 'HOME' is set, that's fine!).
;;;
(define* (aspell-dictionary dict-name full-name
diff --git a/gnu/packages/patches/aspell-default-dict-dir.patch b/gnu/packages/patches/aspell-default-dict-dir.patch
new file mode 100644
index 0000000000..17a6ff606f
--- /dev/null
+++ b/gnu/packages/patches/aspell-default-dict-dir.patch
@@ -0,0 +1,20 @@
+This patch changes the default value of 'dict-dir' to correspond
+to ~/.guix-profile/lib/aspell rather than $prefix/lib/aspell-X.Y.
+
+This is not strictly necessary for the 'aspell' program itself since
+one can simply set "ASPELL_CONF=dict-dir $HOME/.guix-profile/lib/aspell".
+However it is necessary for applications that use libaspell since
+'ASPELL_CONF' is not honored in this case. See <https://bugs.gnu.org/25836>.
+
+--- a/common/config.cpp
++++ b/common/config.cpp
+@@ -1349,6 +1349,9 @@ namespace acommon {
+ # define REPL ".aspell.<lang>.prepl"
+ #endif
+
++#undef DICT_DIR
++#define DICT_DIR "<$ASPELL_DICT_DIR|home-dir/.guix-profile/lib/aspell>"
++
+ static const KeyInfo config_keys[] = {
+ // the description should be under 50 chars
+ {"actual-dict-dir", KeyInfoString, "<dict-dir^master>", 0}