diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libjpeg-turbo')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix | 50 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libjpeg-turbo/mingw-boolean.patch | 19 |
2 files changed, 69 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix new file mode 100644 index 000000000000..36838341fe21 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, fetchpatch, cmake, nasm, enableStatic ? false, enableShared ? true }: + +stdenv.mkDerivation rec { + + pname = "libjpeg-turbo"; + version = "2.0.4"; + + src = fetchurl { + url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; + sha256 = "01ill8bgjyk582wipx7sh7gj2nidylpbzvwhx0wkcm6mxx3qbp9k"; + }; + + patches = + [ + # Fixes race in tests that causes "jpegtran-shared-icc" to fail + # https://github.com/libjpeg-turbo/libjpeg-turbo/pull/425 + (fetchpatch { + url = "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/a2291b252de1413a13db61b21863ae7aea0946f3.patch"; + sha256 = "0nc5vcch5h52gpi07h08zf8br58q8x81q2hv871hrn0dinb53vym"; + }) + + (fetchpatch { + name = "cve-2020-13790.patch"; + url = "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/3de15e0c344d.diff"; + sha256 = "0hm5i6qir5w3zxb0xvqdh4jyvbfg7xnd28arhyfsaclfz9wdb0pb"; + }) + ] ++ + stdenv.lib.optional (stdenv.hostPlatform.libc or null == "msvcrt") + ./mingw-boolean.patch; + + outputs = [ "bin" "dev" "out" "man" "doc" ]; + + nativeBuildInputs = [ cmake nasm ]; + + cmakeFlags = [ + "-DENABLE_STATIC=${if enableStatic then "1" else "0"}" + "-DENABLE_SHARED=${if enableShared then "1" else "0"}" + ]; + + doInstallCheck = true; + installCheckTarget = "test"; + + meta = with stdenv.lib; { + homepage = "http://libjpeg-turbo.virtualgl.org/"; + description = "A faster (using SIMD) libjpeg implementation"; + license = licenses.ijg; # and some parts under other BSD-style licenses + maintainers = with maintainers; [ vcunat colemickens ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/mingw-boolean.patch b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/mingw-boolean.patch new file mode 100644 index 000000000000..9b9483d63987 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/mingw-boolean.patch @@ -0,0 +1,19 @@ +Ported to updated libjpeg-turbo from +https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-libjpeg-turbo/jpeg-typedefs.patch +--- a/jmorecfg.h 2012-02-10 06:47:55 +0300 ++++ b/jmorecfg.h 2012-05-03 10:29:13 +0400 +@@ -224,7 +224,13 @@ + * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. + */ + +-#ifndef HAVE_BOOLEAN ++#if defined(_WIN32) && !defined(HAVE_BOOLEAN) ++#ifndef __RPCNDR_H__ ++typedef unsigned char boolean; ++#endif ++#define HAVE_BOOLEAN ++#endif ++#if !defined(HAVE_BOOLEAN) && !defined(__RPCNDR_H__) + typedef int boolean; + #endif + #ifndef FALSE /* in case these macros already exist */ |