about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/gd/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gd/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/gd/default.nix61
1 files changed, 61 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..36a930956033
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gd/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchurl, fetchpatch
+, autoconf
+, automake
+, pkg-config
+, zlib
+, libpng
+, libjpeg ? null
+, libwebp ? null
+, libtiff ? null
+, libXpm ? null
+, fontconfig
+, freetype
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gd";
+  version = "2.3.0";
+
+  src = fetchurl {
+    url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz";
+    sha256 = "0n5czhxzinvjvmhkf5l9fwjdx5ip69k5k7pj6zwb6zs1k9dibngc";
+  };
+
+  hardeningDisable = [ "format" ];
+  patches = [
+    # Fixes an issue where some other packages would fail to build
+    # their documentation with an error like:
+    # "Error: Problem doing text layout"
+    #
+    # Can be removed if Wayland can still be built successfully with
+    # documentation.
+    (fetchpatch {
+      url = "https://github.com/libgd/libgd/commit/3dd0e308cbd2c24fde2fc9e9b707181252a2de95.patch";
+      excludes = [ "tests/gdimagestringft/.gitignore" ];
+      sha256 = "12iqlanl9czig9d7c3rvizrigw2iacimnmimfcny392dv9iazhl1";
+    })
+  ];
+
+  # -pthread gets passed to clang, causing warnings
+  configureFlags = lib.optional stdenv.isDarwin "--enable-werror=no";
+
+  nativeBuildInputs = [ autoconf automake pkg-config ];
+
+  buildInputs = [ zlib fontconfig freetype ];
+  propagatedBuildInputs = [ libpng libjpeg libwebp libtiff 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;
+  };
+}