| Summary: | OpenCV cmake configuration broken | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | nucleo <alekcejk> |
| Component: | opencv | Assignee: | Rex Dieter <rdieter> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | hhorak, i, jmlich, karlthered, kwizart, nomis80, orion, rdieter |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | frei0r-plugins-1.4-1.fc20 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-12-14 03:22:19 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
Builds fine with opencv-2.4.6.1-1.fc20 -- First try at finding OpenCV... -- Great, found OpenCV on the first try. -- OpenCV Root directory is: /usr/lib/cmake/OpenCV -- OpenCV: Found version 2.4.6.1 (required: 2.4.5) The file OpenCVModules-releasewithdebinfo.cmake looks correct to me on x86_64:
OpenCVModules-releasewithdebinfo.cmake: IMPORTED_LOCATION_RELEASEWITHDEBINFO "${_IMPORT_PREFIX}/lib64/libopencv_core.so.2.4.7"
Unless _IMPORT_PREFIX is set to something else than /usr...
I'm not as at all comfortable with cmake mess, I've only tested freir0-plugins and vlc which doesn't rely on cmake.
Problem in libdir added twice /usr/lib/lib/libopencv_core.so.2.4.7. Maybe _IMPORT_PREFIX also have /lib? Building on x86_64 f20 gives similar but different error,
CMake Error at /lib64/cmake/OpenCV/OpenCVModules.cmake:108 (message):
The imported target "opencv_core" references the file
"/lib64/lib64/libopencv_core.so.2.4.7"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
"/lib64/cmake/OpenCV/OpenCVModules.cmake"
I suspect this has something to do with UsrMove and faulty relative path calculations.
orion, any insight/clues to the cmake bogosity going on here? After downgrading to opencv-2.4.6.1-1.fc20.x86_64 , I see the build still fail. Checking koji, the last successful digikam build used cmake-2.8.11.2-3.fc20 (and opencv-2.4.6.1-1.fc20) and now is failing with: cmake-2.8.12.1-1.fc20 (and opencv-2.4.6.1-1.fc20 or opencv-2.4.7-1.fc20) Seems something went bad between cmake-2.8.11.2-3 and cmake-2.8.12.1-1, reassigning to cmake (for now). Last successful build digikam-3.5.0-1.fc21 used cmake-2.8.12-1.fc21 and opencv-2.4.6.1-2.fc21 http://koji.fedoraproject.org/koji/buildinfo?buildID=470314 Changes after cmake-2.8.12-1.fc21 * Wed Nov 06 2013 Orion Poplawski <orion.com> - 2.8.12.1-1 - Update to 2.8.12.1 * Wed Oct 23 2013 Orion Poplawski <orion.com> - 2.8.12-3 - Remove UseQt4 automatic dependency adding * Thu Oct 10 2013 Orion Poplawski <orion.com> - 2.8.12-2 - Autoload cmake-mode in emacs (bug #1017779) I think the opencv cmake path munging is a source of possible problems:
#Cmake mess
mkdir -p $RPM_BUILD_ROOT%{_libdir}/cmake/OpenCV
mv $RPM_BUILD_ROOT%{_datadir}/OpenCV/*.cmake \
$RPM_BUILD_ROOT%{_libdir}/cmake/OpenCV
moving these .cmake files (back) to /usr/share/OpenCV/ or %_libdir/OpenCV/ and things work again.
(In reply to Rex Dieter from comment #9) > moving these .cmake files (back) to /usr/share/OpenCV/ or %_libdir/OpenCV/ > and things work again. We shouldn't use /usr/share since that would make opencv-devel multilib unclean, i.e. it wouldn't be possible to install 32bit and 64bit arch on one machine. So, in case %_libdir/OpenCV/ works, we should take this one. Yeah, don't ever move files in %install with cmake builds - you'll break things. Get cmake to install them in the desired location. Looks like these end up on OPENCV_CONFIG_INSTALL_PATH , which gets set with this ... interesting... logic:
math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
if(LIB_SUFFIX AND NOT SIZEOF_VOID_P_BITS EQUAL LIB_SUFFIX)
set(OPENCV_CONFIG_INSTALL_PATH lib${LIB_SUFFIX}/cmake/opencv)
else()
set(OPENCV_CONFIG_INSTALL_PATH share/OpenCV)
endif()
(where we know the former kinda doesn't work)
http://pkgs.fedoraproject.org/cgit/opencv.git/commit/?id=85dcc3a0ce55e5781fc670381996af2b43b38e8d %changelog * Mon Nov 18 2013 Rex Dieter <rdieter> 2.4.7-2 - OpenCV cmake configuration broken (#1031312) let's give this a try, http://koji.fedoraproject.org/koji/taskinfo?taskID=6195036 (In reply to Rex Dieter from comment #13) > http://koji.fedoraproject.org/koji/taskinfo?taskID=6195036 It builds now. -- First try at finding OpenCV... -- Great, found OpenCV on the first try. -- OpenCV Root directory is: /usr/lib/OpenCV -- OpenCV: Found version 2.4.7 (required: 2.4.5) New opencv build also needed for F20 update https://admin.fedoraproject.org/updates/FEDORA-2013-21444 frei0r-plugins-1.4-1.fc20, opencv-2.4.7-2.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/FEDORA-2013-21444/opencv-2.4.7-2.fc20,frei0r-plugins-1.4-1.fc20 Package frei0r-plugins-1.4-1.fc20, opencv-2.4.7-2.fc20: * should fix your issue, * was pushed to the Fedora 20 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing frei0r-plugins-1.4-1.fc20 opencv-2.4.7-2.fc20' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-21444/opencv-2.4.7-2.fc20,frei0r-plugins-1.4-1.fc20 then log in and leave karma (feedback). Can someone re add +1 to the update? We don't have too much time before f20 freeze. Thanks. frei0r-plugins-1.4-1.fc20, opencv-2.4.7-2.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report. |
Description of problem: digiKam build failed. Version-Release number of selected component (if applicable): opencv-2.4.7-1.fc21 Actual results: -- First try at finding OpenCV... CMake Error at /usr/lib/cmake/OpenCV/OpenCVModules.cmake:108 (message): The imported target "opencv_core" references the file "/usr/lib/lib/libopencv_core.so.2.4.7" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/cmake/OpenCV/OpenCVModules.cmake" but not all the files it references. Call Stack (most recent call first): /usr/lib/cmake/OpenCV/OpenCVConfig.cmake:44 (include) extra/libkface/CMakeLists.txt:61 (FIND_PACKAGE) -- Configuring incomplete, errors occurred! See also "/builddir/build/BUILD/digikam-3.5.0/i686-redhat-linux-gnu/CMakeFiles/CMakeOutput.log". See also "/builddir/build/BUILD/digikam-3.5.0/i686-redhat-linux-gnu/CMakeFiles/CMakeError.log". RPM build errors: