mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
graphicsmagick: 1.3.42 -> 1.3.43 (#298535)
* graphicsmagick: adopt and refactor - finalAttrs design pattern - split man output - rename patches - update link that explains the patch * graphicsmagick-imagemagick-compat: rename filename * graphicsmagick-imagemagick-compat: hide it inside graphicsmagick.passthru * graphicsmagick-imagemagick-compat: refactor - use stdenvNoCC (since no compiler is called) - split man output - do not expose attributes - set `dontBuild = true` instead of using a fake `buildPhase` - install the artifacts via an elegant but questionable, Lispy dark magic * graphicsmagick: migrate to by-name * graphicsmagick: 1.3.42 -> 1.3.43 Co-authored-by: R. Ryantm <ryantm-bot@ryantm.com> * graphicsmagick: remove patch Since the security breach was solved upstream. --------- Co-authored-by: R. Ryantm <ryantm-bot@ryantm.com>
This commit is contained in:
parent
5b5f24497f
commit
4535b714c6
|
@ -1,37 +0,0 @@
|
|||
{ lib, stdenv, graphicsmagick }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "graphicsmagick-imagemagick-compat";
|
||||
inherit (graphicsmagick) version;
|
||||
|
||||
dontUnpack = true;
|
||||
buildPhase = "true";
|
||||
|
||||
utils = [
|
||||
"composite"
|
||||
"conjure"
|
||||
"convert"
|
||||
"identify"
|
||||
"mogrify"
|
||||
"montage"
|
||||
"animate"
|
||||
"display"
|
||||
"import"
|
||||
];
|
||||
|
||||
# TODO: symlink libraries?
|
||||
installPhase = ''
|
||||
mkdir -p "$out"/bin
|
||||
mkdir -p "$out"/share/man/man1
|
||||
for util in ''${utils[@]}; do
|
||||
ln -s ${graphicsmagick}/bin/gm "$out/bin/$util"
|
||||
ln -s ${graphicsmagick}/share/man/man1/gm.1.gz "$out/share/man/man1/$util.1.gz"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "ImageMagick interface for GraphicsMagick";
|
||||
license = lib.licenses.free;
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
{ lib, stdenv, fetchurl, bzip2, freetype, graphviz, ghostscript
|
||||
, libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz, libX11
|
||||
, libwebp, quantumdepth ? 8, fixDarwinDylibNames, nukeReferences
|
||||
, coreutils
|
||||
, runCommand
|
||||
, graphicsmagick # for passthru.tests
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "graphicsmagick";
|
||||
version = "1.3.42";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
|
||||
sha256 = "sha256-SE/M/Ssvr2wrqRUUaezlByvLkbpO1z517T2ORsdZ1Vc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./disable-popen.patch
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
# specify delegates explicitly otherwise `gm` will invoke the build
|
||||
# coreutils for filetypes it doesn't natively support.
|
||||
"MVDelegate=${lib.getExe' coreutils "mv"}"
|
||||
"--enable-shared"
|
||||
"--with-frozenpaths"
|
||||
"--with-quantum-depth=${toString quantumdepth}"
|
||||
"--with-gslib=yes"
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[ bzip2 freetype ghostscript graphviz libjpeg libpng libtiff libX11 libxml2
|
||||
zlib libtool libwebp
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ xz nukeReferences ]
|
||||
++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
|
||||
|
||||
# Remove CFLAGS from the binaries to avoid closure bloat.
|
||||
# In the past we have had -dev packages in the closure of the binaries soley due to the string references.
|
||||
postConfigure = ''
|
||||
nuke-refs -e $out ./magick/magick_config.h
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
issue-157920 = runCommand "issue-157920-regression-test" {
|
||||
buildInputs = [ graphicsmagick ];
|
||||
} ''
|
||||
gm convert ${graphviz}/share/doc/graphviz/neatoguide.pdf jpg:$out
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.graphicsmagick.org";
|
||||
description = "Swiss army knife of image processing";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.all;
|
||||
mainProgram = "gm";
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
http://permalink.gmane.org/gmane.comp.security.oss.general/19669
|
||||
|
||||
--- a/magick/blob.c Sat Nov 07 14:49:16 2015 -0600
|
||||
+++ b/magick/blob.c Sun May 29 14:12:57 2016 -0500
|
||||
@@ -68,6 +68,7 @@
|
||||
*/
|
||||
#define DefaultBlobQuantum 65541
|
||||
|
||||
+#undef HAVE_POPEN
|
||||
|
||||
/*
|
||||
Enum declarations.
|
48
pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix
Normal file
48
pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{ lib
|
||||
, graphicsmagick
|
||||
, stdenvNoCC
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "graphicsmagick-imagemagick-compat";
|
||||
inherit (graphicsmagick) version;
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
# TODO: symlink libraries?
|
||||
installPhase = let
|
||||
utilities = [
|
||||
"animate"
|
||||
"composite"
|
||||
"conjure"
|
||||
"convert"
|
||||
"display"
|
||||
"identify"
|
||||
"import"
|
||||
"mogrify"
|
||||
"montage"
|
||||
];
|
||||
linkUtilityBin = utility: ''
|
||||
ln -s ${lib.getExe graphicsmagick} "$out/bin/${utility}"
|
||||
'';
|
||||
linkUtilityMan = utility: ''
|
||||
ln -s ${lib.getMan graphicsmagick}/share/man/man1/gm.1.gz "$man/share/man/man1/${utility}.1.gz"
|
||||
'';
|
||||
in ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p "$out"/bin
|
||||
${lib.concatStringsSep "\n" (map linkUtilityBin utilities)}
|
||||
mkdir -p "$man"/share/man/man1
|
||||
${lib.concatStringsSep "\n" (map linkUtilityMan utilities)}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = graphicsmagick.meta // {
|
||||
description = "A repack of GraphicsMagick that provides compatibility with ImageMagick interfaces";
|
||||
};
|
||||
}
|
105
pkgs/by-name/gr/graphicsmagick/package.nix
Normal file
105
pkgs/by-name/gr/graphicsmagick/package.nix
Normal file
|
@ -0,0 +1,105 @@
|
|||
{ lib
|
||||
, bzip2
|
||||
, callPackage
|
||||
, coreutils
|
||||
, fetchurl
|
||||
, fixDarwinDylibNames
|
||||
, freetype
|
||||
, ghostscript
|
||||
, graphviz
|
||||
, libX11
|
||||
, libjpeg
|
||||
, libpng
|
||||
, libtiff
|
||||
, libtool
|
||||
, libwebp
|
||||
, libxml2
|
||||
, nukeReferences
|
||||
, quantumdepth ? 8
|
||||
, runCommand
|
||||
, stdenv
|
||||
, xz
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "graphicsmagick";
|
||||
version = "1.3.43";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-K4hYBzLNfkCdniLGEWI4vvSuBvzaEUUb8z0ln5y/OZ8=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
buildInputs = [
|
||||
bzip2
|
||||
freetype
|
||||
ghostscript
|
||||
graphviz
|
||||
libX11
|
||||
libjpeg
|
||||
libpng
|
||||
libtiff
|
||||
libtool
|
||||
libwebp
|
||||
libxml2
|
||||
zlib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
nukeReferences
|
||||
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 soley
|
||||
# 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; [ AndersonTorres ];
|
||||
mainProgram = "gm";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
})
|
|
@ -31666,10 +31666,8 @@ with pkgs;
|
|||
pythonPackages = python3Packages;
|
||||
};
|
||||
|
||||
graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
|
||||
graphicsmagick_q16 = graphicsmagick.override { quantumdepth = 16; };
|
||||
|
||||
graphicsmagick-imagemagick-compat = callPackage ../applications/graphics/graphicsmagick/compat.nix { };
|
||||
graphicsmagick-imagemagick-compat = graphicsmagick.imagemagick-compat;
|
||||
|
||||
grisbi = callPackage ../applications/office/grisbi { gtk = gtk3; };
|
||||
|
||||
|
|
Loading…
Reference in a new issue