Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 318861 - broken dev-libs/redland breaks soprano, kdelibs and packages using nepomuk (in this order)
Summary: broken dev-libs/redland breaks soprano, kdelibs and packages using nepomuk (i...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal with 1 vote (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
: 319299 (view as bug list)
Depends on: 331761
Blocks:
  Show dependency tree
 
Reported: 2010-05-07 11:59 UTC by Nikoli
Modified: 2011-02-07 08:36 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikoli 2010-05-07 11:59:53 UTC
During upgrade from KDE 4.4.2 to 4.4.3 emerge failed at gwenview[semantic-desktop] because it could not find nepomuk shared libs. I did 'equery f nepomuk' and discovered that nepomuk-4.4.3 installed only two files:
/usr/share/man/man8/nepomukservicestub.8.bz2
/usr/share/man/man8/nepomukserver.8.bz2

I tried rebuilding nepomuk, during build it told that it can not find shared nepomuk libs from kdelibs package, but it built and installed only mans, were no error messages at all!
Then I started rebuilding kdelibs, it informed that it can not find soprano and redland.
Rebuilding soprano reported that soprano can not find redland.
After rebuilding rasqal and redland soprano found redland and linked to rasqal and redland.

Problem with soprano was discovered only after gwenview build fail. N ours of intensive CPU usage were useless. Same rasqal, redland, soprano packages versions now build fine, seems redland and/or rasqal or eclasses were fixed without revbump or warn.

So the questions are:
Why soprano[redland] builds and installs silently without redland support at all and does not die with error message?
Why kdelibs[semantic-desktop] builds and installs silently without redland, soprano, etc support at all, without /usr/include/nepomuk, /usr/lib64/libnepomuk* and does not die with error message?
Why nepomuk silently installs only man pages and does not die with error message?

As I understand this is global gentoo problem:
Many packages builds with no warn if they can not find some needed lib, no checking of installed files exist.
If soprano is installed with redland USE flag it does not mean that it is actually build and linked with redland. This makes depend at dev-libs/soprano[redland] broken and useless in some cases. So 'redland' in /var/db/pkg/dev-libs/soprano-2.4.3/USE currently means only that redland was installed during soprano build and was not disabled with cmake option, but it does not mean that soprano libs are linked to redland libs and support them. This makes system of use dependences not reliable.

Possible solutions:
1) Add support to cmake eclass for checking what cmake will actually build or it can not find some optional lib which support we enabled with USE flag.
2) Many ebuilds alreade have '... || die "..."', add this to kdelibs and nepomuk ebuilds. The better solution is adding to portage system of checking installed shared libs (are they linked consistent with USE flags) and files. But such feature will require adding list of this files to ebuilds.

Possibly the bug for global problem already exist (I did not find it), the main purpose of this bug is adding checks to soprano, kdelibs, nepomuk ebuilds - rebuilding of all kde packages because of missing check in soprano is not fun.

Reproducible: Couldn't Reproduce

Steps to Reproduce:
1. emerge =dev-libs/rasqal-0.9.17 =dev-libs/redland-1.0.10-r2 =dev-libs/soprano-2.4.3
2. (optional) emerge KDE SC 4.4 with USE semantic-desktop
=> Very nasty domino effect.
Comment 1 Maciej Mrozowski gentoo-dev 2010-05-07 12:32:09 UTC
Similar issue - but in this case mysql (and not rasqal) causing breakage in redland (and thus in soprano and thus in kdelibs)

http://forums.gentoo.org/viewtopic-t-815507-highlight-.html

As a solution:
emerge -1 redland
emerge -1 soprano
emerge -1 kdelibs
Comment 2 Maciej Mrozowski gentoo-dev 2010-05-07 12:33:15 UTC
We should really add it to FAQ...
Comment 3 Nikoli 2010-05-07 12:40:40 UTC
>emerge -1 kdelibs

it is not enough, at least nepomuk package is broken too.
Comment 4 Maciej Mrozowski gentoo-dev 2010-05-07 12:53:52 UTC
Yeah, probably, anyway... CC-ing people maintaining our troublemakers - rasqal and redland.

Summing it up for you:

