Bug 1114377 (opencv-2.4.9) - opencv-2.4.9 available
Summary: opencv-2.4.9 available
Keywords:
Status: CLOSED EOL
Alias: opencv-2.4.9
Product: Fedora
Classification: Fedora
Component: opencv
Version: 20
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Nicolas Chauvet (kwizart)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1114375 (view as bug list)
Depends On:
Blocks: 1119036 1123841
TreeView+ depends on / blocked
 
Reported: 2014-06-29 19:40 UTC by Rex Dieter
Modified: 2015-06-30 01:03 UTC (History)
11 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2015-06-30 01:03:53 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
update to 2.4.9 (4.43 KB, patch)
2014-06-29 19:42 UTC, Rex Dieter
no flags Details | Diff
rpmsodiff between 2.4.6.1-1.fc20.x86_64 and 2.4.7-6.fc20.x86_64 (15.83 KB, text/plain)
2014-12-02 22:54 UTC, Orion Poplawski
no flags Details
rpmsodiff between 2.4.7-6.fc20.x86_64 and 2.4.9-4.fc20.x86_6 (15.19 KB, text/plain)
2014-12-02 22:58 UTC, Orion Poplawski
no flags Details
update to opencv-2.4.11 (2.70 KB, patch)
2015-05-11 22:01 UTC, Sergio Basto
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1230078 0 unspecified CLOSED OpenCV 3.1.0 is available 2021-02-22 00:41:40 UTC

Internal Links: 1230078

Description Rex Dieter 2014-06-29 19:40:24 UTC
opencv-2.4.9 is available (for awhile), and seems to be a requirement for newer versions of digikam.

Looks like the update should be straight forward, only one patch (ts_static) patch needs rebasing.

I've got it prep'd, and did a scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=7088732

Comment 1 Rex Dieter 2014-06-29 19:42:04 UTC
Created attachment 913205 [details]
update to 2.4.9

Comment 2 Rex Dieter 2014-06-29 19:42:37 UTC
(approximate patch anyway, it doesnt include new/cleaned sources)

Comment 3 nucleo 2014-06-30 08:05:50 UTC
*** Bug 1114375 has been marked as a duplicate of this bug. ***

