From 8e21fa0bd347117ae907827272f95cf4647a0af7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 14 Jan 2019 11:32:02 +0200 Subject: [PATCH] gnu: opencv: Loosen test suite failures. * gnu/packages/image-processing.scm (opencv)[native-inputs]: Add patch to opencv-contrib. [arguments]: Update 'unpack-submodule-sources phase. * gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/image-processing.scm | 9 ++++- .../opencv-rgbd-aarch64-test-fix.patch | 40 +++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7eb4366af2..499dbed267 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1036,6 +1036,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-rgbd-aarch64-test-fix.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openjdk-10-idlj-reproducibility.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 792259c087..68bcfed996 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -322,9 +322,13 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") (let ((unpack (lambda (source target) (with-directory-excursion target (apply invoke "unzip" - (list (assoc-ref inputs source))))))) + (list (assoc-ref inputs source)))))) + (untar (lambda (source target) + (with-directory-excursion target + (apply invoke "tar" "xvf" + (list (assoc-ref inputs source))))))) (unpack "opencv-extra" "../opencv-extra") - (unpack "opencv-contrib" "../opencv-contrib")))) + (untar "opencv-contrib" "../opencv-contrib")))) (add-after 'set-paths 'add-ilmbase-include-path (lambda* (#:key inputs #:allow-other-keys) @@ -363,6 +367,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") (uri (string-append "https://codeload.github.com/" "opencv/opencv_contrib/zip/" version)) (file-name (string-append "opencv-contrib-" version ".zip")) + (patches (search-patches "opencv-rgbd-aarch64-test-fix.patch")) (sha256 (base32 "0j0ci6ia1qwklp9hq07ypl0vkngj1wrgh6n98n657m5d0pyp4m0g")))))) (inputs `(("libjpeg" ,libjpeg) diff --git a/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch b/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch new file mode 100644 index 0000000000..7792f8d1bf --- /dev/null +++ b/gnu/packages/patches/opencv-rgbd-aarch64-test-fix.patch @@ -0,0 +1,40 @@ +https://github.com/opencv/opencv_contrib/commit/8aaa91c3dc835690477d7777e66948dbf5a87edc.patch + +From 8aaa91c3dc835690477d7777e66948dbf5a87edc Mon Sep 17 00:00:00 2001 +From: Tomoaki Teshima +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) -- 2.20.1