Project

General

Profile

Bug #3438

[opencv][gst-plugin-opencv]: undefined reference to `cblas_cgemm' (also `cblas_{d,s,z}gemm')

kranos86 - 2 months ago - . Updated 20 days ago.

Status:
confirmed
Priority:
bug
Assignee:
% Done:

100%


Description

  • CPU architecture: x86_64
  • steps to reproduce:
    1) # pacman -Syu gst-plugin-gtk
  • expected result:
    I expected gst-plugin-gtk to be upgraded from 1.20.5-5 to 1.22.0-3.
  • actual result:
    Instead, pacman produces the following error:
    warning: cannot resolve "gst-plugins-bad-libs=1.22.0", a dependency of "gst-plugin-gtk"

    This is because gst-plugins-bad hasn't been updated in almost two years, still at 1.18.3-2 in the repos instead of 1.22.0-3 like the other gst-plugins- packages. gst-plugins-bad was reported as out of date almost one year ago.

See also https://labs.parabola.nu/issues/3296 .


Subtasks

Bug #3441: dino: broken on upgradefixedbill-auger

Actions

Related issues

Related to Packages - Bug #3296: [gstreamer-vaapi] Depends on gst-plugins-bad-libs=1.20.3, not availablefixed

Actions

History

#1

Updated by bill-auger 2 months ago

  • Related to Bug #3296: [gstreamer-vaapi] Depends on gst-plugins-bad-libs=1.20.3, not available added
#2

Updated by bill-auger 2 months ago

  • Status changed from unconfirmed to confirmed
#3

Updated by bill-auger about 2 months ago

  • Assignee set to bill-auger
  • Status changed from confirmed to in progress

'gst-plugins-bad' was previously a separate VCS upstream, and a separate PKGBUILD - now it is a split-package of 'gsteramer'; which made the merge rather tedious - i tried to avoid packaging all of the split packages - it would surely be easier to maintain that way; but to do that, all of the split packages would need to be blacklisted

after some work, i was able to make it compile only the needed modules, while keeping the PKGBUILD diffs as minimal as possible - the files list is not exactly the same as the previous version; but maybe that is to be expected

left is 'gst-plugins-bad' 1.18.3 - right is 'gst-plugins-bad' 1.22.0

$ diff --side-by-side <(pkgfile -l gst-plugins-bad | cut -d '    ' -f 2) \
                      <(pacman -Ql gst-plugins-bad | cut -d ' ' -f 2)
/usr/                                             /usr/
/usr/lib/                                         /usr/lib/
/usr/lib/gstreamer-1.0/                           /usr/lib/gstreamer-1.0/
                                                > /usr/lib/gstreamer-1.0/libgstaes.so
/usr/lib/gstreamer-1.0/libgstaom.so               /usr/lib/gstreamer-1.0/libgstaom.so
/usr/lib/gstreamer-1.0/libgstassrender.so         /usr/lib/gstreamer-1.0/libgstassrender.so
/usr/lib/gstreamer-1.0/libgstavtp.so              /usr/lib/gstreamer-1.0/libgstavtp.so
/usr/lib/gstreamer-1.0/libgstbs2b.so              /usr/lib/gstreamer-1.0/libgstbs2b.so
/usr/lib/gstreamer-1.0/libgstbz2.so               /usr/lib/gstreamer-1.0/libgstbz2.so
/usr/lib/gstreamer-1.0/libgstchromaprint.so       /usr/lib/gstreamer-1.0/libgstchromaprint.so
/usr/lib/gstreamer-1.0/libgstclosedcaption.so     /usr/lib/gstreamer-1.0/libgstclosedcaption.so
/usr/lib/gstreamer-1.0/libgstcolormanagement.so   /usr/lib/gstreamer-1.0/libgstcolormanagement.so
/usr/lib/gstreamer-1.0/libgstcurl.so              /usr/lib/gstreamer-1.0/libgstcurl.so
                                                > /usr/lib/gstreamer-1.0/libgstdash.so
