diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libgdiplus')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libgdiplus/default.nix | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libgdiplus/default.nix b/nixpkgs/pkgs/development/libraries/libgdiplus/default.nix new file mode 100644 index 000000000000..ba9eab432029 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libgdiplus/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchFromGitHub, pkgconfig, glib, cairo, Carbon, fontconfig +, libtiff, giflib, libjpeg, libpng +, libXrender, libexif, autoreconfHook, fetchpatch }: + +stdenv.mkDerivation rec { + name = "libgdiplus-5.6.1"; + + src = fetchFromGitHub { + owner = "mono"; + repo = "libgdiplus"; + rev = "5.6.1"; + sha256 = "023xf3l2s0mxcdbl2viglzrkhx3lwcrpm66fiq7cfdqz80d4vsj2"; + }; + + NIX_LDFLAGS = "-lgif"; + + patches = [ # Series of patches cherry-picked from master, all fixes various sigsegv (or required by other patch) + (fetchpatch { + url = "https://github.com/mono/libgdiplus/commit/d33a2580a94701ff33abe28c22881d6173be57d0.patch"; + sha256 = "0rr54jylscn4icqjprqhwrncyr92r0d7kmfrrq3myskplpqv1c11"; + }) + (fetchpatch { + url ="https://github.com/mono/libgdiplus/commit/aa6aa53906935572f52f519fe4ab9ebedc051d08.patch"; + sha256 = "1wg0avm8qv5cb4vk80baflfzszm6q7ydhn89c3h6kq68hg6zsf1f"; + }) + (fetchpatch { + url = "https://github.com/mono/libgdiplus/commit/81e45a1d5a3ac3cf035bcc3fabb2859818b6cc04.patch"; + sha256 = "07wmc88cd1lqifs5x6npryni65jyy9gi8lgr2i1lb7v0fhvlyswg"; + }) + ]; + + hardeningDisable = [ "format" ]; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + + buildInputs = + [ glib cairo fontconfig libtiff giflib + libjpeg libpng libXrender libexif + ] + ++ stdenv.lib.optional stdenv.isDarwin Carbon; + + postInstall = stdenv.lib.optionalString stdenv.isDarwin '' + ln -s $out/lib/libgdiplus.0.dylib $out/lib/libgdiplus.so + ''; + + checkPhase = '' + make check -w + ''; + + meta = with stdenv.lib; { + description = "Mono library that provides a GDI+-compatible API on non-Windows operating systems"; + homepage = https://www.mono-project.com/docs/gui/libgdiplus/; + platforms = platforms.unix; + license = licenses.mit; + }; +} |