Bug 1185700 - Digikam 7.2.0 failing to launch.
Summary: Digikam 7.2.0 failing to launch.
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: KDE Applications (show other bugs)
Version: Current
Hardware: x86-64 Other
: P5 - None : Normal with 5 votes (vote)
Target Milestone: ---
Assignee: Stefan Brüns
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-05-06 07:57 UTC by Paul Tannington
Modified: 2022-09-06 16:50 UTC (History)
7 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Tannington 2021-05-06 07:57:05 UTC
Following an update of Digikam to 7.2.0-214.19 ( from http://download.opensuse.org/repositories/KDE:/Extra/openSUSE_Tumbleweed ) it's failing to launch.

Attempting to start from the command line the following is output:

paul@Orion-15:~$ digikam
No protocol specified
QCommandLineParser: already having an option named "h"
QCommandLineParser: already having an option named "help-all"
QCommandLineParser: already having an option named "v"
digikam: symbol lookup error: /usr/lib64/libdigikamgui.so.7.2.0: undefined symbol: _ZN2cv3dnn14dnn4_v202103013NetC1Ev
paul@Orion-15:~$
Comment 1 Paul Tannington 2021-05-06 11:47:22 UTC
Snapshot 20210504, which included an update to libopencv* has solved this issue.

Apologies for the noise.
Comment 2 Paul Tannington 2021-05-06 13:50:07 UTC
Re-opened as digikam still fails to launch with the version from "standard" TW OSS repository:

paul@Orion-15:~$ zypper se -is *digikam*
Loading repository data...
Reading installed packages...

S  | Name            | Type    | Version   | Arch   | Repository
---+-----------------+---------+-----------+--------+------------------------
i+ | digikam         | package | 7.2.0-1.2 | x86_64 | openSUSE-Tumbleweed-Oss
i+ | digikam-plugins | package | 7.2.0-1.2 | x86_64 | openSUSE-Tumbleweed-Oss
i+ | libdigikamcore7 | package | 7.2.0-1.2 | x86_64 | openSUSE-Tumbleweed-Oss
paul@Orion-15:~$


The version from KDE:Extra starts OK.
Comment 3 Fabian Vogt 2021-05-06 14:16:39 UTC
It appears to work here, that symbol is provided by libopencv4_5-4.5.2-1.1.x86_64. What's the version of the libopencv4_5 package on your system? Where is it from?
Comment 4 Paul Tannington 2021-05-06 14:27:37 UTC
libopencv* is from the standard TW OSS repository


With digikam from KDE:Extra all works OK

paul@Orion-15:~$ zypper se -is libopencv
Loading repository data...
Reading installed packages...

S  | Name                   | Type    | Version    | Arch   | Repository
---+------------------------+---------+------------+--------+------------------------
i+ | libopencv3_4           | package | 3.4.10-2.4 | x86_64 | openSUSE-Tumbleweed-Oss
i  | libopencv4_5           | package | 4.5.2-1.1  | x86_64 | openSUSE-Tumbleweed-Oss
i  | libopencv_imgcodecs4_5 | package | 4.5.2-1.1  | x86_64 | openSUSE-Tumbleweed-Oss
i  | libopencv_ximgproc4_5  | package | 4.5.2-1.1  | x86_64 | openSUSE-Tumbleweed-Oss
paul@Orion-15:~$ zypper se -is *digikam*
Loading repository data...
Reading installed packages...

S  | Name            | Type    | Version      | Arch   | Repository
---+-----------------+---------+--------------+--------+-----------------------
i+ | digikam         | package | 7.2.0-214.19 | x86_64 | KDE Extra (Tumbleweed)
i+ | digikam-plugins | package | 7.2.0-214.19 | x86_64 | KDE Extra (Tumbleweed)
i+ | libdigikamcore7 | package | 7.2.0-214.19 | x86_64 | KDE Extra (Tumbleweed)
paul@Orion-15:~$



Changing digikam to that provided by TW OSS standard repository it fails to launch.


See also

https://forums.opensuse.org/showthread.php/553645-digikam-fails-to-launch-after-current-update 

where other users are also reporting this issue.
Comment 5 Fabian Vogt 2021-05-07 12:29:42 UTC
(In reply to Fabian Vogt from comment #3)
> It appears to work here, that symbol is provided by
> libopencv4_5-4.5.2-1.1.x86_64. What's the version of the libopencv4_5
> package on your system? Where is it from?

That was indeed a false positive, it fails with LD_BIND_NOW=1.
I asked for a rebuild, that's running now.

It appears like OpenCV broke ABI, because the dnn namespace is versioned and that version got bumped: https://github.com/opencv/opencv/commit/a823b06fa5afd0a1c42f032f00a5169bf8ddef1e#diff-635059e6e33138c5734e926dfbb7355b08ce112d9ec542313f0377761bf00da6

Was that change intentional? If so, is it possible to use symbol versioning for that so that it's expressed as RPM dependencies?

If not, libdigicamcore7 will need a %requires_eq on libopencv*.

The problem in the original comment was using old opencv (old TW) with new digikam (KDE:Extra), while plain TW has new opencv combined with old digikam.
Comment 6 Stefan Brüns 2021-05-07 18:42:50 UTC
(In reply to Fabian Vogt from comment #5)
> (In reply to Fabian Vogt from comment #3)
> > It appears to work here, that symbol is provided by
> > libopencv4_5-4.5.2-1.1.x86_64. What's the version of the libopencv4_5
> > package on your system? Where is it from?
> 
> That was indeed a false positive, it fails with LD_BIND_NOW=1.
> I asked for a rebuild, that's running now.
> 
> It appears like OpenCV broke ABI, because the dnn namespace is versioned and
> that version got bumped:
> https://github.com/opencv/opencv/commit/
> a823b06fa5afd0a1c42f032f00a5169bf8ddef1e#diff-
> 635059e6e33138c5734e926dfbb7355b08ce112d9ec542313f0377761bf00da6
> 
> Was that change intentional? If so, is it possible to use symbol versioning
> for that so that it's expressed as RPM dependencies?

Definitely intentional, as DNN API/ABI has changed.

cv::dnn is the only module which has broken ABI in a minor version. For all other modules, the soversion/soname is sufficient. I have filed https://github.com/opencv/opencv/issues/20046
 
> The problem in the original comment was using old opencv (old TW) with new
> digikam (KDE:Extra), while plain TW has new opencv combined with old digikam.

Why was digikam in TW not rebuild?
Comment 7 Fabian Vogt 2021-05-07 19:53:47 UTC
(In reply to Stefan Brüns from comment #6)
> (In reply to Fabian Vogt from comment #5)
> > (In reply to Fabian Vogt from comment #3)
> > > It appears to work here, that symbol is provided by
> > > libopencv4_5-4.5.2-1.1.x86_64. What's the version of the libopencv4_5
> > > package on your system? Where is it from?
> > 
> > That was indeed a false positive, it fails with LD_BIND_NOW=1.
> > I asked for a rebuild, that's running now.
> > 
> > It appears like OpenCV broke ABI, because the dnn namespace is versioned and
> > that version got bumped:
> > https://github.com/opencv/opencv/commit/
> > a823b06fa5afd0a1c42f032f00a5169bf8ddef1e#diff-
> > 635059e6e33138c5734e926dfbb7355b08ce112d9ec542313f0377761bf00da6
> > 
> > Was that change intentional? If so, is it possible to use symbol versioning
> > for that so that it's expressed as RPM dependencies?
> 
> Definitely intentional, as DNN API/ABI has changed.
> 
> cv::dnn is the only module which has broken ABI in a minor version. For all
> other modules, the soversion/soname is sufficient. I have filed
> https://github.com/opencv/opencv/issues/20046

Thanks, subscribed.

> > The problem in the original comment was using old opencv (old TW) with new
> > digikam (KDE:Extra), while plain TW has new opencv combined with old digikam.
> 
> Why was digikam in TW not rebuild?

Packages in Tumbleweed are only rebuilt when they are no longer installable. That's why symbol versioning or an explicit %requires_eq would solve this particular issue.
Comment 8 Michael Malessa 2021-05-09 06:41:41 UTC
With the update from Digikam from version 7.2.0-1.2 to version 7.2.0-1.3 in Tumbleweed snapshot 20210507 Digikam works normally again. I think that the bug report can be closed.
Comment 9 Fabian Vogt 2021-05-09 11:00:24 UTC
(In reply to Michael Malessa from comment #8)
> With the update from Digikam from version 7.2.0-1.2 to version 7.2.0-1.3 in
> Tumbleweed snapshot 20210507 Digikam works normally again. I think that the
> bug report can be closed.

Let's keep it open until a proper fix is applied, otherwise this will happen again on the next OpenCV update.

I submitted the %requires_eq in digikam as a (hopefully temporary) workaround: https://build.opensuse.org/request/show/891815

There's nothing more we can do from the digikam side, so reassigning to OpenCV.
Comment 10 Wolfgang Bauer 2022-09-06 11:58:47 UTC
This should actually be fixed meanwhile by the new opencv soversion scheme, no?

https://github.com/opencv/opencv/pull/21178

> * OpenCV 4.x doesn't guarantee or maintain ABI compatibility:
> https://github.com/opencv/opencv/wiki/OE-4.-OpenCV-4
> * We should increase SO version on each release
Comment 11 Stefan Brüns 2022-09-06 16:50:46 UTC
New opencv version scheme respects ABI