about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libpng
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libpng')
-rw-r--r--nixpkgs/pkgs/development/libraries/libpng/12.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/libpng/default.nix49
2 files changed, 80 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libpng/12.nix b/nixpkgs/pkgs/development/libraries/libpng/12.nix
new file mode 100644
index 000000000000..2cd8c1debaf2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libpng/12.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, zlib }:
+
+assert stdenv.hostPlatform == stdenv.buildPlatform -> zlib != null;
+
+stdenv.mkDerivation rec {
+  name = "libpng-1.2.57";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libpng/${name}.tar.xz";
+    sha256 = "1n2lrzjkm5jhfg2bs10q398lkwbbx742fi27zgdgx0x23zhj0ihg";
+  };
+
+  outputs = [ "out" "dev" "man" ];
+
+  propagatedBuildInputs = [ zlib ];
+
+  passthru = { inherit zlib; };
+
+  configureFlags = [ "--enable-static" ];
+
+  postInstall = ''mv "$out/bin" "$dev/bin"'';
+
+  meta = with stdenv.lib; {
+    description = "The official reference implementation for the PNG file format";
+    homepage = http://www.libpng.org/pub/png/libpng.html;
+    license = licenses.libpng;
+    maintainers = [ maintainers.fuuzetsu ];
+    branch = "1.2";
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libpng/default.nix b/nixpkgs/pkgs/development/libraries/libpng/default.nix
new file mode 100644
index 000000000000..765f03d9825d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libpng/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, zlib, apngSupport ? true }:
+
+assert zlib != null;
+
+let
+  patchVersion = "1.6.36";
+  patch_src = fetchurl {
+    url = "mirror://sourceforge/libpng-apng/libpng-${patchVersion}-apng.patch.gz";
+    sha256 = "03ywdwaq1k3pfslvbs2b33z3pdmazz6yp8g56mzafacvfgd367wc";
+  };
+  whenPatched = stdenv.lib.optionalString apngSupport;
+
+in stdenv.mkDerivation rec {
+  name = "libpng" + whenPatched "-apng" + "-${version}";
+  version = "1.6.36";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libpng/libpng-${version}.tar.xz";
+    sha256 = "06d35a3xz2a0kph82r56hqm1fn8fbwrqs07xzmr93dx63x695szc";
+  };
+  patches = [
+    (fetchurl { # https://github.com/glennrp/libpng/issues/266
+      url = "https://salsa.debian.org/debian/libpng1.6/raw/0e1348f3d/debian/patches/272.patch";
+      sha256 = "1d36khgryq2p27bdx10xrr4kcjr7cdfdj2zhdcjzznpnpns97s6n";
+    })
+    (fetchurl { # https://github.com/glennrp/libpng/issues/275
+      url = "https://salsa.debian.org/debian/libpng1.6/raw/853d1977/debian/patches/CVE-2019-7317.patch";
+      sha256 = "0c8qc176mqh08kcxlnx40rzdggchihkrlzqw6qg6lf0c9ygkf55k";
+    })
+  ];
+  postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1";
+
+  outputs = [ "out" "dev" "man" ];
+  outputBin = "dev";
+
+  propagatedBuildInputs = [ zlib ];
+
+  doCheck = true;
+
+  passthru = { inherit zlib; };
+
+  meta = with stdenv.lib; {
+    description = "The official reference implementation for the PNG file format" + whenPatched " with animation patch";
+    homepage = http://www.libpng.org/pub/png/libpng.html;
+    license = licenses.libpng2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.vcunat maintainers.fuuzetsu ];
+  };
+}