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

From: Raghav Gururajan <[email-masked]>
Date: Thu, 24 Sep 2020 11:03:51 -0400

@Danny

Please find the attached split patches.

Regards,
RG.
>From c644a020006d314d27414be5bd901b9774ca53f8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 24 Sep 2020 10:39:25 -0400
Subject: [PATCH 21/25] gnu: openjpeg: Make some cosmetic changes.

* gnu/packages/images.scm (openjpeg): Make some cosmetic changes.
---
 gnu/packages/image.scm | 34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index ff434bb6c9..e6b5fd6bda 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -807,31 +807,33 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
   (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")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name "openjpeg" version))
+       (sha256
+        (base32 "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:tests? #f                   ;TODO: requires a 1.1 GiB data repository
+     '(#:tests? #f           ;TODO: requires a 1.1 GiB data repository
        #:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
     (inputs
-      `(("lcms" ,lcms)
-        ("libpng" ,libpng)
-        ("libtiff" ,libtiff)
-        ("zlib" ,zlib)))
+     `(("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
+     "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
-- 
2.28.0

>From 162e90e9df45096a0bd6324ba039da69aa4e0492 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 24 Sep 2020 10:48:08 -0400
Subject: [PATCH 22/25] gnu: openjpeg: Enable tests.

* gnu/packages/image.scm (openjpeg) [arguments]<#:tests?>: Remove argument.
<#:configure-flags>[-DBUILD_UNIT_TESTS]: New flag.
[-DBUILD_TESTING]: New flag.
[-DOPJ_DATA_ROOT]: New flag.
<#:phases>['disable-failing-tests]: New phase.
[native-inputs]: Add openjpeg-data.
---
 gnu/packages/image.scm | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index e6b5fd6bda..2e97f04f8a 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -821,8 +821,25 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
         (base32 "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:tests? #f           ;TODO: requires a 1.1 GiB data repository
-       #:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
+     `(#:configure-flags 
+       (list
+        "-DBUILD_STATIC_LIBS=OFF"
+        "-DBUILD_UNIT_TESTS=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)))))
+    (native-inputs
+     `(("openjpeg-data" ,openjpeg-data))) ; Files for test-suite
     (inputs
      `(("lcms" ,lcms)
        ("libpng" ,libpng)
-- 
2.28.0

>From 03e33cb0d15508c5644451345a112c19e18552cf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 24 Sep 2020 10:53:00 -0400
Subject: [PATCH 23/25] gnu: openjpeg: Enable documentation.

* gnu/packages/image.scm (openjpeg) [outputs]: New output "doc".
[arguments]<#:configure-flags>[-DBUILD_DOC]: New flag.
<#:phases>['move-docs]: New phase.
[native-inputs]: Add doxygen.
---
 gnu/packages/image.scm | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 2e97f04f8a..26ed0d7616 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -820,9 +820,11 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
        (sha256
         (base32 "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
     (build-system cmake-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:configure-flags 
        (list
+        "-DBUILD_DOC=ON"
         "-DBUILD_STATIC_LIBS=OFF"
         "-DBUILD_UNIT_TESTS=ON"
         "-DBUILD_TESTING=ON"
@@ -837,9 +839,19 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
              (substitute* "tests/CMakeLists.txt"
                (("add_subdirectory\\(nonregression\\)")
                 ""))
-             #t)))))
+             #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
-     `(("openjpeg-data" ,openjpeg-data))) ; Files for test-suite
+     `(("doxygen" ,doxygen)
+       ("openjpeg-data" ,openjpeg-data))) ; Files for test-suite
     (inputs
      `(("lcms" ,lcms)
        ("libpng" ,libpng)
-- 
2.28.0

>From 26bdc80f2da072437e58fe305feb038f8b9c722e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 24 Sep 2020 10:57:23 -0400
Subject: [PATCH 24/25] gnu: openjpeg: Enable some features.

* gnu/packages/image.scm (openjpeg) <#:configure-flags>[-DBUILD_LUTS_GENERATOR]: New flag.
[-DBUILD_MJ2]: New flag.
[-DBUILD_JPWL]: New flag.
[-DBUILD_JP3D]: New flag.
[native-inputs]: Add python-wrapper.
[inputs]: Add curl and fcgi.
---
 gnu/packages/image.scm | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 26ed0d7616..3c2718bc3b 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -826,7 +826,15 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
        (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")))
@@ -851,9 +859,12 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
                #t))))))
     (native-inputs
      `(("doxygen" ,doxygen)
-       ("openjpeg-data" ,openjpeg-data))) ; Files for test-suite
+       ("openjpeg-data" ,openjpeg-data) ; Files for test-suite
+       ("python" ,python-wrapper)))
     (inputs
-     `(("lcms" ,lcms)
+     `(("curl" ,curl)
+       ("fcgi" ,fcgi)
+       ("lcms" ,lcms)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)
        ("zlib" ,zlib)))
-- 
2.28.0

>From c48f3fa4344b5ee13b1fc2ca873587e4a9a46a6a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 24 Sep 2020 10:59:47 -0400
Subject: [PATCH 25/25] gnu: openjpeg: Update synopsis and description.

* gnu/packages/image.scm (openjpeg) [synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/image.scm | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 3c2718bc3b..7a03cdcd46 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -868,16 +868,12 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
        ("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, ...")
+    (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)))
 
-- 
2.28.0