Comment 5 Nicolas Chauvet (kwizart) 2014-06-30 16:37:20 UTC
Not for F20 in the same update.
Please let the update settle in devel,then I will revisit the update for F-20.
(not yet looked at opencv git at this step - but uptream isn't always at keeping ABI)

Comment 6 Nicolas Chauvet (kwizart) 2014-06-30 16:41:25 UTC
Rex, your patch miss the rebased ts_static
I've only limited time to check.
(will check tomorrow).

Comment 7 Rex Dieter 2014-06-30 16:45:57 UTC
I think bugzilla may have munged it. I'll upload things to fedorapeople:

Here's the pristine patch:
http://rdieter.fedorapeople.org/rpms/opencv/0001-2.4.9.patch

with all of .spec, .src.rpm, patches:
http://rdieter.fedorapeople.org/rpms/opencv/

Comment 8 Nicolas Chauvet (kwizart) 2014-07-03 12:47:54 UTC
Fixed in Rawhide,

@Rex, there are lot of cmake patches from you (IIRC), can you help upstreaming them in github ?

Comment 9 Rex Dieter 2014-07-03 14:35:46 UTC
Only cmake_paths.patch is from me, opencv-pkgcmake.patch predates my involvement, but both should be upstreamable with a little extra work.

I've never done the github workflow before, but I should learn sooner or later.  So yeah, eventually.

Comment 10 nucleo 2014-07-13 12:23:48 UTC
What about update for F20?

Comment 11 nucleo 2014-07-28 12:26:26 UTC
Digikam needs to be updated to 4.1.0 in F20 to fix at least bug 1123841, so please update opencv to 2.4.9.

Comment 12 Vern 2014-08-08 02:26:21 UTC
Now on to Digikam 4.2.0, more essential bug fixes and still waiting on opencv 2.4.9.  Please provide the update for F20, not just F21.  Thanks!

Comment 13 nucleo 2014-08-10 21:21:41 UTC
Yet one bug 1128494 fixed in digiKam 4.2.0, but it can't be built because of old opencv in F20.

Comment 14 Sergio Basto 2014-09-21 19:07:28 UTC
Hi, I just check openv-2.4.9 and openv-2.4.7 provides same .so versions, so no soname bump , it is safe put in Fedora 20 , and it is needed for not hack digikam 

rpm -q opencv --provides
libopencv_calib3d.so.2.4()(64bit)
libopencv_contrib.so.2.4()(64bit)
libopencv_features2d.so.2.4()(64bit)
libopencv_highgui.so.2.4()(64bit)
libopencv_legacy.so.2.4()(64bit)
libopencv_objdetect.so.2.4()(64bit)
libopencv_ocl.so.2.4()(64bit)
libopencv_stitching.so.2.4()(64bit)
libopencv_superres.so.2.4()(64bit)
libopencv_ts.so.2.4()(64bit)
libopencv_videostab.so.2.4()(64bit)
opencv = 2.4.9-1.fc20
opencv(x86-64) = 2.4.9-1.fc20

and 
libopencv_calib3d.so.2.4()(64bit)
libopencv_contrib.so.2.4()(64bit)
libopencv_features2d.so.2.4()(64bit)
libopencv_highgui.so.2.4()(64bit)
libopencv_legacy.so.2.4()(64bit)
libopencv_objdetect.so.2.4()(64bit)
libopencv_ocl.so.2.4()(64bit)
libopencv_stitching.so.2.4()(64bit)
libopencv_superres.so.2.4()(64bit)
libopencv_ts.so.2.4()(64bit)
libopencv_videostab.so.2.4()(64bit)
opencv = 2.4.7-6.fc20
opencv(x86-64) = 2.4.7-6.fc20

Comment 15 Orion Poplawski 2014-12-01 19:13:21 UTC
http://upstream.rosalinux.ru/versions/opencv.html shows updates as compatible.  Can we get an F20 update now please?

Comment 16 Sergio Basto 2014-12-02 19:08:22 UTC
(In reply to Orion Poplawski from comment #15)
> http://upstream.rosalinux.ru/versions/opencv.html shows updates as
> compatible.  Can we get an F20 update now please?

I agree with Orion , I request commit access to do update  myself  ... 

Thanks,

Comment 17 Nicolas Chauvet (kwizart) 2014-12-02 21:06:50 UTC
(In reply to Sergio Monteiro Basto from comment #16)
> (In reply to Orion Poplawski from comment #15)
> > http://upstream.rosalinux.ru/versions/opencv.html shows updates as
> > compatible.  Can we get an F20 update now please?

Still rpmsodiff exbibits many removed symbols despite the SONAME is the same. I still consider opencv updates (even minor) as unsafe in a release, specially as critical multimedia component rely on it (ffmpeg-libs, many others from known third parties).

If one could make a patch that would hide the "internally used symbols" from the rpmsodiff computation, I may consider a version update. But until then I prefer to focus on atomic backports.

So if you can find the commit that fix your issue, I could agree to apply.

Last, I'm totally open to co-maintainer advices based on contributions
(such as updating and testing opencv 2.4.10.1 in devel).

Comment 18 Nicolas Chauvet (kwizart) 2014-12-02 21:11:00 UTC
Would this release fix the issue ?
https://github.com/Itseez/opencv/archive/2.4.7.2.tar.gz

Comment 19 Sergio Basto 2014-12-02 21:27:49 UTC
The main problem (for me) is Digikam 4.1+ that requires opencv 2.4.9. 
As I don't use or test opencv much, I can't give an valid opinion .

but http://upstream.rosalinux.ru/versions/opencv.html says from 2.4.7 to 2.4.8 added 5 symbols and none removed 
from 2.4.8 to 2.4.9 none added none removed , only 3 symbol problem low  

http://upstream.rosalinux.ru/compat_reports/opencv/2.4.8_to_2.4.9/abi_compat_report.html#Symbol_Problems_Low

Comment 20 Orion Poplawski 2014-12-02 22:54:42 UTC
Created attachment 963926 [details]
rpmsodiff between 2.4.6.1-1.fc20.x86_64 and 2.4.7-6.fc20.x86_64

Haven't played much with rpmsodiff before.  Just for grins, see attached full report between 2.4.6.1-1.fc20.x86_64 and 2.4.7-6.fc20.x86_64 which shows some removals:

libopencv_calib3d.so.2.4:
        2 symbols removed
W _ZSt19__move_median_firstIN9__gnu_cxx17__normal_iteratorIPSt4pairIfiESt6vectorIS3_SaIS3_EEEEPFb
RKS3_SA_EEvT_SD_SD_T0_
W _ZSt19__move_median_firstIN9__gnu_cxx17__normal_iteratorIPSt4pairIifESt6vectorIS3_SaIS3_EEEEPFb
RKS3_SA_EEvT_SD_SD_T0_

libopencv_features2d.so.2.4:
        2 symbols removed
W _ZSt19__move_median_firstIN9__gnu_cxx17__normal_iteratorIP4SIdxSt6vectorIS2_SaIS2_EEEEEvT_S8_S8
_
W _ZSt19__move_median_firstIN9__gnu_cxx17__normal_iteratorIPN2cv6DMatchESt6vectorIS3_SaIS3_EEEEEv
T_S9_S9_

libopencv_objdetect.so.2.4:
        1 symbols removed
W _ZSt19__move_median_firstIN9__gnu_cxx17__normal_iteratorIPN2cv7linemod5MatchESt6vectorIS4_SaIS4
_EEEEEvT_SA_SA_

libopencv_stitching.so.2.4:
       1 symbols removed
W _ZSt19__move_median_firstIN9__gnu_cxx17__normal_iteratorIPSt4pairImmESt6vectorIS3_SaIS3_EEEEN2c
v6detail12DpSeamFinder13ImagePairLessEEvT_SD_SD_T0_

libopencv_ts.so.2.4:
        3 symbols removed
W _ZN2cv9ExceptionC1ERKS0_
W _ZN2cv9ExceptionC2ERKS0_
W _ZN7testing15AssertionResultlsIA8_cEERS0_RKT_

But upstream-tracker show no symbol removals between those versions.  I wonder what is different here.

Comment 21 Orion Poplawski 2014-12-02 22:58:38 UTC
Created attachment 963927 [details]
rpmsodiff between 2.4.7-6.fc20.x86_64 and 2.4.9-4.fc20.x86_6

libopencv_ocl.so.2.4:
        18 symbols removed
D _ZN2cv3ocl18arithm_bitwise_notE
D _ZN2cv3ocl21arithm_bitwise_binaryE
D _ZN2cv3ocl26arithm_bitwise_binary_maskE
D _ZN2cv3ocl28arithm_bitwise_binary_scalarE
D _ZN2cv3ocl33arithm_bitwise_binary_scalar_maskE
T _ZN2cv3ocl11ContextImplD1Ev
T _ZN2cv3ocl11ContextImplD2Ev
T _ZN2cv3ocl17distanceToCentersERNS0_6oclMatES2_RKS1_S4_iS4_
T _ZN2cv3ocl21createDerivFilter_GPUEiiiiii
T _ZN2cv3ocl24createGaussianFilter_GPUEiNS_5Size_IiEEddi
T _ZN2cv3ocl31createSeparableLinearFilter_GPUEiiRKNS_3MatES3_RKNS_6Point_IiEEdi
W _ZSt11__push_heapIN2cv12MatIterator_I9cl_float2EElS2_PFiS2_S2_EEvT_T0_S7_T1_T2_
W _ZSt13__adjust_heapIN2cv12MatIterator_I9cl_float2EElS2_PFiS2_S2_EEvT_T0_S7_T1_T2_
W _ZSt13__heap_selectIN2cv12MatIterator_I9cl_float2EEPFiS2_S2_EEvT_S6_S6_T0_
W _ZSt16__insertion_sortIN2cv12MatIterator_I9cl_float2EEPFiS2_S2_EEvT_S6_T0_
W _ZSt16__introsort_loopIN2cv12MatIterator_I9cl_float2EElPFiS2_S2_EEvT_S6_T0_T1_
W _ZSt22__final_insertion_sortIN2cv12MatIterator_I9cl_float2EEPFiS2_S2_EEvT_S6_T0_
W _ZSt25__unguarded_linear_insertIN2cv12MatIterator_I9cl_float2EEPFiS2_S2_EEvT_T0_

Comment 22 Orion Poplawski 2014-12-02 23:04:42 UTC
So in comment 20, all symbols are weak symbols, which should not be a problem.

D - data, also should not be a problem

T - text - could be an issue.

Comment 23 Orion Poplawski 2014-12-02 23:18:51 UTC
ContextImpl - totally private class to modules/ocl/src/cl_context.cpp.

distanceToCenters:
opencv-2.4.7/modules/ocl/include/opencv2/ocl/ocl.hpp:        CV_EXPORTS void distanceToCenters(oclMat &dists, oclMat &labels, const oclMat &src, const oclMat &centers, int distType = NORM_L2SQR, const oclMat &indices = oclMat());
opencv-2.4.9/modules/ocl/include/opencv2/ocl/ocl.hpp:        CV_EXPORTS void distanceToCenters(const oclMat &src, const oclMat &centers, Mat &dists, Mat &labels, int distType = NORM_L2SQR);

this looks like it could be a problem.

createDerivFilter_GPU:
opencv-2.4.7/modules/ocl/include/opencv2/ocl/ocl.hpp:        CV_EXPORTS Ptr<FilterEngine_GPU> createDerivFilter_GPU( int srcType, int dstType, int dx, int dy, int ksize, int borderType = BORDER_DEFAULT );
opencv-2.4.9/modules/ocl/include/opencv2/ocl/ocl.hpp:        CV_EXPORTS Ptr<FilterEngine_GPU> createDerivFilter_GPU( int srcType, int dstType, int dx, int dy, int ksize, int borderType = BORDER_DEFAULT, Size imgSize = Size(-1,-1) );

adds an argument with a default.  One would hope that the linker could handle this.  Same with createGaussianFilter_GPU and createSeparableLinearFilter_GPU.  Anyone know for sure?

Comment 24 Orion Poplawski 2014-12-02 23:43:02 UTC
Upstream commit for the distanceToCenters change - https://github.com/Itseez/opencv/pull/1759

Comment 25 Kevin Kofler 2014-12-04 15:46:12 UTC
No, the linker cannot handle default arguments. This is source-compatible, but binary-incompatible.

The binary-compatible way to handle this would be to use a wrapper overload instead of a default argument.

Comment 26 Kevin Kofler 2014-12-04 15:47:03 UTC
(And it's a clear bug that upstream does that kind of binary-incompatible changes without a soname bump.)

Comment 27 Orion Poplawski 2014-12-04 16:19:11 UTC
Fully agree, but it appears the upstream treats the ocl component as unstable/in development and so free to break compatibility.  I suspect most applications don't make use of it (digikam at least does not), but currently it appears that applications get linked to all of the opencv_* libraries whether they use them or not (or at least digikam does).

Comment 28 Kevin Kofler 2014-12-04 18:52:26 UTC
Well, if there isn't anything in Fedora that uses the unstable stuff, then why do we care?

Comment 29 Orion Poplawski 2014-12-04 19:21:59 UTC
I said *I suspect* - at this point we have no data.  We would need to find all *real* users of ocl first.

Comment 30 Sergio Basto 2015-05-11 22:01:03 UTC
Created attachment 1024357 [details]
update to opencv-2.4.11

Hi, 

I'm working on update opencv to 2.4.11 , this is a complex package, also is a requirement of ffmpeg-libs, so many packages depend on it. 

http://upstream-tracker.org/versions/opencv.html show that compatibility is > 99%  since opencv-2.4.9  .

but Patch0: opencv-pkgcmake.patch and all gst1 doesn't apply to new source.   

+#patch0 -p1 -b .pkgcmake
+#if 0%{?gst1}
+#patch10 -p1 -b .10
+#patch11 -p1 -b .11
+#patch12 -p1 -b .12
+#patch13 -p1 -b .13
+#patch14 -p1 -b .14
+#endif

So I made opencv-clean-2.4.11.tar.xz archive like we have for 2.4.9 and the patch in attach. Can I apply it on rawhide and after a few days on F22 , before GA ?

Comment 31 Nicolas Chauvet (kwizart) 2015-05-13 16:38:44 UTC
Can you test other package that would depend on opencv, specially if they will rebuild cleanly without the commnented out patches ?

If they all rebuilt fine (even only in rawhide) I'm fine to update opencv in f22 branch also. (even as f21 later as it seem to be a bugfix updates).

Comment 32 Sergio Basto 2015-05-22 14:13:14 UTC
repoquery opencv\* --whatrequires --alldeps  --source | perl -pe 's/-\d.*?-\d+(\..*)?\.fc\d+(\..*)?.src.rpm//' | sort -u 

cinnamon
digikam
fawkes
ffmpeg
frei0r-plugins
libfreenect
mlt
mrpt
nomacs
opencfu
opencv
php-facedetect
player
python-SimpleCV
shogun
simarrange
simon
vlc

repoquery --qf "%{repoid} %{name}-%{version}-%{release}" `cat list3` | sort -u
fedora fawkes-0.5.0-19.fc21
fedora frei0r-plugins-1.4-3.fc21
fedora opencfu-3.8.11-3.fc21
fedora opencv-2.4.9-3.fc21
fedora php-facedetect-1.0.1-13.fc21
fedora simarrange-0.0-5.20140729git9500190.fc21
fedora simon-0.4.1-2.fc21
rpmfusion-free-updates ffmpeg-2.4.9-1.fc21
rpmfusion-free-updates mlt-0.9.6-2.fc21
rpmfusion-free-updates-testing vlc-2.2.1-5.fc21
updates cinnamon-2.4.8-1.fc21
updates digikam-4.9.0-1.fc21
updates libfreenect-0.5.2-2.fc21
updates nomacs-2.4.2-2.fc21
updates player-3.0.2-39.fc21
updates python-SimpleCV-1.3-4.fc21
updates shogun-4.0.0-1.fc21

to much things to test ... , I need suggestions ?

Comment 33 leigh scott 2015-05-22 14:45:27 UTC
Cinnamon can be ignored as it only uses opencv-python so no rebuild needed.

Comment 34 Sergio Basto 2015-05-22 22:38:30 UTC
OK Thanks, so just depends on opencv-core opencv :

repoquery opencv-core opencv --whatrequires --alldeps  --source | perl -pe 's/-\d.*?-\d+(\..*)?\.fc\d+(\..*)?.src.rpm//' | sort -u | xargs  repoquery --qf "%{repoid} %{name}-%{version}-%{release}" | sort -u 

fedora fawkes-0.5.0-19.fc21
fedora frei0r-plugins-1.4-3.fc21
fedora opencfu-3.8.11-3.fc21
fedora opencv-2.4.9-3.fc21
fedora php-facedetect-1.0.1-13.fc21
fedora simarrange-0.0-5.20140729git9500190.fc21
fedora simon-0.4.1-2.fc21
rpmfusion-free-updates ffmpeg-2.4.9-1.fc21
rpmfusion-free-updates mlt-0.9.6-2.fc21
rpmfusion-free-updates-testing vlc-2.2.1-5.fc21
updates digikam-4.9.0-1.fc21
updates libfreenect-0.5.2-2.fc21
updates nomacs-2.4.2-2.fc21
updates player-3.0.2-39.fc21

Comment 35 Fedora End Of Life 2015-05-29 12:15:19 UTC
This message is a reminder that Fedora 20 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 20. 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 '20'.

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 20 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.

Comment 36 Fedora End Of Life 2015-06-30 01:03:53 UTC
Fedora 20 changed to end-of-life (EOL) status on 2015-06-23. Fedora 20 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.