diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2021-12-20 23:19:41 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2021-12-20 23:23:40 +0100 |
commit | 5894b1210d689ec408db21184b85b0a6a1a5ca3e (patch) | |
tree | c60cd5e4d3b7e43649870730158ca2314895e949 | |
parent | b934d88514284bf2c02ffba204c8b9b3e7272944 (diff) | |
download | guix-5894b1210d689ec408db21184b85b0a6a1a5ca3e.tar.gz |
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.
-rw-r--r-- | gnu/local.mk | 2 | ||||
-rw-r--r-- | gnu/packages/image-processing.scm | 130 | ||||
-rw-r--r-- | gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch | 39 | ||||
-rw-r--r-- | gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch | 40 |
4 files changed, 65 insertions, 146 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index d20a51070b..72fa405e17 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1549,8 +1549,6 @@ dist_patch_DATA = \ %D%/packages/patches/onnx-skip-model-downloads.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/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openjdk-10-idlj-reproducibility.patch \ %D%/packages/patches/openjdk-14-builtins.patch \ diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 75e76c3510..32816187e1 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -375,7 +375,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") (define-public opencv (package (name "opencv") - (version "3.4.3") + (version "4.5.4") (source (origin (method git-fetch) (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)) (sha256 (base32 - "06bc61r8myym4s8im10brdjfg4wxkrvsbhhl7vr1msdan2xddzi3")) - (patches - (search-patches "opencv-fix-build-of-grfmt_jpeg2000.cpp.patch")) + "0gf2xs3r4s51m20mpf0wdidpk0xzp3m2w6jx72fwldhn0pshlmcj")) (modules '((guix build utils))) (snippet '(begin - ;; Remove external libraries. We have all available in Guix: - (delete-file-recursively "3rdparty") + ;; Remove external libraries. We have almost all available + ;; 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: (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) (arguments `(#: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_CAROTENE=OFF" ; only visible on arm/aarch64 "-DENABLE_PRECOMPILED_HEADERS=OFF" @@ -456,30 +477,19 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") (modify-phases %standard-phases (add-after 'unpack 'disable-broken-tests (lambda _ - ;; These tests fails with: - ;; 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" + ;; This test fails with "unknown file: Failure" ;; But I couldn't figure out which file was missing: (substitute* "../opencv-contrib/modules/face/test/test_face_align.cpp" (("(TEST\\(CV_Face_FacemarkKazemi, )(can_detect_landmarks\\).*)" all pre post) (string-append pre "DISABLED_" post))) - ;; Failure reason: Bad accuracy - ;; Incorrect count of accurate poses [2nd case]: 90.000000 / 94.000000 - (substitute* "../opencv-contrib/modules/rgbd/test/test_odometry.cpp" - (("(TEST\\(RGBD_Odometry_Rgbd, )(algorithmic\\).*)" all pre post) - (string-append pre "DISABLED_" post))) - #t)) - + ;; These fail with protobuf parse errors that come from + ;; opencv-extra/testdata. + (substitute* "modules/dnn/test/test_layers.cpp" + (("(TEST_P\\(Test_Caffe_layers, )\ +(Accum\\).*|DataAugmentation\\).*|Resample\\).*|Correlation\\).*)" all pre post) + (string-append pre "DISABLED_" post))))) (add-after 'unpack 'unpack-submodule-sources (lambda* (#:key inputs #:allow-other-keys) (mkdir "../opencv-extra") @@ -488,18 +498,6 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") "../opencv-extra") (copy-recursively (assoc-ref inputs "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 (lambda* (#:key inputs #:allow-other-keys) (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 (method git-fetch) (uri (git-reference - (url "https://github.com/opencv/opencv_extra") - (commit version))) + (url "https://github.com/opencv/opencv_extra") + (commit version))) (file-name (git-file-name "opencv_extra" version)) (sha256 - (base32 "08p5xnq8n1jw8svvz0fnirfg7q8dm3p4a5dl7527s5xj0f9qn7lp")))) + (base32 "1fg2hxdvphdvagc2fkmhqk7qql9mp7pj2bmp8kmd7vicpr72qk82")))) ("opencv-contrib" ,(origin (method git-fetch) (uri (git-reference - (url "https://github.com/opencv/opencv_contrib") - (commit version))) + (url "https://github.com/opencv/opencv_contrib") + (commit version))) (file-name (git-file-name "opencv_contrib" version)) - (patches (search-patches "opencv-rgbd-aarch64-test-fix.patch")) (sha256 - (base32 "1f334glf39nk42mpqq6j732h3ql2mpz89jd4mcl678s8n73nfjh2")))))) - (inputs `(("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("jasper" ,jasper) - ;; ffmpeg 4.0 causes core dumps in tests. - ("ffmpeg" ,ffmpeg-3.4) - ("libtiff" ,libtiff) - ("hdf5" ,hdf5) - ("libgphoto2" ,libgphoto2) - ("libwebp" ,libwebp) - ("zlib" ,zlib) - ("gtkglext" ,gtkglext) - ("openexr" ,openexr-2) - ("ilmbase" ,ilmbase) - ("gtk+" ,gtk+-2) - ("python-numpy" ,python-numpy) - ("protobuf" ,protobuf) - ("vtk" ,vtk) - ("python" ,python))) + (base32 "0ga0l4ranp1834gxgp487ll1amvmssa02l2nk5ja5w0rx4d8hh26")))))) + (inputs + (list ffmpeg + gtk+ + gtkglext + hdf5 + ilmbase + imath ;should be propagated by openexr + jasper + libgphoto2 + libjpeg-turbo + libpng + libtiff + libwebp + openblas + openexr + openjpeg + protobuf + python + python-numpy + vtk + zlib)) ;; These three CVEs are not a problem of OpenCV, see: ;; https://github.com/opencv/opencv/issues/10998 (properties '((lint-hidden-cve . ("CVE-2018-7712" "CVE-2018-7713" "CVE-2018-7714")))) (synopsis "Computer vision library") - (description "OpenCV is a library aimed at -real-time computer vision, including several hundred computer -vision algorithms. It can be used to do things like: + (description "OpenCV is a library aimed at real-time computer vision, +including several hundred computer vision algorithms. It can be used to do +things like: @itemize @item image and video input and output 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 deleted file mode 100644 index 8deb60296a..0000000000 --- a/gnu/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch +++ /dev/null @@ -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 ) diff --git a/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch b/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch deleted file mode 100644 index 7792f8d1bf..0000000000 --- a/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch +++ /dev/null @@ -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) |