]> git.pld-linux.org Git - packages/opencv.git/blobdiff - opencv.spec
- remove cmake install directory arch dependant hackery
[packages/opencv.git] / opencv.spec
index c58b867c1bc5241fac50bf72746e9f331c9dfc0e..3ee1a71c1cc0cf1d8f0eaeb270dea7ee361201de 100644 (file)
@@ -2,11 +2,6 @@
 # - Smartek GigEVisionSDK (http://www.smartekvision.com/ but I can't see SDK with Linux library?)
 # - CUDA, CUFFT, CUBLAS, NVCUVID support (on bcond)
 # - ipp (libippi): http://software.intel.com/en-us/articles/intel-ipp/ (proprietary)
-# - GUI: VTK support
-# - Use GCD NO
-# - Use Concurrency NO
-# - Use C= (CSTRIPES): NO
-#   C/C++ Examples: NO
 #
 # Conditional build:
 # - general options:
@@ -22,7 +17,7 @@
 %bcond_with    opencl_amdblas  # AMD OpenCL BLAS routines
 %bcond_with    opencl_amdfft   # AMD OpenCL FFT routines
 %bcond_without opengl          # OpenGL support
-%bcond_without gomp            # OpenMP support
+%bcond_without gomp            # OpenMP support (available when not using tbb)
 %bcond_without examples        # Install examples
 # - bindings
 %bcond_without java            # Java binding
 %bcond_without v4l             # Video4Linux in highgui
 %bcond_with    ximea           # m3API (XIMEA cameras) support in highgui (proprietary)
 %bcond_with    xine            # XINE support in highgui (GPL)
+# - other modules
+%bcond_without vtk             # VTK library support (opencv_viz module)
 
-%ifarch pentium3 pentium4 %{x8664}
+%ifarch pentium3 pentium4 %{x8664} x32
 %define                with_sse        1
 %endif
-%ifarch pentium4 %{x8664}
+%ifarch pentium4 %{x8664} x32
 %define                with_sse2       1
 %endif
 Summary:       A library of programming functions mainly aimed at real time computer vision
 Summary(pl.UTF-8):     Biblioteka funkcji do grafiki komputerowej w czasie rzeczywistym
 Name:          opencv
-Version:       2.4.9
+Version:       2.4.10.1
 Release:       1
 Epoch:         1
 %if %{with unicap} || %{with xine}
@@ -56,9 +53,9 @@ License:      BSD
 %endif
 Group:         Libraries
 Source0:       https://github.com/Itseez/opencv/archive/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: cc0a8307403ff471f554197401ec0eb9
+# Source0-md5: f84af999f45edc829bfda60a13fedbaa
 Patch0:                %{name}-cflags.patch
-Patch1:                %{name}-link.patch
+Patch1:                %{name}-x86.patch
 Patch2:                %{name}-unicap-c++.patch
 Patch3:                %{name}-c.patch
 Patch4:                %{name}-gcc.patch
@@ -66,6 +63,8 @@ Patch5:               %{name}-ximea.patch
 Patch6:                %{name}-ocl-fft.patch
 Patch7:                java-ant-sourcelevel.patch
 Patch8:                %{name}-shared.patch
+Patch9:                no-sysctl.patch
+Patch10:       cmake-install-path.patch
 URL:           http://www.opencv.org/
 %{?with_pvapi:BuildRequires:   AVT_GigE_SDK-devel}
 %{?with_opencl:BuildRequires:  OpenCL-devel}
@@ -84,12 +83,12 @@ BuildRequires:      eigen3 >= 3
 %{?with_ffmpeg:BuildRequires:  ffmpeg-devel >= 0.7}
 %{?with_gomp:BuildRequires:    gcc-c++ >= 6:4.2}
 %if %{with gstreamer}
-BuildRequires: gstreamer-devel >= 0.10
-BuildRequires: gstreamer-plugins-base-devel >= 0.10
+BuildRequires: gstreamer-devel >= 1.0
+BuildRequires: gstreamer-plugins-base-devel >= 1.0
 %endif
 BuildRequires: jasper-devel
 %{?with_java:BuildRequires:    jdk}
-BuildRequires: libdc1394-devel
+BuildRequires: libdc1394-devel >= 2
 %{?with_gomp:BuildRequires:    libgomp-devel}
 BuildRequires: libjpeg-devel
 BuildRequires: libpng-devel
@@ -103,15 +102,22 @@ BuildRequires:    libunicap-devel
 %endif
 BuildRequires: libv4l-devel
 BuildRequires: pkgconfig
-BuildRequires: python
-BuildRequires: python-devel
+BuildRequires: python >= 2.0
+BuildRequires: python-devel >= 2.0
 BuildRequires: python-numpy-devel
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.606
 BuildRequires: sed >= 4.0
+BuildRequires: sphinx-pdg
 BuildRequires: swig-python
 %{?with_tbb:BuildRequires:     tbb-devel}
+%if %{with vtk}
+BuildRequires: vtk-devel >= 5.8.0
+BuildRequires: vtk-java >= 5.8.0
+BuildRequires: vtk-tcl >= 5.8.0
+%endif
 %{?with_xine:BuildRequires:    xine-lib-devel}
