depot/third_party/nixpkgs/pkgs/by-name/gr/graphicsmagick/package.nix
Luke Granger-Brown f92e137cfb
Some checks failed
/ combine-systems (push) Blocked by required conditions
/ build (x86_64-linux) (push) Failing after 11m44s
/ build (aarch64-linux) (push) Failing after 11m50s
/ build (push) Failing after 16m42s
Merge commit '1e2ed035f4bebc9adad02b365508ad96f7df87c1' into HEAD
2025-03-02 02:23:32 +00:00

116 lines
2.7 KiB
Nix

{
lib,
bzip2,
callPackage,
coreutils,
fetchurl,
fixDarwinDylibNames,
freetype,
ghostscript,
graphviz,
libX11,
libjpeg,
libpng,
libtiff,
libtool,
libwebp,
libxml2,
libheifSupport ? true,
libheif,
nukeReferences,
pkg-config,
quantumdepth ? 8,
runCommand,
stdenv,
xz,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "graphicsmagick";
version = "1.3.45";
src = fetchurl {
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${finalAttrs.version}.tar.xz";
hash = "sha256-3OpRZ0FPfIBVV94tekepsxR7y/YXuR9fD0r+XmVDAms=";
};
outputs = [
"out"
"man"
];
buildInputs = [
bzip2
freetype
ghostscript
graphviz
libX11
libjpeg
libpng
libtiff
libtool
libwebp
libxml2
zlib
] ++ lib.optionals libheifSupport [ libheif ];
nativeBuildInputs = [
nukeReferences
pkg-config
xz
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ fixDarwinDylibNames ];
configureFlags = [
# specify delegates explicitly otherwise `gm` will invoke the build
# coreutils for filetypes it doesn't natively support.
"MVDelegate=${lib.getExe' coreutils "mv"}"
(lib.enableFeature true "shared")
(lib.withFeature true "frozenpaths")
(lib.withFeatureAs true "quantum-depth" (toString quantumdepth))
(lib.withFeatureAs true "gslib" "yes")
];
# Remove CFLAGS from the binaries to avoid closure bloat.
# In the past we have had -dev packages in the closure of the binaries solely
# due to the string references.
postConfigure = ''
nuke-refs -e $out ./magick/magick_config.h
'';
postInstall = ''
sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
'';
passthru = {
imagemagick-compat = callPackage ./imagemagick-compat.nix {
graphicsmagick = finalAttrs.finalPackage;
};
tests = {
issue-157920 =
runCommand "issue-157920-regression-test"
{
buildInputs = [ finalAttrs.finalPackage ];
}
''
gm convert ${graphviz}/share/doc/graphviz/neatoguide.pdf jpg:$out
'';
};
};
meta = {
homepage = "http://www.graphicsmagick.org";
description = "Swiss army knife of image processing";
longDescription = ''
GraphicsMagick is the swiss army knife of image processing, providing a
robust and efficient collection of tools and libraries which support
reading, writing, and manipulating an image in over 92 major formats
including important formats like DPX, GIF, JPEG, JPEG-2000, JXL, PNG, PDF,
PNM, TIFF, and WebP.
'';
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ ];
mainProgram = "gm";
platforms = lib.platforms.all;
};
})