summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-08-13 15:26:45 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2020-08-13 16:09:40 +0200
commit8bf704262d672ae0735f0685bfd1c9ddcb1d8484 (patch)
tree3f9b025af463c7d55e049242db4f622ae775a057
parentd1c37def6e22fa4e171a96f97347220cf2ed5aa9 (diff)
gnu: opencv: Fix build with Jasper 2.0.19.
* gnu/packages/image-processing.scm (opencv)[source]: Add patch. * gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/image-processing.scm4
-rw-r--r--gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch39
3 files changed, 43 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 66ad65cb15..27dcf965ca 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1356,6 +1356,7 @@ dist_patch_DATA = \
%D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
+ %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \
%D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \
%D%/packages/patches/opendht-fix-jami.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index e62c5c7cdb..52e0311943 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018 Lprndn <guix@lprndn.info>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -251,6 +251,8 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(sha256
(base32
"06bc61r8myym4s8im10brdjfg4wxkrvsbhhl7vr1msdan2xddzi3"))
+ (patches
+ (search-patches "opencv-fix-build-of-grfmt_jpeg2000.cpp.patch"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch b/gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch
new file mode 100644
index 0000000000..8deb60296a
--- /dev/null
+++ b/gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch
@@ -0,0 +1,39 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Thu, 13 Aug 2020 15:21:30 +0200
+Subject: [PATCH] gnu: opencv: Fix build with Jasper 2.0.19.
+
+Taken verbatim from upstream: <https://github.com/opencv/opencv/issues/17984>.
+
+From f66fc199a20882c546fa31142e9c0f5a8b3cf983 Mon Sep 17 00:00:00 2001
+From: Florian Jung <flo@windfis.ch>
+Date: Wed, 29 Jul 2020 18:51:55 +0200
+Subject: [PATCH] Fix build of grfmt_jpeg2000.cpp
+
+libjasper has recently changed `jas_matrix_get` from a macro to an inline function
+(389951d071 in https://github.com/jasper-software/jasper), causing the build to fail.
+---
+ modules/imgcodecs/src/grfmt_jpeg2000.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/imgcodecs/src/grfmt_jpeg2000.cpp b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
+index fe69f80c86f..0f4d28d6f4d 100644
+--- a/modules/imgcodecs/src/grfmt_jpeg2000.cpp
++++ b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
+@@ -377,7 +377,7 @@ bool Jpeg2KDecoder::readComponent8u( uchar *data, void *_buffer,
+
+ for( y = 0; y < yend - ystart; )
+ {
+- jas_seqent_t* pix_row = &jas_matrix_get( buffer, y / ystep, 0 );
++ jas_seqent_t* pix_row = jas_matrix_getref( buffer, y / ystep, 0 );
+ uchar* dst = data + (y - yoffset) * step - xoffset;
+
+ if( xstep == 1 )
+@@ -443,7 +443,7 @@ bool Jpeg2KDecoder::readComponent16u( unsigned short *data, void *_buffer,
+
+ for( y = 0; y < yend - ystart; )
+ {
+- jas_seqent_t* pix_row = &jas_matrix_get( buffer, y / ystep, 0 );
++ jas_seqent_t* pix_row = jas_matrix_getref( buffer, y / ystep, 0 );
+ ushort* dst = data + (y - yoffset) * step - xoffset;
+
+ if( xstep == 1 )