dev-libs/redland is fragile - it links to multiple shared libs that are quite frequently SOVERSION bumped (like libmysqlclient or rasqal).
Updating ABI-incompatible redland dependency obviously breaks redland which as a consequence breaks (in this order):
- dev-libs/soprano (rebuilding soprano won't help, it will actually *break* soprano as soprano buildsystem will detect redland deps as broken and will refuse to build certain required component - redland storage backend for soprano)
- kde-base/kdelibs (due to mentioned soprano components not built, but they are needed for KDE semantic desktop - libnepomuk)
- any KDE4 application that needs libnepomuk from kdelibs (kde-base/gwenview, kmail, kde-base/nepomuk and many many others)

What can be done to redland to prevent this breaking domino effect?
Comment 5 Samuli Suominen (RETIRED) gentoo-dev 2010-05-07 14:00:33 UTC
yes, soname changes often... nothing unusual

(In reply to comment #4)
> - dev-libs/soprano (rebuilding soprano won't help, it will actually *break*
> soprano as soprano buildsystem will detect redland deps as broken and will
> refuse to build certain required component - redland storage backend for
> soprano)

then the configure should bail out on soprano if the required deps are not met

> What can be done to redland to prevent this breaking domino effect?

see previous comment
Comment 6 Andreas K. Hüttel archtester gentoo-dev 2010-06-10 18:04:17 UTC
*** Bug 319299 has been marked as a duplicate of this bug. ***
Comment 7 Giuseppe Scaglione 2010-06-13 19:06:59 UTC
(In reply to comment #3)
> >emerge -1 kdelibs
> 
> it is not enough, at least nepomuk package is broken too.
> 

if it can help, 
for 4.4.4 and 4.3.3 .... i solved  by unmerging all kde-base packages

1) emerge -C $(qlist -IC kde-base)
2) emerge kde-meta
Comment 8 Daniel Black (RETIRED) gentoo-dev 2010-07-05 00:37:51 UTC
eventually a dup of #307673 however the nepomuk installing only man pages is still a bug.
Comment 9 Maciej Mrozowski gentoo-dev 2010-07-06 01:15:07 UTC
I'll probably inject some code into kdelibs' CMakeList.txt that will make it bail out on missing nepomuk deps (when nepomuk enabled).
Comment 10 Maciej Mrozowski gentoo-dev 2010-07-06 01:43:46 UTC
This should be fixed in 2.4.4 with following patch (soprano, like Samuli suggested)

diff -ru ../soprano-2.4.4/cmake/modules/FindRedland.cmake ./cmake/modules/FindRedland.cmake
--- ../soprano-2.4.4/cmake/modules/FindRedland.cmake	2009-12-18 15:33:44.000000000 +0100
+++ ./cmake/modules/FindRedland.cmake	2010-07-06 03:25:55.421484970 +0200
@@ -108,7 +108,7 @@
     if(NOT "${_TEST_EXITCODE}" EQUAL 0)
       set(_REDLAND_VERSION_OK)
       message(STATUS "${_OUTPUT}")
-      message(STATUS "Redland with broken NEEDED section detected, disabling")
+      message(SEND_ERROR "Broken Redland detected, rebuild it now. If problem persists, report bug at bugs.gentoo.org.")
     endif(NOT "${_TEST_EXITCODE}" EQUAL 0)
   endif(_REDLAND_STORAGE_LIBS)

Since this is the only place when any linking/dlopening is being performed at build system level, it should fix this soprano[redland] vs not_actually_building_redland_storage inconsistency.
Comment 11 pierre-auguste lambelet 2010-07-12 08:15:21 UTC
Thank you for this tip ! :)

(In reply to comment #1)
> Similar issue - but in this case mysql (and not rasqal) causing breakage in
> redland (and thus in soprano and thus in kdelibs)
> 
> http://forums.gentoo.org/viewtopic-t-815507-highlight-.html
> 
> As a solution:
> emerge -1 redland
> emerge -1 soprano
> emerge -1 kdelibs
> 

Comment 12 Andreas K. Hüttel archtester gentoo-dev 2010-08-29 21:47:56 UTC
(In reply to comment #10)
> This should be fixed in 2.4.4 with following patch (soprano, like Samuli
> suggested)
> 

So can we close the bug?
Comment 13 Michael Behrns-Miller 2010-09-07 03:45:57 UTC
(In reply to comment #12)
> (In reply to comment #10)
> > This should be fixed in 2.4.4 with following patch (soprano, like Samuli
> > suggested)
> > 
> 
> So can we close the bug?
> 

I did not get past this with the latest portage dependencies.  I came here and figured out that I needed to rebuild redland.  That solved my problem.  Still seems portage should catch this dependency better?  Maybe?
Comment 14 Maciej Mrozowski gentoo-dev 2010-09-08 01:14:13 UTC
It does, if you use portage-2.2_rc. Otherwise it's unfortunately user's responsibility to run revdep-rebuild occasionally.
Comment 15 Andreas K. Hüttel archtester gentoo-dev 2010-11-12 23:54:49 UTC
(In reply to comment #14)
> It does, if you use portage-2.2_rc. Otherwise it's unfortunately user's
> responsibility to run revdep-rebuild occasionally.
> 

So resolving then.
Comment 16 Alan 2011-02-07 08:36:54 UTC
I had the same issues, when starting kmail i got a segfault regarding soprano but i've fixed it in a different way.

Watching logs i could see that virtuoso was shutted down but then it couldn't restart (and that showed the segfault in logs) because of a problem of soprano while calling the function "Soprano::VirtuosoController::writeConfigFile" that actually did not create the config file and let virtuoso down.

I tried upgrading with latest ~amd64 libsoprano (2.6.0) and the problem seems solved.