mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: opencv: Update to 4.5.4.
* gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch: Delete file. * gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove patches. * gnu/packages/image-processing.scm (opencv): Update to 4.5.4. [source]: Remove patch; keep bundled quirc. [arguments]: Build without ade; update build phase 'disable-broken-tests; remove build phase 'add-ilmbase-include-path. [native-inputs]: Update source hashes for opencv-contrib and opencv-extra. [inputs]: Use new style; add imath and openblas; replace openexr-2 with openexr. [description]: Reformat first paragraph.
This commit is contained in:
parent
b934d88514
commit
5894b1210d
4 changed files with 65 additions and 146 deletions
|
@ -1549,8 +1549,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/onnx-skip-model-downloads.patch \
|
%D%/packages/patches/onnx-skip-model-downloads.patch \
|
||||||
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
|
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
|
||||||
%D%/packages/patches/opencascade-oce-glibc-2.26.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/openfoam-4.1-cleanup.patch \
|
%D%/packages/patches/openfoam-4.1-cleanup.patch \
|
||||||
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
|
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
|
||||||
%D%/packages/patches/openjdk-14-builtins.patch \
|
%D%/packages/patches/openjdk-14-builtins.patch \
|
||||||
|
|
|
@ -375,7 +375,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
|
||||||
(define-public opencv
|
(define-public opencv
|
||||||
(package
|
(package
|
||||||
(name "opencv")
|
(name "opencv")
|
||||||
(version "3.4.3")
|
(version "4.5.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -384,14 +384,34 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"06bc61r8myym4s8im10brdjfg4wxkrvsbhhl7vr1msdan2xddzi3"))
|
"0gf2xs3r4s51m20mpf0wdidpk0xzp3m2w6jx72fwldhn0pshlmcj"))
|
||||||
(patches
|
|
||||||
(search-patches "opencv-fix-build-of-grfmt_jpeg2000.cpp.patch"))
|
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
;; Remove external libraries. We have all available in Guix:
|
;; Remove external libraries. We have almost all available
|
||||||
(delete-file-recursively "3rdparty")
|
;; in Guix:
|
||||||
|
(with-directory-excursion "3rdparty"
|
||||||
|
(for-each delete-file-recursively
|
||||||
|
'("carotene"
|
||||||
|
"cpufeatures"
|
||||||
|
"ffmpeg"
|
||||||
|
"include"
|
||||||
|
"ippicv"
|
||||||
|
"ittnotify"
|
||||||
|
"libjasper"
|
||||||
|
"libjpeg"
|
||||||
|
"libjpeg-turbo"
|
||||||
|
"libpng"
|
||||||
|
"libtengine"
|
||||||
|
"libtiff"
|
||||||
|
"libwebp"
|
||||||
|
"openexr"
|
||||||
|
"openjpeg"
|
||||||
|
"openvx"
|
||||||
|
"protobuf"
|
||||||
|
;;"quirc"
|
||||||
|
"tbb"
|
||||||
|
"zlib")))
|
||||||
|
|
||||||
;; Milky icon set is non-free:
|
;; Milky icon set is non-free:
|
||||||
(delete-file-recursively "modules/highgui/src/files_Qt/Milky")
|
(delete-file-recursively "modules/highgui/src/files_Qt/Milky")
|
||||||
|
@ -403,7 +423,8 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
(list "-DWITH_IPP=OFF"
|
(list "-DWITH_ADE=OFF" ;we don't have a package for ade yet
|
||||||
|
"-DWITH_IPP=OFF"
|
||||||
"-DWITH_ITT=OFF"
|
"-DWITH_ITT=OFF"
|
||||||
"-DWITH_CAROTENE=OFF" ; only visible on arm/aarch64
|
"-DWITH_CAROTENE=OFF" ; only visible on arm/aarch64
|
||||||
"-DENABLE_PRECOMPILED_HEADERS=OFF"
|
"-DENABLE_PRECOMPILED_HEADERS=OFF"
|
||||||
|
@ -456,30 +477,19 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'disable-broken-tests
|
(add-after 'unpack 'disable-broken-tests
|
||||||
(lambda _
|
(lambda _
|
||||||
;; These tests fails with:
|
;; This test fails with "unknown file: Failure"
|
||||||
;; vtkXOpenGLRenderWindow (0x723990): Could not find a decent config
|
|
||||||
;; I think we have no OpenGL support with the Xvfb.
|
|
||||||
(substitute* '("modules/viz/test/test_tutorial3.cpp"
|
|
||||||
"modules/viz/test/test_main.cpp"
|
|
||||||
"modules/viz/test/tests_simple.cpp"
|
|
||||||
"modules/viz/test/test_viz3d.cpp")
|
|
||||||
(("(TEST\\(Viz, )([a-z].*\\).*)" all pre post)
|
|
||||||
(string-append pre "DISABLED_" post)))
|
|
||||||
|
|
||||||
;; This one fails with "unknown file: Failure"
|
|
||||||
;; But I couldn't figure out which file was missing:
|
;; But I couldn't figure out which file was missing:
|
||||||
(substitute* "../opencv-contrib/modules/face/test/test_face_align.cpp"
|
(substitute* "../opencv-contrib/modules/face/test/test_face_align.cpp"
|
||||||
(("(TEST\\(CV_Face_FacemarkKazemi, )(can_detect_landmarks\\).*)"
|
(("(TEST\\(CV_Face_FacemarkKazemi, )(can_detect_landmarks\\).*)"
|
||||||
all pre post)
|
all pre post)
|
||||||
(string-append pre "DISABLED_" post)))
|
(string-append pre "DISABLED_" post)))
|
||||||
|
|
||||||
;; Failure reason: Bad accuracy
|
;; These fail with protobuf parse errors that come from
|
||||||
;; Incorrect count of accurate poses [2nd case]: 90.000000 / 94.000000
|
;; opencv-extra/testdata.
|
||||||
(substitute* "../opencv-contrib/modules/rgbd/test/test_odometry.cpp"
|
(substitute* "modules/dnn/test/test_layers.cpp"
|
||||||
(("(TEST\\(RGBD_Odometry_Rgbd, )(algorithmic\\).*)" all pre post)
|
(("(TEST_P\\(Test_Caffe_layers, )\
|
||||||
(string-append pre "DISABLED_" post)))
|
(Accum\\).*|DataAugmentation\\).*|Resample\\).*|Correlation\\).*)" all pre post)
|
||||||
#t))
|
(string-append pre "DISABLED_" post)))))
|
||||||
|
|
||||||
(add-after 'unpack 'unpack-submodule-sources
|
(add-after 'unpack 'unpack-submodule-sources
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(mkdir "../opencv-extra")
|
(mkdir "../opencv-extra")
|
||||||
|
@ -488,18 +498,6 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
|
||||||
"../opencv-extra")
|
"../opencv-extra")
|
||||||
(copy-recursively (assoc-ref inputs "opencv-contrib")
|
(copy-recursively (assoc-ref inputs "opencv-contrib")
|
||||||
"../opencv-contrib")))
|
"../opencv-contrib")))
|
||||||
|
|
||||||
(add-after 'set-paths 'add-ilmbase-include-path
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
;; OpenEXR propagates ilmbase, but its include files do not appear
|
|
||||||
;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
|
|
||||||
;; the CPATH to satisfy the dependency on "ImathVec.h".
|
|
||||||
(setenv "CPATH"
|
|
||||||
(string-append
|
|
||||||
(string-drop-right
|
|
||||||
(search-input-file inputs "include/OpenEXR/ImathVec.h")
|
|
||||||
11)
|
|
||||||
":" (or (getenv "CPATH") "")))))
|
|
||||||
(add-before 'check 'start-xserver
|
(add-before 'check 'start-xserver
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(let ((xorg-server (assoc-ref inputs "xorg-server"))
|
(let ((xorg-server (assoc-ref inputs "xorg-server"))
|
||||||
|
@ -516,48 +514,50 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
|
||||||
,(origin
|
,(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/opencv/opencv_extra")
|
(url "https://github.com/opencv/opencv_extra")
|
||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name "opencv_extra" version))
|
(file-name (git-file-name "opencv_extra" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "08p5xnq8n1jw8svvz0fnirfg7q8dm3p4a5dl7527s5xj0f9qn7lp"))))
|
(base32 "1fg2hxdvphdvagc2fkmhqk7qql9mp7pj2bmp8kmd7vicpr72qk82"))))
|
||||||
("opencv-contrib"
|
("opencv-contrib"
|
||||||
,(origin
|
,(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/opencv/opencv_contrib")
|
(url "https://github.com/opencv/opencv_contrib")
|
||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name "opencv_contrib" version))
|
(file-name (git-file-name "opencv_contrib" version))
|
||||||
(patches (search-patches "opencv-rgbd-aarch64-test-fix.patch"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1f334glf39nk42mpqq6j732h3ql2mpz89jd4mcl678s8n73nfjh2"))))))
|
(base32 "0ga0l4ranp1834gxgp487ll1amvmssa02l2nk5ja5w0rx4d8hh26"))))))
|
||||||
(inputs `(("libjpeg" ,libjpeg-turbo)
|
(inputs
|
||||||
("libpng" ,libpng)
|
(list ffmpeg
|
||||||
("jasper" ,jasper)
|
gtk+
|
||||||
;; ffmpeg 4.0 causes core dumps in tests.
|
gtkglext
|
||||||
("ffmpeg" ,ffmpeg-3.4)
|
hdf5
|
||||||
("libtiff" ,libtiff)
|
ilmbase
|
||||||
("hdf5" ,hdf5)
|
imath ;should be propagated by openexr
|
||||||
("libgphoto2" ,libgphoto2)
|
jasper
|
||||||
("libwebp" ,libwebp)
|
libgphoto2
|
||||||
("zlib" ,zlib)
|
libjpeg-turbo
|
||||||
("gtkglext" ,gtkglext)
|
libpng
|
||||||
("openexr" ,openexr-2)
|
libtiff
|
||||||
("ilmbase" ,ilmbase)
|
libwebp
|
||||||
("gtk+" ,gtk+-2)
|
openblas
|
||||||
("python-numpy" ,python-numpy)
|
openexr
|
||||||
("protobuf" ,protobuf)
|
openjpeg
|
||||||
("vtk" ,vtk)
|
protobuf
|
||||||
("python" ,python)))
|
python
|
||||||
|
python-numpy
|
||||||
|
vtk
|
||||||
|
zlib))
|
||||||
;; These three CVEs are not a problem of OpenCV, see:
|
;; These three CVEs are not a problem of OpenCV, see:
|
||||||
;; https://github.com/opencv/opencv/issues/10998
|
;; https://github.com/opencv/opencv/issues/10998
|
||||||
(properties '((lint-hidden-cve . ("CVE-2018-7712"
|
(properties '((lint-hidden-cve . ("CVE-2018-7712"
|
||||||
"CVE-2018-7713"
|
"CVE-2018-7713"
|
||||||
"CVE-2018-7714"))))
|
"CVE-2018-7714"))))
|
||||||
(synopsis "Computer vision library")
|
(synopsis "Computer vision library")
|
||||||
(description "OpenCV is a library aimed at
|
(description "OpenCV is a library aimed at real-time computer vision,
|
||||||
real-time computer vision, including several hundred computer
|
including several hundred computer vision algorithms. It can be used to do
|
||||||
vision algorithms. It can be used to do things like:
|
things like:
|
||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
@item image and video input and output
|
@item image and video input and output
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
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 )
|
|
|
@ -1,40 +0,0 @@
|
||||||
https://github.com/opencv/opencv_contrib/commit/8aaa91c3dc835690477d7777e66948dbf5a87edc.patch
|
|
||||||
|
|
||||||
From 8aaa91c3dc835690477d7777e66948dbf5a87edc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tomoaki Teshima <tomoaki.teshima@gmail.com>
|
|
||||||
Date: Mon, 5 Nov 2018 20:32:23 +0900
|
|
||||||
Subject: [PATCH] avoid test failing on Aarch64 * loosen the threshold in
|
|
||||||
Rgbd_Normals.compute * make the minimum tvec larger in
|
|
||||||
RGBD_Odometry_Rgbd.algorithmic
|
|
||||||
|
|
||||||
---
|
|
||||||
modules/rgbd/test/test_normal.cpp | 2 +-
|
|
||||||
modules/rgbd/test/test_odometry.cpp | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/modules/rgbd/test/test_normal.cpp b/modules/rgbd/test/test_normal.cpp
|
|
||||||
index f2233553a7..ed54f2cd98 100644
|
|
||||||
--- a/modules/rgbd/test/test_normal.cpp
|
|
||||||
+++ b/modules/rgbd/test/test_normal.cpp
|
|
||||||
@@ -211,7 +211,7 @@ class CV_RgbdNormalsTest: public cvtest::BaseTest
|
|
||||||
std::cout << std::endl << "*** FALS" << std::endl;
|
|
||||||
errors[0][0] = 0.006f;
|
|
||||||
errors[0][1] = 0.03f;
|
|
||||||
- errors[1][0] = 0.00008f;
|
|
||||||
+ errors[1][0] = 0.0001f;
|
|
||||||
errors[1][1] = 0.02f;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
diff --git a/modules/rgbd/test/test_odometry.cpp b/modules/rgbd/test/test_odometry.cpp
|
|
||||||
index 62b654a1ec..f5a2084504 100644
|
|
||||||
--- a/modules/rgbd/test/test_odometry.cpp
|
|
||||||
+++ b/modules/rgbd/test/test_odometry.cpp
|
|
||||||
@@ -213,7 +213,7 @@ void CV_OdometryTest::generateRandomTransformation(Mat& rvec, Mat& tvec)
|
|
||||||
normalize(rvec, rvec, rng.uniform(0.007f, maxRotation));
|
|
||||||
|
|
||||||
randu(tvec, Scalar(-1000), Scalar(1000));
|
|
||||||
- normalize(tvec, tvec, rng.uniform(0.007f, maxTranslation));
|
|
||||||
+ normalize(tvec, tvec, rng.uniform(0.008f, maxTranslation));
|
|
||||||
}
|
|
||||||
|
|
||||||
void CV_OdometryTest::run(int)
|
|
Loading…
Add table
Add a link
Reference in a new issue