Subject: [bug#42958] [PATCH core-updates 09/29] gnu: openjpeg: Update package definition.

From: Danny Milosavljevic <[email-masked]>
Date: Thu, 20 Aug 2020 17:10:30 +0200

From: Raghav Gururajan <[email-masked]>

* gnu/packages/image.scm (openjpeg): Update package definition.
[outputs]: New output "doc".
[arguments]<#:tests?>: Remove argument.
<#:configure-flags>[-DBUILD_DOC]: New flag.
[-DBUILD_LUTS_GENERATOR]: New flag.
[-DBUILD_UNIT_TESTS]: New flag.
[-DBUILD_MJ2]: New flag.
[-DBUILD_JPWL]: New flag.
[-DBUILD_JP3D]: New flag.
[-DBUILD_TESTING]: New flag.
[-DOPJ_DATA_ROOT]: New flag.
<#:phases>['disable-failing-tests]: New phase.
['move-docs]: New phase.
[native-inputs]: Add doxygen, openjpeg-data and python-wrapper.
[inputs]: Add curl and fcgi.
[synopsis]: Modify.
[description]: Modify.

Signed-off-by: Danny Milosavljevic <[email-masked]>
---
 gnu/packages/image.scm | 88 +++++++++++++++++++++++++++++-------------
 1 file changed, 62 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 3fdc6db8a1..5a4425e993 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -763,35 +763,71 @@ images of initially unknown height.")
   (package
     (name "openjpeg")
     (version "2.3.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/uclouvain/openjpeg")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name "openjpeg" version))
-              (sha256
-               (base32
-                "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/uclouvain/openjpeg.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
     (build-system cmake-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:tests? #f                   ;TODO: requires a 1.1 GiB data repository
-       #:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
+     '(#:configure-flags
+       (list
+        "-DBUILD_DOC=ON"
+        "-DBUILD_STATIC_LIBS=OFF"
+        "-DBUILD_LUTS_GENERATOR=ON"
+        "-DBUILD_UNIT_TESTS=ON"
+        "-DBUILD_MJ2=ON"
+        "-DBUILD_JPWL=ON"
+        ;; To be enabled after Java becomes reproducible.
+        ;; "-DBUILD_JPIP=ON"
+        ;; "-DBUILD_JPIP_SERVER=ON"
+        ;; "-DBUILD_JAVA=ON"
+        "-DBUILD_JP3D=ON"
+        "-DBUILD_TESTING=ON"
+        (string-append "-DOPJ_DATA_ROOT="
+                       (assoc-ref %build-inputs "openjpeg-data")))
+       #:phases
+       (modify-phases %standard-phases
+         ;; To be re-enabled after upstream fixes the bug,
+         ;; https://github.com/uclouvain/openjpeg/issues/1264
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/CMakeLists.txt"
+               (("add_subdirectory\\(nonregression\\)")
+                ""))
+             #t))
+         (add-after 'install 'move-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share/doc"))
+               (rename-file
+                (string-append out "/share/doc/html")
+                (string-append doc "/share/doc/html"))
+               #t))))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("openjpeg-data" ,openjpeg-data) ; Files for test-suite
+       ("python" ,python-wrapper)))
     (inputs
-      `(("lcms" ,lcms)
-        ("libpng" ,libpng)
-        ("libtiff" ,libtiff)
-        ("zlib" ,zlib)))
-    (synopsis "JPEG 2000 codec")
-    (description
-      "The OpenJPEG library is a JPEG 2000 codec written in C.  It has
-been developed in order to promote the use of JPEG 2000, the new
-still-image compression standard from the Joint Photographic Experts
-Group (JPEG).
-
-In addition to the basic codec, various other features are under
-development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,
-an indexing tool useful for the JPIP protocol, JPWL-tools for
-error-resilience, a Java-viewer for j2k-images, ...")
+     `(("curl" ,curl)
+       ("fcgi" ,fcgi)
+       ("lcms" ,lcms)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("zlib" ,zlib)))
+    (synopsis "OPENJPEG Library and Applications")
+    (description "OpenJPEG is an implementation of JPEG 2000 codec written in C
+language.  It has been developed in order to promote the use of JPEG 2000, a
+still-image compression standard from the Joint Photographic Experts Group
+(JPEG).  Since April 2015, it is officially recognized by ISO/IEC and ITU-T as a
+JPEG 2000 Reference Software.")
     (home-page "https://github.com/uclouvain/openjpeg")
     (license license:bsd-2)))