/usr/lib/gstreamer-1.0/libgstdc1394.so            /usr/lib/gstreamer-1.0/libgstdc1394.so
/usr/lib/gstreamer-1.0/libgstde265.so             /usr/lib/gstreamer-1.0/libgstde265.so
/usr/lib/gstreamer-1.0/libgstdtls.so              /usr/lib/gstreamer-1.0/libgstdtls.so
/usr/lib/gstreamer-1.0/libgstdtsdec.so            /usr/lib/gstreamer-1.0/libgstdtsdec.so
/usr/lib/gstreamer-1.0/libgstfaad.so              /usr/lib/gstreamer-1.0/libgstfaad.so
/usr/lib/gstreamer-1.0/libgstfdkaac.so            /usr/lib/gstreamer-1.0/libgstfdkaac.so
/usr/lib/gstreamer-1.0/libgstfluidsynthmidi.so    /usr/lib/gstreamer-1.0/libgstfluidsynthmidi.so
/usr/lib/gstreamer-1.0/libgstgme.so               /usr/lib/gstreamer-1.0/libgstgme.so
                                                > /usr/lib/gstreamer-1.0/libgstgsm.so
/usr/lib/gstreamer-1.0/libgsthls.so               /usr/lib/gstreamer-1.0/libgsthls.so
/usr/lib/gstreamer-1.0/libgstkate.so              /usr/lib/gstreamer-1.0/libgstkate.so
/usr/lib/gstreamer-1.0/libgstladspa.so            /usr/lib/gstreamer-1.0/libgstladspa.so
                                                > /usr/lib/gstreamer-1.0/libgstldac.so
/usr/lib/gstreamer-1.0/libgstlv2.so               /usr/lib/gstreamer-1.0/libgstlv2.so
/usr/lib/gstreamer-1.0/libgstmicrodns.so          /usr/lib/gstreamer-1.0/libgstmicrodns.so
/usr/lib/gstreamer-1.0/libgstmms.so             <
/usr/lib/gstreamer-1.0/libgstmodplug.so           /usr/lib/gstreamer-1.0/libgstmodplug.so
/usr/lib/gstreamer-1.0/libgstmpeg2enc.so          /usr/lib/gstreamer-1.0/libgstmpeg2enc.so
/usr/lib/gstreamer-1.0/libgstmplex.so             /usr/lib/gstreamer-1.0/libgstmplex.so
/usr/lib/gstreamer-1.0/libgstmusepack.so          /usr/lib/gstreamer-1.0/libgstmusepack.so
/usr/lib/gstreamer-1.0/libgstneonhttpsrc.so       /usr/lib/gstreamer-1.0/libgstneonhttpsrc.so
/usr/lib/gstreamer-1.0/libgstofa.so             <
/usr/lib/gstreamer-1.0/libgstopenal.so            /usr/lib/gstreamer-1.0/libgstopenal.so
                                                > /usr/lib/gstreamer-1.0/libgstopenaptx.so
/usr/lib/gstreamer-1.0/libgstopenexr.so           /usr/lib/gstreamer-1.0/libgstopenexr.so
/usr/lib/gstreamer-1.0/libgstopenjpeg.so          /usr/lib/gstreamer-1.0/libgstopenjpeg.so
                                                > /usr/lib/gstreamer-1.0/libgstopenmpt.so
/usr/lib/gstreamer-1.0/libgstopusparse.so         /usr/lib/gstreamer-1.0/libgstopusparse.so
                                                > /usr/lib/gstreamer-1.0/libgstqroverlay.so
/usr/lib/gstreamer-1.0/libgstresindvd.so          /usr/lib/gstreamer-1.0/libgstresindvd.so
/usr/lib/gstreamer-1.0/libgstrsvg.so              /usr/lib/gstreamer-1.0/libgstrsvg.so
/usr/lib/gstreamer-1.0/libgstrtmp.so              /usr/lib/gstreamer-1.0/libgstrtmp.so
/usr/lib/gstreamer-1.0/libgstsbc.so               /usr/lib/gstreamer-1.0/libgstsbc.so
/usr/lib/gstreamer-1.0/libgstsctp.so              /usr/lib/gstreamer-1.0/libgstsctp.so
/usr/lib/gstreamer-1.0/libgstsmoothstreaming.so   /usr/lib/gstreamer-1.0/libgstsmoothstreaming.so
/usr/lib/gstreamer-1.0/libgstsndfile.so           /usr/lib/gstreamer-1.0/libgstsndfile.so
/usr/lib/gstreamer-1.0/libgstsoundtouch.so        /usr/lib/gstreamer-1.0/libgstsoundtouch.so
/usr/lib/gstreamer-1.0/libgstspandsp.so           /usr/lib/gstreamer-1.0/libgstspandsp.so
/usr/lib/gstreamer-1.0/libgstsrt.so               /usr/lib/gstreamer-1.0/libgstsrt.so
/usr/lib/gstreamer-1.0/libgstsrtp.so              /usr/lib/gstreamer-1.0/libgstsrtp.so
/usr/lib/gstreamer-1.0/libgstsvthevcenc.so        /usr/lib/gstreamer-1.0/libgstsvthevcenc.so
/usr/lib/gstreamer-1.0/libgstteletext.so          /usr/lib/gstreamer-1.0/libgstteletext.so
                                                > /usr/lib/gstreamer-1.0/libgsttimecode.so
