Files
nixpkgs/pkgs/by-name/ip/ipe/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

119 lines
2.5 KiB
Nix

{
lib,
stdenv,
makeDesktopItem,
fetchFromGitHub,
pkg-config,
copyDesktopItems,
cairo,
freetype,
ghostscriptX,
gsl,
libjpeg,
libpng,
libspiro,
lua5,
qt6Packages,
texliveSmall,
qhull,
zlib,
withTeXLive ? true,
withQVoronoi ? false,
buildPackages,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ipe";
version = "7.2.30";
src = fetchFromGitHub {
owner = "otfried";
repo = "ipe";
tag = "v${finalAttrs.version}";
hash = "sha256-bvwEgEP/cinigixJr8e964sm6secSK+7Ul7WFfwM0gE=";
};
nativeBuildInputs = [
pkg-config
copyDesktopItems
qt6Packages.wrapQtAppsHook
];
buildInputs = [
cairo
freetype
ghostscriptX
gsl
libjpeg
libpng
libspiro
lua5
]
++ (with qt6Packages; [
qtbase
qtsvg
zlib
])
++ (lib.optionals withTeXLive [
texliveSmall
])
++ (lib.optionals withQVoronoi [
qhull
]);
makeFlags = [
"-C src"
"IPEPREFIX=${placeholder "out"}"
"LUA_PACKAGE=lua"
"MOC=${buildPackages.qt6Packages.qtbase}/libexec/moc"
"IPE_NO_SPELLCHECK=1" # qtSpell is not yet packaged
]
++ (lib.optionals withQVoronoi [
"IPEQVORONOI=1"
"QHULL_CFLAGS=-I${qhull}/include/libqhull_r"
]);
qtWrapperArgs = lib.optionals withTeXLive [ "--prefix PATH : ${lib.makeBinPath [ texliveSmall ]}" ];
enableParallelBuilding = true;
desktopItems = [
(makeDesktopItem {
name = "ipe";
desktopName = "Ipe";
genericName = "Drawing editor";
comment = "A drawing editor for creating figures in PDF format";
exec = "ipe";
icon = "ipe";
mimeTypes = [
"text/xml"
"application/pdf"
];
categories = [
"Graphics"
"Qt"
];
startupNotify = true;
startupWMClass = "ipe";
})
];
postInstall = ''
mkdir -p $out/share/icons/hicolor/128x128/apps
ln -s $out/share/ipe/${finalAttrs.version}/icons/icon_128x128.png $out/share/icons/hicolor/128x128/apps/ipe.png
'';
meta = {
description = "Editor for drawing figures";
homepage = "http://ipe.otfried.org"; # https not available
license = lib.licenses.gpl3Plus;
longDescription = ''
Ipe is an extensible drawing editor for creating figures in PDF and Postscript format.
It supports making small figures for inclusion into LaTeX-documents
as well as presentations in PDF.
'';
maintainers = with lib.maintainers; [ ttuegel ];
platforms = lib.platforms.linux;
};
})