about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/openjpeg
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/openjpeg
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/openjpeg')
-rw-r--r--nixpkgs/pkgs/development/libraries/openjpeg/1.x.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/openjpeg/2.x.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/openjpeg/generic.nix76
3 files changed, 105 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/openjpeg/1.x.nix b/nixpkgs/pkgs/development/libraries/openjpeg/1.x.nix
new file mode 100644
index 000000000000..dfa5605dec8b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openjpeg/1.x.nix
@@ -0,0 +1,8 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.5.2";
+  branch = "1.5";
+  revision = "version.1.5.2";
+  sha256 = "1dvvpvb597i5z8srz2v4c5dsbxb966h125jx3m2z0r2gd2wvpfkp";
+})
diff --git a/nixpkgs/pkgs/development/libraries/openjpeg/2.x.nix b/nixpkgs/pkgs/development/libraries/openjpeg/2.x.nix
new file mode 100644
index 000000000000..fd9c7eea8c2e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openjpeg/2.x.nix
@@ -0,0 +1,21 @@
+{ callPackage, fetchpatch, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "2.3.0";
+  branch = "2.3";
+  revision = "v${version}";
+  sha256 = "08plxrnfl33sn2vh5nwbsngyv6b1sfpplvx881crm1v1ai10m2lz";
+
+  patches = [
+    (fetchpatch {
+      name = "CVE-2018-7648.patch";
+      url = "https://github.com/uclouvain/openjpeg/commit/cc3824767bde397fedb8a1ae4786a222ba860c8d.patch";
+      sha256 = "1j5nxmlgyfkxldk2f1ij6h850xw45q3b5brxqa04dxsfsv8cdj5j";
+    })
+    (fetchpatch {
+      name = "CVE-2017-17480+CVE-2018-18088.patch";
+      url = "https://github.com/uclouvain/openjpeg/commit/92023cd6c377e0384a7725949b25655d4d94dced.patch";
+      sha256 = "0rrxxqcp3vjkmvywxj9ac766m3fppy0x0nszrkf8irrqy1gnp38k";
+    })
+  ];
+})
diff --git a/nixpkgs/pkgs/development/libraries/openjpeg/generic.nix b/nixpkgs/pkgs/development/libraries/openjpeg/generic.nix
new file mode 100644
index 000000000000..96cf0451ebf4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openjpeg/generic.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, libpng, libtiff, lcms2
+, mj2Support ? true # MJ2 executables
+, jpwlLibSupport ? true # JPWL library & executables
+, jpipLibSupport ? false # JPIP library & executables
+, jpipServerSupport ? false, curl ? null, fcgi ? null # JPIP Server
+#, opjViewerSupport ? false, wxGTK ? null # OPJViewer executable
+, openjpegJarSupport ? false # Openjpeg jar (Java)
+, jp3dSupport ? true # # JP3D comp
+, thirdPartySupport ? false # Third party libraries - OFF: only build when found, ON: always build
+, testsSupport ? false
+, jdk ? null
+# Inherit generics
+, branch, version, revision, sha256, patches ? [], ...
+}:
+
+assert jpipServerSupport -> jpipLibSupport && curl != null && fcgi != null;
+#assert opjViewerSupport -> (wxGTK != null);
+assert (openjpegJarSupport || jpipLibSupport) -> jdk != null;
+
+let
+  inherit (stdenv.lib) optional optionals;
+  mkFlag = optSet: flag: "-D${flag}=${if optSet then "ON" else "OFF"}";
+in
+
+stdenv.mkDerivation rec {
+  name = "openjpeg-${version}";
+
+  src = fetchFromGitHub {
+    owner = "uclouvain";
+    repo = "openjpeg";
+    rev = revision;
+    inherit sha256;
+  };
+
+  inherit patches;
+
+  outputs = [ "out" "dev" ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_NAME_DIR=\${CMAKE_INSTALL_PREFIX}/lib"
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DBUILD_CODEC=ON"
+    (mkFlag mj2Support "BUILD_MJ2")
+    (mkFlag jpwlLibSupport "BUILD_JPWL")
+    (mkFlag jpipLibSupport "BUILD_JPIP")
+    (mkFlag jpipServerSupport "BUILD_JPIP_SERVER")
+    #(mkFlag opjViewerSupport "BUILD_VIEWER")
+    "-DBUILD_VIEWER=OFF"
+    (mkFlag openjpegJarSupport "BUILD_JAVA")
+    (mkFlag jp3dSupport "BUILD_JP3D")
+    (mkFlag thirdPartySupport "BUILD_THIRDPARTY")
+    (mkFlag testsSupport "BUILD_TESTING")
+  ];
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ ]
+    ++ optionals jpipServerSupport [ curl fcgi ]
+    #++ optional opjViewerSupport wxGTK
+    ++ optional (openjpegJarSupport || jpipLibSupport) jdk;
+
+  propagatedBuildInputs = [ libpng libtiff lcms2 ];
+
+  passthru = {
+    incDir = "openjpeg-${branch}";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Open-source JPEG 2000 codec written in C language";
+    homepage = http://www.openjpeg.org/;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ codyopel ];
+    platforms = platforms.all;
+  };
+}