+BuildRequires: xorg-lib-libX11-devel
 BuildRequires: zlib-devel
 %if %{with qt}
 BuildRequires: QtCore-devel >= 4
@@ -125,10 +131,7 @@ BuildRequires:     gtk+2-devel >= 2.0
 Requires:      %{name}-core = %{epoch}:%{version}-%{release}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                sover   %(v=%{version}; k=${v#?.?.?}; echo ${v%$k})
-
-# build broken, can't find g++
-%undefine      with_ccache
+%define                jver    %(echo %{version} | cut -d. -f1-3 | tr -d .)
 
 %description
 OpenCV (Open Source Computer Vision) is a library of programming
@@ -172,11 +175,26 @@ This package contains the OpenCV C/C++ core libraries.
 %description core -l pl.UTF-8
 Ten pakiet zawiera podstawowe biblioteki C/C++ OpenCV.
 
+%package viz
+Summary:       OpenCV viz library (VTK support)
+Summary(pl.UTF-8):     Biblioteka OpenCV viz (obsługa VTK)
+Group:         Libraries
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+
+%description viz
+OpenCV viz library (VTK support).
+
+%description viz -l pl.UTF-8
+Biblioteka OpenCV viz (obsługa VTK).
+
 %package devel
 Summary:       Header files for OpenCV library
 Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki OpenCV
 Group:         Development/Libraries
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+%if %{with vtk}
+Requires:      %{name}-viz = %{epoch}:%{version}-%{release}
+%endif
 Obsoletes:     opencv-static
 
 %description devel
@@ -259,11 +277,26 @@ Wiązania Pythona do OpenCV.
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
+%patch10 -p1
 
 %build
 install -d build
 cd build
+
+# handle cmake & ccache
+# http://stackoverflow.com/questions/1815688/how-to-use-ccache-with-cmakec
+if [[ "%{__cc}" = *ccache* ]]; then
+       cc="%{__cc}"
+       cxx="%{__cxx}"
+       ccache="
+       -DCMAKE_C_COMPILER="ccache" -DCMAKE_C_COMPILER_ARG1="${cc#ccache }" \
+       -DCMAKE_CXX_COMPILER="ccache" -DCMAKE_CXX_COMPILER_ARG1="${cxx#ccache }" \
+       "
+fi
+
 %cmake .. \
+       $ccache \
        -DENABLE_AVX=%{?with_avx:ON}%{!?with_avx:OFF} \
        -DENABLE_SSE=%{?with_sse:ON}%{!?with_sse:OFF} \
        -DENABLE_SSE2=%{?with_sse2:ON}%{!?with_sse2:OFF} \
@@ -289,6 +322,7 @@ cd build
        %{?with_tbb:-DWITH_TBB=ON} \
        %{?with_unicap:-DWITH_UNICAP=ON} \
        %{!?with_v4l:-DWITH_V4L=OFF} \
+       %{?with_vtk:-DWITH_VTK=ON} \
        %{?with_ximea:-DWITH_XIMEA=ON} \
        %{?with_xine:-DWITH_XINE=ON}
 
@@ -309,6 +343,9 @@ mv $RPM_BUILD_ROOT%{_datadir}/OpenCV/samples/* $RPM_BUILD_ROOT%{_examplesdir}/%{
 install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
 cp -p build/unix-install/opencv.pc $RPM_BUILD_ROOT%{_pkgconfigdir}
 
+# disable completeness check incompatible with split packaging
+%{__sed} -i -e '/^foreach(target .*IMPORT_CHECK_TARGETS/,/^endforeach/d' $RPM_BUILD_ROOT%{_datadir}/OpenCV/OpenCVModules.cmake
+
 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
 %py_postclean
@@ -317,6 +354,8 @@ cp -p build/unix-install/opencv.pc $RPM_BUILD_ROOT%{_pkgconfigdir}
 # move to proper directories, create symlink
 install -d $RPM_BUILD_ROOT%{_javadir}
 %{__mv} $RPM_BUILD_ROOT%{_datadir}/OpenCV/java/libopencv_java*.so $RPM_BUILD_ROOT%{_libdir}
+sed -i -e 's#/share/OpenCV/java/libopencv_java%{jver}\.so#/%{_lib}/libopencv_java%{jver}.so#g' \
+       $RPM_BUILD_ROOT%{_datadir}/OpenCV/OpenCVModules-pld.cmake
 %{__mv} $RPM_BUILD_ROOT%{_datadir}/OpenCV/java/opencv-*.jar $RPM_BUILD_ROOT%{_javadir}
 rmdir $RPM_BUILD_ROOT%{_datadir}/OpenCV/java
 ln -sf $(basename $RPM_BUILD_ROOT%{_javadir}/opencv-*.jar) $RPM_BUILD_ROOT%{_javadir}/opencv.jar
@@ -331,6 +370,9 @@ rm -rf $RPM_BUILD_ROOT
 %post   core -p /sbin/ldconfig
 %postun core -p /sbin/ldconfig
 
+%post   viz -p /sbin/ldconfig
+%postun viz -p /sbin/ldconfig
+
 %post   -n java-opencv -p /sbin/ldconfig
 %postun -n java-opencv -p /sbin/ldconfig
 
@@ -340,58 +382,88 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/opencv_haartraining
 %attr(755,root,root) %{_bindir}/opencv_performance
 %attr(755,root,root) %{_bindir}/opencv_traincascade
-%attr(755,root,root) %{_libdir}/libopencv_calib3d.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_calib3d.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_calib3d.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_contrib.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_contrib.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_contrib.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_features2d.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_features2d.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_features2d.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_highgui.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_gpu.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_gpu.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_highgui.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_highgui.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_legacy.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_legacy.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_legacy.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_objdetect.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_nonfree.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_nonfree.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_objdetect.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_objdetect.so.2.4
 %if %{with opencl}
-%attr(755,root,root) %{_libdir}/libopencv_ocl.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_ocl.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_ocl.so.2.4
 %endif
-%attr(755,root,root) %{_libdir}/libopencv_stitching.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_stitching.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_stitching.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_ts.so.%{sover}
-%attr(755,root,root) %ghost %{_libdir}/libopencv_ts.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_superres.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_superres.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_superres.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_videostab.so.%{sover}
+%attr(755,root,root) %{_libdir}/libopencv_ts.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_ts.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_videostab.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libopencv_videostab.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_gpu.so.%{sover}
-%attr(755,root,root) %ghost %{_libdir}/libopencv_gpu.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_nonfree.so.%{sover}
-%attr(755,root,root) %ghost %{_libdir}/libopencv_nonfree.so.2.4
 %dir %{_datadir}/OpenCV
 %{_datadir}/OpenCV/haarcascades
 %{_datadir}/OpenCV/lbpcascades
 
 %files core
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libopencv_core.so.%{sover}
-%ghost %{_libdir}/libopencv_core.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_flann.so.%{sover}
-%ghost %{_libdir}/libopencv_flann.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_imgproc.so.%{sover}
-%ghost %{_libdir}/libopencv_imgproc.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_ml.so.%{sover}
-%ghost %{_libdir}/libopencv_ml.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_photo.so.%{sover}
-%ghost %{_libdir}/libopencv_photo.so.2.4
-%attr(755,root,root) %{_libdir}/libopencv_video.so.%{sover}
-%ghost %{_libdir}/libopencv_video.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_core.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_core.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_flann.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_flann.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_imgproc.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_imgproc.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_ml.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_ml.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_photo.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_photo.so.2.4
+%attr(755,root,root) %{_libdir}/libopencv_video.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_video.so.2.4
+
+%if %{with vtk}
+%files viz
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libopencv_viz.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libopencv_viz.so.2.4
+%endif
 
 %files devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libopencv_*.so
-%if %{with java}
-%exclude %{_libdir}/libopencv_java249.so
+# core
+%attr(755,root,root) %{_libdir}/libopencv_core.so
+%attr(755,root,root) %{_libdir}/libopencv_flann.so
+%attr(755,root,root) %{_libdir}/libopencv_imgproc.so
+%attr(755,root,root) %{_libdir}/libopencv_ml.so
+%attr(755,root,root) %{_libdir}/libopencv_photo.so
+%attr(755,root,root) %{_libdir}/libopencv_video.so
+# GUI/extensions (base package)
+%attr(755,root,root) %{_libdir}/libopencv_calib3d.so
+%attr(755,root,root) %{_libdir}/libopencv_contrib.so
+%attr(755,root,root) %{_libdir}/libopencv_features2d.so
+%attr(755,root,root) %{_libdir}/libopencv_gpu.so
+%attr(755,root,root) %{_libdir}/libopencv_highgui.so
+%attr(755,root,root) %{_libdir}/libopencv_legacy.so
+%attr(755,root,root) %{_libdir}/libopencv_nonfree.so
+%attr(755,root,root) %{_libdir}/libopencv_objdetect.so
+%if %{with opencl}
+%attr(755,root,root) %{_libdir}/libopencv_ocl.so
+%endif
+%attr(755,root,root) %{_libdir}/libopencv_stitching.so
+%attr(755,root,root) %{_libdir}/libopencv_superres.so
+%attr(755,root,root) %{_libdir}/libopencv_ts.so
+%attr(755,root,root) %{_libdir}/libopencv_videostab.so
+# viz
+%if %{with vtk}
+%attr(755,root,root) %{_libdir}/libopencv_viz.so
 %endif
 %{_includedir}/opencv
 %{_includedir}/opencv2
@@ -412,8 +484,8 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with java}
 %files -n java-opencv
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libopencv_java249.so
-%{_javadir}/opencv-249.jar
+%attr(755,root,root) %{_libdir}/libopencv_java%{jver}.so
+%{_javadir}/opencv-%{jver}.jar
 %{_javadir}/opencv.jar
 %endif
 
This page took 0.048174 seconds and 4 git commands to generate.