/usr/lib/gstreamer-1.0/libgstttmlsubs.so          /usr/lib/gstreamer-1.0/libgstttmlsubs.so
/usr/lib/gstreamer-1.0/libgstva.so              <
/usr/lib/gstreamer-1.0/libgstvulkan.so          <
/usr/lib/gstreamer-1.0/libgstwaylandsink.so     <
/usr/lib/gstreamer-1.0/libgstwebp.so              /usr/lib/gstreamer-1.0/libgstwebp.so
/usr/lib/gstreamer-1.0/libgstwebrtc.so            /usr/lib/gstreamer-1.0/libgstwebrtc.so
/usr/lib/gstreamer-1.0/libgstwebrtcdsp.so         /usr/lib/gstreamer-1.0/libgstwebrtcdsp.so
/usr/lib/gstreamer-1.0/libgstwildmidi.so          /usr/lib/gstreamer-1.0/libgstwildmidi.so
/usr/lib/gstreamer-1.0/libgstx265.so              /usr/lib/gstreamer-1.0/libgstx265.so
/usr/lib/gstreamer-1.0/libgstzbar.so              /usr/lib/gstreamer-1.0/libgstzbar.so
/usr/lib/gstreamer-1.0/libgstzxing.so             /usr/lib/gstreamer-1.0/libgstzxing.so

#4

Updated by bill-auger about 2 months ago

  • Status changed from in progress to fixed

'gst-plugin-opencv' was excluded; because 'opencv' will not compile - this should probably have it's own bug report

'gst-plugins-opencv'
/usr/include/opencv4/opencv2/tracking/tracking_internals.hpp:18:10: fatal error: opencv2/video/detail/tracking.private.hpp: No such file or directory
'opencv'
undefined reference to `cblas_cgemm'
undefined reference to `cblas_dgemm'
undefined reference to `cblas_sgemm'
undefined reference to `cblas_zgemm'

the current situation with 'cblas' and 'lapack' is messy - there are multiple bug reports open in arch about them - there are multiple providers of 'cblas' - i tried 'openblas' instead but IIRC, it had the same problem - one BR claims that 'openblas-lapack' (AUR) fixes the problem; but that would not compile either

'openblas-lapack'
make[1]: *** No rule to make target '../libopenblas_bulldozerp-r0.3.21.a', needed by '../libopenblas_bulldozerp-r0.3.21.so'.  Stop.
#5

Updated by eliotime3000 22 days ago

gst-plugins-gtk package has been updated to the version 22.1 and that dependence is strongly tied-up to the gst-plugins-gtk package. However, there's no direct bug reports to that specific package related to that specific version upgrade.

https://github.com/archlinux/svntogit-packages/commit/6fca398a20bf4ac25b04306d7c33aba1e7b8471d
https://github.com/archlinux/svntogit-packages/commit/d4d3a429e86414a72770ecf4cf4817285cad0b44

#6

Updated by bill-auger 20 days ago

this is that specific bug report, from the last time when gstreamer was upgraded - 'gst-plugins-bad' is pinned to the same version of gstreamer - i explained why previously - 'gst-plugins-bad' needs to be upgraded every time gstreamer is upgraded - just report the conflict, as you did now, so that it gets attention promptly

the conflict is desirable - that is pacman doing it's job, by protecting other programs from breaking, which is likely to happen, if all of the gstreamer packages are not upgraded together

#7

Updated by bill-auger 20 days ago

  • Status changed from fixed to confirmed
  • Subject changed from [gst-plugin-gtk] depends on gst-plugins-bad-libs=1.22.0, not available to [opencv][gst-plugin-opencv]: undefined reference to `cblas_cgemm' (also `cblas_{d,s,z}gemm')

ima re-open this, because the opencv plugin still will not compile, because 'opencv' still will not compile, due to the 'blas' confusion

Also available in: Atom PDF