diff options
Diffstat (limited to 'pkgs/applications/editors/retext/default.nix')
-rw-r--r-- | pkgs/applications/editors/retext/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/pkgs/applications/editors/retext/default.nix b/pkgs/applications/editors/retext/default.nix new file mode 100644 index 000000000000..3288b8e90adc --- /dev/null +++ b/pkgs/applications/editors/retext/default.nix @@ -0,0 +1,63 @@ +{ lib, stdenv, python3, fetchFromGitHub, makeWrapper, buildEnv, aspellDicts +# Use `lib.collect lib.isDerivation aspellDicts;` to make all dictionaries +# available. +, enchantAspellDicts ? with aspellDicts; [ en en-computers en-science ] +}: + +let + version = "7.0.4"; + python = let + packageOverrides = self: super: { + markdown = super.markdown.overridePythonAttrs(old: rec { + src = super.fetchPypi { + version = "3.0.1"; + pname = "Markdown"; + sha256 = "d02e0f9b04c500cde6637c11ad7c72671f359b87b9fe924b2383649d8841db7c"; + }; + }); + + chardet = super.chardet.overridePythonAttrs(old: rec { + src = super.fetchPypi { + version = "2.3.0"; + pname = "chardet"; + sha256 = "e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa"; + }; + }); + }; + in python3.override { inherit packageOverrides; }; + pythonEnv = python.withPackages (ps: with ps; [ + pyqt5 docutils pyenchant Markups markdown pygments chardet + ]); +in python.pkgs.buildPythonApplication { + inherit version; + pname = "retext"; + + src = fetchFromGitHub { + owner = "retext-project"; + repo = "retext"; + rev = "${version}"; + sha256 = "1zcapywspc9v5zf5cxqkcy019np9n41gmryqixj66zsvd544c6si"; + }; + + doCheck = false; + + nativeBuildInputs = [ makeWrapper ]; + propagatedBuildInputs = [ pythonEnv ]; + + postInstall = '' + mv $out/bin/retext $out/bin/.retext + makeWrapper "$out/bin/.retext" "$out/bin/retext" \ + --set ASPELL_CONF "dict-dir ${buildEnv { + name = "aspell-all-dicts"; + paths = map (path: "${path}/lib/aspell") enchantAspellDicts; + }}" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/retext-project/retext/; + description = "Simple but powerful editor for Markdown and reStructuredText"; + license = licenses.gpl3; + maintainers = with maintainers; [ klntsky ]; + platforms = platforms.unix; + }; +} |