Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / misc / plots / default.nix
blob01a60baa2ab3494e5760ba3a284905922cbf152d
1 { fetchFromGitHub
2 , gobject-introspection
3 , lib
4 , libadwaita
5 , python3
6 , wrapGAppsHook
7 , lmmath
8 }:
9 python3.pkgs.buildPythonApplication rec {
10   pname = "plots";
11   version = "0.8.5";
13   src = fetchFromGitHub {
14     owner = "alexhuntley";
15     repo = "Plots";
16     rev = "v${version}";
17     hash = "sha256-GjNpaorxkkhZsqrKq4kO5nqF5+4I4tmSc023AZpY8Sw=";
18   };
20   nativeBuildInputs = [
21     gobject-introspection
22     wrapGAppsHook
23   ];
25   propagatedBuildInputs = [
26     libadwaita
27     (python3.withPackages (p: with p; [
28       numpy
29       pygobject3
30       lark
31       jinja2
32       freetype-py
33       pyopengl
34       pycairo
35       pyglm
36     ]))
37   ];
39   nativeCheckInputs = [
40     (python3.withPackages (p: with p; [
41       pytest
42     ]))
43   ];
45   dontWrapGApps = true;
47   preFixup = ''
48     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
49   '';
51   postInstall = ''
52     install -D ${lmmath}/share/fonts/opentype/latinmodern-math.otf -t $out/share/fonts/
54     install -D res/com.github.alexhuntley.Plots.metainfo.xml -t $out/share/metainfo/
55     install -D res/com.github.alexhuntley.Plots.desktop -t $out/share/applications/
56     install -D res/com.github.alexhuntley.Plots.svg -t $out/share/icons/hicolor/scalable/apps/
57     install -D res/com.github.alexhuntley.Plots-symbolic.svg -t $out/share/icons/hicolor/symbolic/apps/
59     for lang_dir in help/*; do
60       lang=$(basename "$lang_dir")
61       install -D -t $out/share/help/$lang/plots/ $lang_dir/*
62     done
63   '';
65   meta = with lib; {
66     description = "Graph plotting app for GNOME";
67     longDescription = ''
68       Plots is a graph plotting app for GNOME.
69       Plots makes it easy to visualise mathematical formulae.
70       In addition to basic arithmetic operations, it supports trigonometric, hyperbolic, exponential and logarithmic functions, as well as arbitrary sums and products.
71       It can display polar equations, and both implicit and explicit Cartesian equations.
72     '';
73     homepage = "https://github.com/alexhuntley/Plots";
74     license = licenses.gpl3Plus;
75     maintainers = with maintainers; [ sund3RRR ];
76   };