Hello community, here is the log from the commit of package opencv for openSUSE:Factory checked in at 2017-12-03 10:10:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/opencv (Old) and /work/SRC/openSUSE:Factory/.opencv.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opencv" Sun Dec 3 10:10:30 2017 rev:69 rq:546456 version:3.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/opencv/opencv.changes 2017-11-19 11:09:18.851931255 +0100 +++ /work/SRC/openSUSE:Factory/.opencv.new/opencv.changes 2017-12-03 10:10:41.364948426 +0100 @@ -1,0 +2,9 @@ +Sat Nov 25 14:29:14 UTC 2017 - stefan.bru...@rwth-aachen.de + +- Readd opencv-gles.patch, it is *not* included upstream; otherwise + build breaks on all GLES Qt5 platforms (armv6l, armv7l, aarch64) +- add fix_processor_detection_for_32bit_on_64bit.patch +- Correctly set optimizations and dynamic dispatch on ARM, use + OpenCV 3.3 syntax on x86. + +------------------------------------------------------------------- New: ---- fix_processor_detection_for_32bit_on_64bit.patch opencv-gles.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ opencv.spec ++++++ --- /var/tmp/diff_new_pack.zihoAO/_old 2017-12-03 10:10:44.616830197 +0100 +++ /var/tmp/diff_new_pack.zihoAO/_new 2017-12-03 10:10:44.616830197 +0100 @@ -33,10 +33,14 @@ Source0: https://github.com/opencv/opencv/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz # This is the FACE module from the opencv_contrib package. Packaged separately to prevent too much usntable modules Source1: opencv_contrib_face-3.1.0.tar.bz2 +# PATCH-FIX-OPENCSUSE opencv-gles.patch -- Make sure PERSPECTIVE_CORRECTION_HINT is validated first, https://github.com/opencv/opencv/issues/9171 +Patch1: opencv-gles.patch # PATCH-FIX-OPENSUSE opencv-build-compare.patch -- avoid republish if some random external version number changes Patch8: opencv-build-compare.patch -# PATCH-FIX-OPENSUSE 0001-Do-not-include-glx.h-when-using-GLES.patch -- Fix build error on 32bit ARM, due to incompatible pointer types +# PATCH-FIX-OPENSUSE 0001-Do-not-include-glx.h-when-using-GLES.patch -- Fix build error on 32bit ARM, due to incompatible pointer types, https://github.com/opencv/opencv/issues/9171 Patch11: 0001-Do-not-include-glx.h-when-using-GLES.patch +# PATCH-FIX-OPENSUSE fix_processor_detection_for_32bit_on_64bit.patch -- Fix CPU detection for 32bit build on qemu-system-aarch64 +Patch12: fix_processor_detection_for_32bit_on_64bit.patch BuildRequires: cmake BuildRequires: fdupes BuildRequires: libeigen3-devel @@ -167,7 +171,10 @@ rm -f doc/packaging.txt %build -# TODO for OCV 3.3: https://github.com/opencv/opencv/wiki/CPU-optimizations-build-options +# Dynamic dispatch: https://github.com/opencv/opencv/wiki/CPU-optimizations-build-options +# x86: disable SSE on 32bit, do not dispatch AVX and later - SSE3 +# is the highest extension available on any non-64bit x86 CPU +# ARM: ARMv6, e.g. RPi1, only has VFPv2 %cmake \ %if %{with tests} -DBUILD_TESTS=ON \ @@ -182,10 +189,26 @@ -DWITH_IPP=OFF \ -DWITH_TBB=ON \ %ifarch %{ix86} - -DENABLE_SSE=0 \ - -DENABLE_SSE2=0 \ + -DCPU_BASELINE_DISABLE=SSE \ + -DCPU_DISPATCH=SSE,SSE2,SSE3 \ %endif - -DENABLE_SSE3=0 +%ifarch x86_64 + -DCPU_BASELINE=SSE2 \ + -DCPU_DISPATCH=SSE3,SSE4_1,SSE4_2,AVX,FP16,AVX2 \ +%endif +%ifarch %{arm} +%ifarch armv7l armv7hl + -DCPU_BASELINE=VFPV3 \ + -DCPU_DISPATCH=NEON \ +%else + -DCPU_BASELINE_DISABLE=NEON,VFPV3 \ +%endif +%endif +%ifarch aarch64 + -DCPU_BASELINE=NEON \ + -DCPU_DISPATCH=FP16 \ +%endif + make %{?_smp_mflags} VERBOSE=1 %check ++++++ fix_processor_detection_for_32bit_on_64bit.patch ++++++ --- opencv-3.3.0/cmake/OpenCVDetectCXXCompiler.cmake_orig 2017-10-27 06:32:16.790452991 +0200 +++ opencv-3.3.0/cmake/OpenCVDetectCXXCompiler.cmake 2017-10-27 06:34:33.035306589 +0200 @@ -60,6 +60,7 @@ endif() endif() +message(STATUS "Detected processor: ${CMAKE_SYSTEM_PROCESSOR}") if(MSVC64 OR MINGW64) set(X86_64 1) elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING)) @@ -76,11 +77,17 @@ set(PPC64LE 1) endif() -# Workaround for 32-bit operating systems on 64-bit x86_64 processor -if(X86_64 AND CMAKE_SIZEOF_VOID_P EQUAL 4 AND NOT FORCE_X86_64) - message(STATUS "sizeof(void) = 4 on x86 / x86_64 processor. Assume 32-bit compilation mode (X86=1)") - unset(X86_64) - set(X86 1) +# Workaround for 32-bit operating systems on x86_64/aarch64 processor +if(CMAKE_SIZEOF_VOID_P EQUAL 4 AND NOT FORCE_X86_64) + message(STATUS "sizeof(void) = 4 on 64 bit processor. Assume 32-bit compilation mode") + if (X86_64) + unset(X86_64) + set(X86 1) + endif() + if (AARCH64) + unset(AARCH64) + set(ARM 1) + endif() endif() # Similar code exists in OpenCVConfig.cmake ++++++ opencv-gles.patch ++++++ --- opencv-3.1.0.orig/modules/highgui/src/window_QT.cpp 2015-12-18 16:02:16.000000000 +0100 +++ opencv-3.1.0/modules/highgui/src/window_QT.cpp 2016-02-26 22:31:37.004570651 +0100 @@ -3165,7 +3165,9 @@ void OpenGlViewPort::initializeGL() { +#ifdef GL_PERSPECTIVE_CORRECTION_HINT glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); +#endif } void OpenGlViewPort::resizeGL(int w, int h)