Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 123 lines 4.3 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 callPackage, 6}: 7 8let 9 # Probably a bug in some FreeDict release files, but easier to trivially 10 # work around than report. Not that it can cause any other problems.. 11 makeDictdDBFreedict = 12 src: name: locale: 13 makeDictdDB src name "{.,bin}" locale; 14 15 makeDictdDB = 16 src: _name: _subdir: _locale: 17 stdenv.mkDerivation { 18 name = "dictd-db-${_name}"; 19 inherit src; 20 locale = _locale; 21 dbName = _name; 22 dontBuild = true; 23 unpackPhase = '' 24 tar xf ${src} 25 ''; 26 installPhase = '' 27 mkdir -p $out/share/dictd 28 cp $(ls ./${_subdir}/*.{dict*,index} || true) $out/share/dictd 29 echo "${_locale}" >$out/share/dictd/locale 30 ''; 31 32 meta = { 33 description = "Dictd-db dictionary for dictd"; 34 platforms = lib.platforms.linux; 35 }; 36 }; 37in 38rec { 39 deu2eng = makeDictdDBFreedict (fetchurl { 40 url = "mirror://sourceforge/freedict/deu-eng.tar.gz"; 41 sha256 = "0dqrhv04g4f5s84nbgisgcfwk5x0rpincif0yfhfh4sc1bsvzsrb"; 42 }) "deu-eng" "de_DE"; 43 eng2deu = makeDictdDBFreedict (fetchurl { 44 url = "mirror://sourceforge/freedict/eng-deu.tar.gz"; 45 sha256 = "01x12p72sa3071iff3jhzga8588440f07zr56r3x98bspvdlz73r"; 46 }) "eng-deu" "en_EN"; 47 nld2eng = makeDictdDBFreedict (fetchurl { 48 url = "mirror://sourceforge/freedict/nld-eng.tar.gz"; 49 sha256 = "1vhw81pphb64fzsjvpzsnnyr34ka2fxizfwilnxyjcmpn9360h07"; 50 }) "nld-eng" "nl_NL"; 51 eng2nld = makeDictdDBFreedict (fetchurl { 52 url = "mirror://sourceforge/freedict/eng-nld.tar.gz"; 53 sha256 = "0rcg28ldykv0w2mpxc6g4rqmfs33q7pbvf68ssy1q9gpf6mz7vcl"; 54 }) "eng-nld" "en_UK"; 55 eng2rus = makeDictdDBFreedict (fetchurl { 56 url = "mirror://sourceforge/freedict/eng-rus.tar.gz"; 57 sha256 = "15409ivhww1wsfjr05083pv6mg10bak8v5pg1wkiqybk7ck61rry"; 58 }) "eng-rus" "en_UK"; 59 fra2eng = makeDictdDBFreedict (fetchurl { 60 url = "mirror://sourceforge/freedict/fra-eng.tar.gz"; 61 sha256 = "0sdd88s2zs5whiwdf3hd0s4pzzv75sdsccsrm1wxc87l3hjm85z3"; 62 }) "fra-eng" "fr_FR"; 63 eng2fra = makeDictdDBFreedict (fetchurl { 64 url = "mirror://sourceforge/freedict/eng-fra.tar.gz"; 65 sha256 = "0fi6rrnbqnhc6lq8d0nmn30zdqkibrah0mxfg27hsn9z7alwbj3m"; 66 }) "eng-fra" "en_UK"; 67 epo2eng = makeDictdDB (fetchurl { 68 url = "https://download.freedict.org/dictionaries/epo-eng/1.0.1/freedict-epo-eng-1.0.1.dictd.tar.xz"; 69 sha256 = "095xwqfc43dnm0g74i83lg03542f064jy2xbn3qnjxiwysz9ksnz"; 70 }) "epo-eng" "epo-eng" "eo"; 71 jpn2eng = makeDictdDB (fetchurl { 72 url = 73 let 74 version = "0.1"; 75 in 76 "mirror://sourceforge/freedict/jpn-eng/${version}/freedict-jpn-eng-${version}.dictd.tar.xz"; 77 sha256 = "sha256-juJBoEq7EztLZzOomc7uoZhXVaQPKoUvIxxPLB0xByc="; 78 }) "jpn-eng" "jpn-eng" "ja_JP"; 79 eng2jpn = makeDictdDB (fetchurl { 80 url = 81 let 82 version = "2022.04.06"; 83 in 84 "https://download.freedict.org/dictionaries/eng-jpn/${version}/freedict-eng-jpn-${version}.dictd.tar.xz"; 85 sha256 = "sha256-kfRT2kgbV3XKarCr4mqDRT5A1jR8M8APky5M5MFYatE="; 86 }) "eng-jpn" "eng-jpn" "en_UK"; 87 mueller_eng2rus_pkg = makeDictdDB (fetchurl { 88 url = "mirror://sourceforge/mueller-dict/mueller-dict-3.1.tar.gz"; 89 sha256 = "04r5xxznvmcb8hkxqbjgfh2gxvbdd87jnhqn5gmgvxxw53zpwfmq"; 90 }) "mueller-eng-rus" "mueller-dict-*/dict" "en_UK"; 91 mueller_enru_abbr = { 92 outPath = "${mueller_eng2rus_pkg}/share/dictd/mueller-abbrev"; 93 name = "mueller-abbr"; 94 dbName = "mueller-abbr"; 95 locale = "en_UK"; 96 }; 97 mueller_enru_base = { 98 outPath = "${mueller_eng2rus_pkg}/share/dictd/mueller-base"; 99 name = "mueller-base"; 100 dbName = "mueller-base"; 101 locale = "en_UK"; 102 }; 103 mueller_enru_dict = { 104 outPath = "${mueller_eng2rus_pkg}/share/dictd/mueller-dict"; 105 name = "mueller-dict"; 106 dbName = "mueller-dict"; 107 locale = "en_UK"; 108 }; 109 mueller_enru_geo = { 110 outPath = "${mueller_eng2rus_pkg}/share/dictd/mueller-geo"; 111 name = "mueller-geo"; 112 dbName = "mueller-geo"; 113 locale = "en_UK"; 114 }; 115 mueller_enru_names = { 116 outPath = "${mueller_eng2rus_pkg}/share/dictd/mueller-names"; 117 name = "mueller-names"; 118 dbName = "mueller-names"; 119 locale = "en_UK"; 120 }; 121 wordnet = callPackage ./dictd-wordnet.nix { }; 122 wiktionary = callPackage ./wiktionary { }; 123}