nixpkgs/pkgs/data/misc/scowl/default.nix
Artturin e0464e4788 treewide: replace stdenv.is with stdenv.hostPlatform.is
In preparation for the deprecation of `stdenv.isX`.

These shorthands are not conducive to cross-compilation because they
hide the platforms.

Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way

One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059

There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.

```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
2024-09-25 00:04:37 +03:00

112 lines
3.1 KiB
Nix

{ lib, stdenv, fetchFromGitHub, unzip, zip, libiconv, perl, aspell, dos2unix
, singleWordlist ? null
}:
stdenv.mkDerivation rec {
pname = "scowl";
version = "2020.12.07";
src = fetchFromGitHub {
owner = "en-wl";
repo = "wordlist";
rev = "rel-${version}";
sha256 = "sha256-J61jhpnZcXMnoGlSuSCrKDZnnyp3Snjr+fUpTVKX64g=";
};
postPatch = ''
substituteInPlace scowl/src/Makefile \
--replace g++ c++
'';
nativeBuildInputs = [ unzip zip perl aspell dos2unix ];
buildInputs = lib.optional (!stdenv.hostPlatform.isLinux) libiconv;
env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
preConfigure = ''
patchShebangs .
export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$PWD/varcon"
'';
postBuild = lib.optionalString (singleWordlist == null) ''
(
cd scowl/speller
make aspell
make hunspell
)
'';
enableParallelBuilding = false;
installPhase = if singleWordlist == null then ''
eval "$preInstall"
mkdir -p "$out/share/scowl"
mkdir -p "$out/lib" "$out/share/hunspell" "$out/share/myspell"
mkdir -p "$out/share/dict"
cp -r scowl/speller/aspell "$out/lib/aspell"
cp scowl/speller/*.{aff,dic} "$out/share/hunspell"
ln -s "$out/share/hunspell" "$out/share/myspell/dicts"
cp scowl/final/* "$out/share/scowl"
(
cd scowl
for region in american british british_s british_z canadian australian; do
case $region in
american)
regcode=en-us;
;;
british)
regcode=en-gb-ise;
;;
british_s)
regcode=en-gb-ise;
;;
british_z)
regcode=en-gb-ize;
;;
canadian)
regcode=en-ca;
;;
australian)
regcode=en-au;
;;
esac
regcode_var="$regcode"
if test "$region" = british; then
regcode_var="en-gb"
fi
echo $region $regcode $regcode_sz
for s in 10 20 30 35 40 50 55 60 70 80 90 95; do
./mk-list $regcode $s > "$out/share/dict/w$region.$s"
./mk-list --variants=1 $regcode_var $s > "$out/share/dict/w$region.variants.$s"
./mk-list --variants=2 $regcode_var $s > "$out/share/dict/w$region.acceptable.$s"
done
./mk-list $regcode 60 > "$out/share/dict/w$region.txt"
./mk-list --variants=1 $regcode_var 60 > "$out/share/dict/w$region.variants.txt"
./mk-list --variants=2 $regcode_var 80 > "$out/share/dict/w$region.scrabble.txt"
done
./mk-list --variants=1 en-gb 60 > "$out/share/dict/words.variants.txt"
./mk-list --variants=1 en-gb 80 > "$out/share/dict/words.scrabble.txt"
./mk-list en-gb-ise 60 > "$out/share/dict/words.txt"
)
eval "$postInstall"
'' else ''
mkdir -p "$out/share/dict"
cd scowl
./mk-list ${singleWordlist} > "$out/share/dict/words.txt"
'';
meta = {
description = "Spell checker oriented word lists";
license = lib.licenses.mit;
maintainers = [lib.maintainers.raskin];
platforms = lib.platforms.unix;
homepage = "http://wordlist.aspell.net/";
};
}