evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / sc / scowl / package.nix
blob53988a728de3196c57b3f7cdce565ed14b6e79fc
1 { lib, stdenv, fetchFromGitHub, unzip, zip, libiconv, perl, aspell, dos2unix
2 , singleWordlist ? null
3 }:
5 stdenv.mkDerivation rec {
6   pname = "scowl";
7   version = "2020.12.07";
9   src = fetchFromGitHub {
10     owner = "en-wl";
11     repo = "wordlist";
12     rev = "rel-${version}";
13     sha256 = "sha256-J61jhpnZcXMnoGlSuSCrKDZnnyp3Snjr+fUpTVKX64g=";
14   };
16   postPatch = ''
17     substituteInPlace scowl/src/Makefile \
18         --replace g++ c++
19   '';
21   nativeBuildInputs = [ unzip zip perl aspell dos2unix ];
22   buildInputs = lib.optional (!stdenv.hostPlatform.isLinux) libiconv;
24   env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
26   preConfigure = ''
27     patchShebangs .
28     export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$PWD/varcon"
29   '';
31   postBuild = lib.optionalString (singleWordlist == null) ''
32     (
33     cd scowl/speller
34     make aspell
35     make hunspell
36     )
37   '';
39   enableParallelBuilding = false;
41   installPhase = if singleWordlist == null then ''
42     eval "$preInstall"
44     mkdir -p "$out/share/scowl"
45     mkdir -p "$out/lib" "$out/share/hunspell" "$out/share/myspell"
46     mkdir -p "$out/share/dict"
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"
52     cp scowl/final/* "$out/share/scowl"
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
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     )
97     eval "$postInstall"
98   '' else ''
99     mkdir -p "$out/share/dict"
100     cd scowl
101     ./mk-list ${singleWordlist} > "$out/share/dict/words.txt"
102   '';
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   };