anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / development / libraries / aspell / default.nix
blob8c152d32ef6c3e3292b7a46164c071404ae482c4
1 { lib, stdenv, fetchurl, fetchzip, perl, ncurses
3   # for tests
4 , aspell, glibc, runCommand
6 , searchNixProfiles ? true
7 }:
9 let
11   # Source for u-deva.cmap and u-deva.cset: use the Marathi
12   # dictionary like Debian does.
13   devaMapsSource = fetchzip {
14     name = "aspell-u-deva";
15     url = "https://ftp.gnu.org/gnu/aspell/dict/mr/aspell6-mr-0.10-0.tar.bz2";
16     sha256 = "1v8cdl8x2j1d4vbvsq1xrqys69bbccd6mi03fywrhkrrljviyri1";
17   };
21 stdenv.mkDerivation rec {
22   pname = "aspell";
23   version = "0.60.8.1";
25   src = fetchurl {
26     url = "mirror://gnu/aspell/aspell-${version}.tar.gz";
27     hash = "sha256-1toSs01C1Ff6YE5DWtSEp0su/80SD/QKzWuz+yiH0hs=";
28   };
30   patches = lib.optional searchNixProfiles ./data-dirs-from-nix-profiles.patch;
32   postPatch = ''
33     patch interfaces/cc/aspell.h < ${./clang.patch}
34   '';
36   nativeBuildInputs = [ perl ];
37   buildInputs = [ ncurses perl ];
39   doCheck = true;
41   preConfigure = ''
42     configureFlagsArray=(
43       --enable-pkglibdir=$out/lib/aspell
44       --enable-pkgdatadir=$out/lib/aspell
45     );
46   '';
48   # Include u-deva.cmap and u-deva.cset in the aspell package
49   # to avoid conflict between 'mr' and 'hi' dictionaries as they
50   # both include those files.
51   postInstall = ''
52     cp ${devaMapsSource}/u-deva.{cmap,cset} $out/lib/aspell/
53   '';
55   passthru.tests = {
56     uses-curses = runCommand "${pname}-curses" {
57       buildInputs = [ glibc ];
58     } ''
59       if ! ldd ${aspell}/bin/aspell | grep -q ${ncurses}
60       then
61         echo "Test failure: It does not look like aspell picked up the curses dependency."
62         exit 1
63       fi
64       touch $out
65     '';
66   };
68   meta = {
69     description = "Spell checker for many languages";
70     homepage = "http://aspell.net/";
71     license = lib.licenses.lgpl2Plus;
72     maintainers = [ ];
73     platforms = with lib.platforms; all;
74   };