python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / typesetting / skribilo / default.nix
blob85031f900849418c538fd10017e353bc14b0a133
1 { lib
2 , stdenv
3 , fetchurl
4 , gettext
5 , ghostscript
6 , guile
7 , guile-lib
8 , guile-reader
9 , imagemagick
10 , makeWrapper
11 , pkg-config
12 , ploticus
13 , fig2dev
14 , enableEmacs ? false, emacs
15 , enableLout ? true, lout
16 , enableTex ? true, tex
19 let
20   inherit (lib) optional;
21 in stdenv.mkDerivation rec{
22   pname = "skribilo";
23   version = "0.9.5";
25   src = fetchurl {
26     url = "http://download.savannah.nongnu.org/releases/skribilo/${pname}-${version}.tar.gz";
27     sha256 = "sha256-AIJqIcRjT7C0EO6J60gGjERdgAglh0ZU49U9XKPwvwk=";
28   };
30   nativeBuildInputs = [
31     pkg-config
32     makeWrapper
33   ];
34   buildInputs = [
35     gettext
36     ghostscript
37     guile
38     guile-lib
39     guile-reader
40     imagemagick
41     ploticus
42     fig2dev
43   ]
44   ++ optional enableEmacs emacs
45   ++ optional enableLout lout
46   ++ optional enableTex tex;
48   postInstall =
49     let
50       guileVersion = lib.versions.majorMinor guile.version;
51     in
52     ''
53       wrapProgram $out/bin/skribilo \
54         --prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \
55         --prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH"
56     '';
58   meta = with lib; {
59     homepage = "https://www.nongnu.org/skribilo/";
60     description = "The Ultimate Document Programming Framework";
61     longDescription = ''
62       Skribilo is a free document production tool that takes a structured
63       document representation as its input and renders that document in a
64       variety of output formats: HTML and Info for on-line browsing, and Lout
65       and LaTeX for high-quality hard copies.
67       The input document can use Skribilo's markup language to provide
68       information about the document's structure, which is similar to HTML or
69       LaTeX and does not require expertise. Alternatively, it can use a simpler,
70       "markup-less" format that borrows from Emacs' outline mode and from other
71       conventions used in emails, Usenet and text.
72     '';
73     license = licenses.gpl3Plus;
74     maintainers = with maintainers; [ AndersonTorres ];
75     platforms = platforms.unix;
76   };
78 # TODO: Better Emacs and TeX integration