1{ lib
2, stdenv
3, fetchurl
4, fetchpatch
5, autoconf
6, automake
7, pkg-config
8, zlib
9, libpng
10, libjpeg
11, libwebp
12, libtiff
13, withXorg ? true
14, libXpm
15, libavif
16, fontconfig
17, freetype
18}:
19
20stdenv.mkDerivation rec {
21 pname = "gd";
22 version = "2.3.3";
23
24 src = fetchurl {
25 url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz";
26 sha256 = "0qas3q9xz3wgw06dm2fj0i189rain6n60z1vyq50d5h7wbn25s1z";
27 };
28
29 patches = [
30 (fetchpatch { # included in > 2.3.3
31 name = "restore-GD_FLIP.patch";
32 url = "https://github.com/libgd/libgd/commit/f4bc1f5c26925548662946ed7cfa473c190a104a.diff";
33 sha256 = "XRXR3NOkbEub3Nybaco2duQk0n8vxif5mTl2AUacn9w=";
34 })
35 ];
36
37 hardeningDisable = [ "format" ];
38
39 configureFlags = [
40 "--enable-gd-formats"
41 ]
42 # -pthread gets passed to clang, causing warnings
43 ++ lib.optional stdenv.isDarwin "--enable-werror=no";
44
45 nativeBuildInputs = [ autoconf automake pkg-config ];
46
47 buildInputs = [ zlib fontconfig freetype libpng libjpeg libwebp libtiff libavif ]
48 ++ lib.optional withXorg libXpm;
49
50 outputs = [ "bin" "dev" "out" ];
51
52 postFixup = ''
53 moveToOutput "bin/gdlib-config" $dev
54 '';
55
56 enableParallelBuilding = true;
57
58 doCheck = false; # fails 2 tests
59
60 meta = with lib; {
61 homepage = "https://libgd.github.io/";
62 description = "A dynamic image creation library";
63 license = licenses.free; # some custom license
64 platforms = platforms.unix;
65 maintainers = with maintainers; [ ];
66 };
67}