about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/gd
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gd')
-rw-r--r--nixpkgs/pkgs/development/libraries/gd/default.nix67
1 files changed, 67 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gd/default.nix b/nixpkgs/pkgs/development/libraries/gd/default.nix
new file mode 100644
index 000000000000..c9845feb9678
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gd/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoconf
+, automake
+, pkg-config
+, zlib
+, libpng
+, libjpeg
+, libwebp
+, libtiff
+, withXorg ? true
+, libXpm
+, libavif
+, fontconfig
+, freetype
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gd";
+  version = "2.3.3";
+
+  src = fetchurl {
+    url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz";
+    sha256 = "0qas3q9xz3wgw06dm2fj0i189rain6n60z1vyq50d5h7wbn25s1z";
+  };
+
+  patches = [
+    (fetchpatch { # included in > 2.3.3
+      name = "restore-GD_FLIP.patch";
+      url = "https://github.com/libgd/libgd/commit/f4bc1f5c26925548662946ed7cfa473c190a104a.diff";
+      sha256 = "XRXR3NOkbEub3Nybaco2duQk0n8vxif5mTl2AUacn9w=";
+    })
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  configureFlags = [
+    "--enable-gd-formats"
+  ]
+    # -pthread gets passed to clang, causing warnings
+    ++ lib.optional stdenv.isDarwin "--enable-werror=no";
+
+  nativeBuildInputs = [ autoconf automake pkg-config ];
+
+  buildInputs = [ zlib fontconfig freetype libpng libjpeg libwebp libtiff libavif ]
+    ++ lib.optional withXorg libXpm;
+
+  outputs = [ "bin" "dev" "out" ];
+
+  postFixup = ''
+    moveToOutput "bin/gdlib-config" $dev
+  '';
+
+  enableParallelBuilding = true;
+
+  doCheck = false; # fails 2 tests
+
+  meta = with lib; {
+    homepage = "https://libgd.github.io/";
+    description = "A dynamic image creation library";
+    license = licenses.free; # some custom license
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
+  };
+}