Bug 1878320
| Summary: | opencv-core has huge dependency set | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Adam Williamson <awilliam> |
| Component: | opencv | Assignee: | Nicolas Chauvet (kwizart) <kwizart> |
| Status: | ASSIGNED --- | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 39 | CC: | andrew, hhorak, jkucera, jmlich83, jridky, karlthered, kwizart, npettas, pkajaba, rakesh.pandit, sergio, viktor.vix.jancik |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Adam Williamson
2020-09-11 23:08:07 UTC
well, everything seems to link against openblas so getting that out might be hard, but vtk separates out easily. Only libopencv_viz is linked against it. debian seems to give just about every library its own subpackage: https://packages.debian.org/source/stable/opencv other deps I noted: * only libopencv_text uses libtesseract * only libopencv_ccalib , libopencv_cvv and libopencv_highgui use Qt5 * only libopencv_videostab uses libClp and libCoinUtils I saw your message on the mailing list and unfortunately, I don't get why gst plugin that uses opencv should be on the default fedora install in the first step ? OpenCV has an outrageous mis-design WRT runtime dependencies: (as referenced in the spec: https://github.com/opencv/opencv/issues/7001), this is known. On my side I've dropped opencv support for some "core" multimedia dependencies on 3rd part (ffmpeg) for this very much reason. Whatever the dependency computation that can be made for a given opencv release, it will be trashed on the next update. So my advice is to drop the gst plugin using opencv as a sub-package and enforce it not into the default Fedora install set of packages. Is that good for you ? I mean, they're two different issues. We already changed the gstreamer plugins package, but plenty of other things use opencv and so its giant dep tree affect them. I already suggested a pretty simple change here: just split each openxv lib into its own sub package, so other things that build against opencv only pull in the library sub package(s) and associated deps they actually need. If something only links against the core lib, for e.g., this would save it pulling in qt5 and java and vtk and all sorts of other things. Is there any reason we can't do that? I don't know how many issues to count for this problem, but one other aspect of the same issue is that some opencv users links to all opencv core libraries no matter of which one they really use (mainly because they use the broken opencv.pc/cmake). So splitting into sub-package without fixing theses will be pointless in theses cases. Note that I'm open with improvement with further sub-packaging opencv libs. I'm not yet sure to prefer sorting libs in sub-packages by dependencies cost over having a each single lib it own sub-package. Well, I just did a quick dumb check on this. Here's the results: PACKAGE REQUIRING LIBOPENCV_CORE DOES IT REQUIRE ALL OPENCV LIBS? OpenImageIO NO YafaRay-lib NO digikam-libs NO frei0r-plugins-opencv NO gmic YES libfreenect-opencv NO lives NO nomacs NO nomacs-plugins NO opencv NO opencv-contrib NO opencv-devel YES opencv-java NO os-autoinst NO performous NO php-facedetect YES player NO python3-opencv NO (most, but probably needs to) qimgv NO simarrange YES siril NO waifu2x-converter-cpp NO so, there's four packages that could probably be improved, but the significant majority of packages that require opencv_core do not require all the other libs too (they mostly require only 2-4 of them). this commit [1] should change a lot of dependencies because many modules change from core to contrib and vice-versa [1] https://src.fedoraproject.org/rpms/opencv/c/0a5887a0d1dd62efec577ab7daa161e525ea5af2?branch=rawhide This message is a reminder that Fedora 33 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '33'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 33 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. This message is a reminder that Fedora 33 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '33'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 33 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. I re-ran the mock test on current Rawhide. Installing opencv-core on top of a clean Rawhide mock root pulls in: CharLS SuperLU alsa-lib armadillo arpack avahi-libs cairo cdparanoia-libs cfitsio cmake-filesystem crypto-policies-scripts cups-libs dbus-libs dejavu-sans-fonts expat flexiblas flexiblas-netlib flexiblas-netlib64 flexiblas-openblas-openmp flexiblas-openblas-openmp64 fontconfig fonts-filesystem freetype freexl fribidi gdal-libs gdcm geos giflib glib2 glx-utils gnutls graphene graphite2 gstreamer1 gstreamer1-plugins-base harfbuzz hdf-libs hdf5 hwdata imath intel-mediasdk iso-codes jasper-libs jbigkit-libs json-c langpacks-core-font-en lcms2 libICE libSM libX11 libX11-common libX11-xcb libXau libXext libXfixes libXft libXrender libXv libXxf86vm libaec libdap libdatrie libdc1394 libdrm libevdev libevent libgeotiff libgfortran libglvnd libglvnd-egl libglvnd-glx libglvnd-opengl libgta libgudev libicu libinput libjpeg-turbo libkml libogg libpciaccess libpng libpq libquadmath libraw1394 librttopo libspatialite libthai libtheora libtiff libtool-ltdl libunwind libusb1 libva libvisual libvorbis libwacom libwacom-data libwayland-client libwayland-cursor libwayland-egl libwayland-server libwebp libxcb libxkbcommon libxkbcommon-x11 libxshmfence mariadb-connector-c mariadb-connector-c-config mesa-filesystem mesa-libEGL mesa-libGL mesa-libgbm mesa-libglapi minizip mpdecimal mtdev netcdf nettle nspr nss nss-softokn nss-softokn-freebl nss-sysinit nss-util ogdi openblas openblas-openmp openblas-openmp64 openblas-serial openexr-libs openjpeg2 opus orc pango pcre2-utf16 pixman poppler poppler-data proj protobuf python-pip-wheel python-setuptools-wheel python3 python3-libs qt-settings qt5-qtbase qt5-qtbase-common qt5-qtbase-gui tbb unixODBC uriparser xcb-util xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xerces-c xkeyboard-config xml-common It's a bit better than before - 160 things vs. 214 before. But it still seems pretty long and includes a lot of stuff that could be avoided by subpackaging the libs. comparing from first list to second we see that have lot of removes @@ -2,25 +2,16 @@ alsa-lib armadillo arpack avahi-libs -byte-buddy -byte-buddy-agent cairo cdparanoia-libs cfitsio CharLS -cliquer-libs cmake-filesystem -coin-or-Cbc -coin-or-Cgl -coin-or-Clp -coin-or-CoinUtils -coin-or-Osi -copy-jdk-configs crypto-policies-scripts cups-libs dbus-libs dejavu-sans-fonts -double-conversion +expat flexiblas flexiblas-netlib flexiblas-netlib64 @@ -32,52 +23,37 @@ freetype freexl fribidi gdal-libs -gdbm-libs gdcm -gecode geos giflib glib2 -glpk glx-utils gnutls graphene graphite2 -gsl gstreamer1 gstreamer1-plugins-base harfbuzz -hawtjni-runtime hdf5 hdf-libs hwdata -ilmbase +imath +intel-mediasdk iso-codes -jacop -jansi -jansi-native jasper-libs -java-11-openjdk-headless -javapackages-filesystem -javapackages-tools jbigkit-libs -jline json-c -jsoncpp langpacks-core-font-en lcms2 -leptonica libaec libdap libdatrie libdc1394 libdrm -libedit libevdev libevent libgeotiff libgfortran -libGLEW libglvnd libglvnd-egl libglvnd-glx @@ -89,20 +65,21 @@ libicu libinput libjpeg-turbo libkml -libnauty libogg libpciaccess libpng libpq libquadmath libraw1394 +librttopo libSM libspatialite libthai libtheora libtiff +libtool-ltdl libunwind -libusbx +libusb1 libva libvisual libvorbis @@ -118,7 +95,6 @@ libX11-common libX11-xcb libXau libxcb -libXdamage libXext libXfixes libXft @@ -126,18 +102,8 @@ libxkbcommon libxkbcommon-x11 libXrender libxshmfence -libXt libXv libXxf86vm -lksctp-tools -llvm-libs -Lmod -lua -lua-filesystem -lua-json -lua-lpeg -lua-posix -lua-term mariadb-connector-c mariadb-connector-c-config mesa-filesystem @@ -145,13 +111,9 @@ mesa-libEGL mesa-libgbm mesa-libGL mesa-libglapi -mesa-libOSMesa -metis -mockito -mp +minizip +mpdecimal mtdev -MUMPS -MUMPS-common netcdf nettle nspr @@ -160,17 +122,13 @@ nss-softokn nss-softokn-freebl nss-sysinit nss-util -objectweb-asm -objenesis ogdi openblas openblas-openmp openblas-openmp64 openblas-serial -opencv-contrib -OpenEXR-libs +openexr-libs openjpeg2 -opentest4j opus orc pango @@ -178,11 +136,8 @@ pcre2-utf16 pixman poppler poppler-data -procps-ng proj -proj-datumgrid protobuf -pugixml python3 python3-libs python-pip-wheel @@ -191,19 +146,10 @@ qt5-qtbase qt5-qtbase-common qt5-qtbase-gui qt-settings -scala -scotch -suitesparse SuperLU tbb -tcl -tesseract -tesseract-langpack-eng -tesseract-tessdata-doc -tzdata-java unixODBC uriparser -vtk xcb-util xcb-util-image This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle. Changing version to 36. This message is a reminder that Fedora Linux 36 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora Linux 36 on 2023-05-16. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a 'version' of '36'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, change the 'version' to a later Fedora Linux version. Note that the version field may be hidden. Click the "Show advanced fields" button if you do not see it. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora Linux 36 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora Linux, you are encouraged to change the 'version' to a later version prior to this bug being closed. This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle. Changing version to 39. |