at 22.05-pre 111 lines 3.1 kB view raw
1{ lib, stdenv, fetchFromGitHub, unzip, zip, libiconv, perl, aspell, dos2unix 2, singleWordlist ? null 3}: 4 5stdenv.mkDerivation rec { 6 pname = "scowl"; 7 version = "2019.10.06"; 8 9 src = fetchFromGitHub { 10 owner = "en-wl"; 11 repo = "wordlist"; 12 rev = "rel-${version}"; 13 sha256 = "1daag7h63gdijp1lv3v93bx5kmcb5zsyydsd57kv0a6kk3vs819x"; 14 }; 15 16 postPatch = '' 17 substituteInPlace scowl/src/Makefile \ 18 --replace g++ c++ 19 ''; 20 21 nativeBuildInputs = [ unzip zip perl aspell dos2unix ]; 22 buildInputs = lib.optional (!stdenv.isLinux) libiconv; 23 24 NIX_CFLAGS_COMPILE = "-Wno-narrowing"; 25 26 preConfigure = '' 27 patchShebangs . 28 export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$PWD/varcon" 29 ''; 30 31 postBuild = lib.optionalString (singleWordlist == null) '' 32 ( 33 cd scowl/speller 34 make aspell 35 make hunspell 36 ) 37 ''; 38 39 enableParallelBuilding = false; 40 41 installPhase = if singleWordlist == null then '' 42 eval "$preInstall" 43 44 mkdir -p "$out/share/scowl" 45 mkdir -p "$out/lib" "$out/share/hunspell" "$out/share/myspell" 46 mkdir -p "$out/share/dict" 47 48 cp -r scowl/speller/aspell "$out/lib/aspell" 49 cp scowl/speller/*.{aff,dic} "$out/share/hunspell" 50 ln -s "$out/share/hunspell" "$out/share/myspell/dicts" 51 52 cp scowl/final/* "$out/share/scowl" 53 54 ( 55 cd scowl 56 for region in american british british_s british_z canadian australian; do 57 case $region in 58 american) 59 regcode=en-us; 60 ;; 61 british) 62 regcode=en-gb-ise; 63 ;; 64 british_s) 65 regcode=en-gb-ise; 66 ;; 67 british_z) 68 regcode=en-gb-ize; 69 ;; 70 canadian) 71 regcode=en-ca; 72 ;; 73 australian) 74 regcode=en-au; 75 ;; 76 esac 77 regcode_var="$regcode" 78 if test "$region" = british; then 79 regcode_var="en-gb" 80 fi 81 82 echo $region $regcode $regcode_sz 83 for s in 10 20 30 35 40 50 55 60 70 80 90 95; do 84 ./mk-list $regcode $s > "$out/share/dict/w$region.$s" 85 ./mk-list --variants=1 $regcode_var $s > "$out/share/dict/w$region.variants.$s" 86 ./mk-list --variants=2 $regcode_var $s > "$out/share/dict/w$region.acceptable.$s" 87 done 88 ./mk-list $regcode 60 > "$out/share/dict/w$region.txt" 89 ./mk-list --variants=1 $regcode_var 60 > "$out/share/dict/w$region.variants.txt" 90 ./mk-list --variants=2 $regcode_var 80 > "$out/share/dict/w$region.scrabble.txt" 91 done 92 ./mk-list --variants=1 en-gb 60 > "$out/share/dict/words.variants.txt" 93 ./mk-list --variants=1 en-gb 80 > "$out/share/dict/words.scrabble.txt" 94 ./mk-list en-gb-ise 60 > "$out/share/dict/words.txt" 95 ) 96 97 eval "$postInstall" 98 '' else '' 99 mkdir -p "$out/share/dict" 100 cd scowl 101 ./mk-list ${singleWordlist} > "$out/share/dict/words.txt" 102 ''; 103 104 meta = { 105 description = "Spell checker oriented word lists"; 106 license = lib.licenses.mit; 107 maintainers = [lib.maintainers.raskin]; 108 platforms = lib.platforms.unix; 109 homepage = "http://wordlist.aspell.net/"; 110 }; 111}