New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #32528 (new enhancement)

Opened 18 months ago

Last modified 7 months ago

opencv @2.3.1a fixes and improvements: eigen, ffmpeg, docs, opengl, python, shared+static, tbb

Reported by: marin.saric@… Owned by: stromnov@…
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: haspatch Cc: marin@…, raphael@…
Port: opencv

Description

I probably left something out, but here's a list of fixes I can come up with right now:

Fixes:

  • Fix FFmpeg dependencies: (a hidden dependency on orc)
  • Fix FFmpeg dependencies: rely on ffmpeg port to find the dependent ports
  • Fix the search for Thread Building Blocks: rely on proper CMake prefix instead of hardcoding the TBB path
  • Python: Python is run during CMake, make sure the correct version of Python is run
  • Python: Interfaces never built if the right version of numpy was not present. Fixed.
  • Remove hardcoding the MacPorts Python path through reinplace, use the already available cache variables instead
  • The C/C++ sample code was built: sample code executable only install on Win32
  • The C/C++ sample code never made it into destroot
  • Fix uppercase/lowercase differences in path componets (breaks on non-HFS volumes): ${prefix}/opencv and ${prefix}/OpenCV both used for path. Use OpenCV (per CMake guidelines)
  • Find the right version of Sphinx based on the version of python installed (build-sphinx-python.ver)
  • The Python code never made it into destroot
  • The build_all.sh script to run/compile example code did not recognize cpp files if listed as a paramter
  • The build_all.sh script worked incorrectly if a directory contained zero c files or zero cpp files
  • The build_all.sh script wasn't present in the cpp directory
  • The sample code permissions were wronged (read-only for user, build_all.sh not executable)
  • The documentation was never installed
  • Remove hardcoding linker flags such as "-lbz2", etc. Rely on CMake to do the right thing
  • Remove JPEG2000 during static build (due to a collision with OpenJPEG used by FFmpeg)

Enhancements:

  • Link against Eigen2/Eigen3
  • Build both the dynamic and static versions of OpenCV
  • Allow the user to strip down OpenCV by removing dependencies on ffmpeg, tbb, eigen, etc. etc. through more variants
  • Enable OpenGL extensions if QT4 is on.

Tested with and without QT4, with and without full docs, with and without tbb in static and dynamic builds, c, c++ and python sample code run, tested building full docs.

Attachments

Portfile-opencv.diff (14.7 KB) - added by marin.saric@… 18 months ago.
OpenCV 2.3.1a fixed Portfile
patch-CMakeLists.txt.diff (3.1 KB) - added by marin.saric@… 18 months ago.
patch-modules_highgui_CMakeLists.txt.diff (526 bytes) - added by marin.saric@… 18 months ago.
patch-OpenCVConfig.cmake.in.diff (1.5 KB) - added by marin.saric@… 18 months ago.
patch-samples_c_build_all.sh.diff (1.1 KB) - added by marin.saric@… 18 months ago.
patch-samples_c_CMakeLists.txt.diff (1020 bytes) - added by marin.saric@… 18 months ago.
patch-samples_CMakeLists.txt.diff (672 bytes) - added by marin.saric@… 18 months ago.
patch-samples_cpp_CMakeLists.txt.diff (562 bytes) - added by marin.saric@… 18 months ago.

Change History

Changed 18 months ago by marin.saric@…

OpenCV 2.3.1a fixed Portfile

Changed 18 months ago by marin.saric@…

Changed 18 months ago by marin.saric@…

Changed 18 months ago by marin.saric@…

Changed 18 months ago by marin.saric@…

Changed 18 months ago by marin.saric@…

Changed 18 months ago by marin.saric@…

Changed 18 months ago by marin.saric@…

comment:1 Changed 13 months ago by raphael@…

Sorry, I just saw your improvements to OpenCV after updating it to version 2.4.0 in r93038. I think that I addressed only some of your fixes and enhancements. Do you still want to take maintainership for OpenCV and could you provide patches for the new version?

comment:2 Changed 13 months ago by raphael@…

  • Cc raphael@… added

Cc Me!

comment:3 Changed 13 months ago by marin@…

  • Owner changed from macports-tickets@… to marin@…
  • Status changed from new to assigned

comment:4 follow-up: ↓ 5 Changed 13 months ago by marin@…

I'll try to merge these changes with 2.4.0. I'll need to re-verify everything and validate building all the variants. Its just sad for this port to hang around with nomaintainer, I'd love to share maintenance with someone else or even hand it over..

comment:5 in reply to: ↑ 4 Changed 13 months ago by raphael@…

Replying to marin@…:

I'll try to merge these changes with 2.4.0. I'll need to re-verify everything and validate building all the variants.

I think, it would be better to strip down the number of variants. The only variants I would keep would be qt4, doc (because of the texlive dependencies) and the python variants. I don't know if building static libraries is really useful. A port with fewer variants would be much shorter and easier to maintain.

Its just sad for this port to hang around with nomaintainer, I'd love to share maintenance with someone else or even hand it over..

You can add me as co-maintainer and make the port openmaintainer.

comment:6 Changed 7 months ago by jmr@…

  • Cc marin@… added
  • Owner changed from marin@… to stromnov@…
  • Status changed from assigned to new
Note: See TracTickets for help on using tickets.