biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / graphics / ipe / default.nix
blob131881341f797e6bfb0901d9ba69ae6d42b5c75c
1 { lib
2 , stdenv
3 , makeDesktopItem
4 , fetchurl
5 , pkg-config
6 , copyDesktopItems
7 , cairo
8 , freetype
9 , ghostscript
10 , gsl
11 , libjpeg
12 , libpng
13 , libspiro
14 , lua5
15 , qtbase
16 , qtsvg
17 , texliveSmall
18 , wrapQtAppsHook
19 , zlib
20 , withTeXLive ? true
21 , buildPackages
24 stdenv.mkDerivation rec {
25   pname = "ipe";
26   version = "7.2.27";
28   src = fetchurl {
29     url = "https://github.com/otfried/ipe/releases/download/v${version}/ipe-${version}-src.tar.gz";
30     sha256 = "sha256-wx/bZy8kB7dpZsz58BeRGdS1BzbrIoafgEmLyFg7wZU=";
31   };
33   nativeBuildInputs = [ pkg-config copyDesktopItems wrapQtAppsHook ];
35   buildInputs = [
36     cairo
37     freetype
38     ghostscript
39     gsl
40     libjpeg
41     libpng
42     libspiro
43     lua5
44     qtbase
45     qtsvg
46     zlib
47   ] ++ (lib.optionals withTeXLive [
48     texliveSmall
49   ]);
51   makeFlags = [
52     "-C src"
53     "IPEPREFIX=${placeholder "out"}"
54     "LUA_PACKAGE=lua"
55     "MOC=${buildPackages.qt6Packages.qtbase}/libexec/moc"
56     "IPE_NO_SPELLCHECK=1" # qtSpell is not yet packaged
57   ];
59   qtWrapperArgs = lib.optionals withTeXLive [ "--prefix PATH : ${lib.makeBinPath [ texliveSmall ]}" ];
61   enableParallelBuilding = true;
63   desktopItems = [
64     (makeDesktopItem {
65       name = pname;
66       desktopName = "Ipe";
67       genericName = "Drawing editor";
68       comment = "A drawing editor for creating figures in PDF format";
69       exec = "ipe";
70       icon = "ipe";
71       mimeTypes = [ "text/xml" "application/pdf" ];
72       categories = [ "Graphics" "Qt" ];
73       startupNotify = true;
74       startupWMClass = "ipe";
75     })
76   ];
78   postInstall = ''
79     mkdir -p $out/share/icons/hicolor/128x128/apps
80     ln -s $out/share/ipe/${version}/icons/icon_128x128.png $out/share/icons/hicolor/128x128/apps/ipe.png
81   '';
83   meta = with lib; {
84     description = "Editor for drawing figures";
85     homepage = "http://ipe.otfried.org"; # https not available
86     license = licenses.gpl3Plus;
87     longDescription = ''
88       Ipe is an extensible drawing editor for creating figures in PDF and Postscript format.
89       It supports making small figures for inclusion into LaTeX-documents
90       as well as presentations in PDF.
91     '';
92     maintainers = with maintainers; [ ttuegel ];
93     platforms = platforms.linux;
94   };