[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: The Nepomuk Situation
From: Vishesh Handa <me () vhanda ! in>
Date: 2012-05-07 10:21:24
Message-ID: CAOPTMKDR22c6rn0oGFQiQNg8-TApE2iG61dM=VfyBtK7yLCnCQ () mail ! gmail ! com
[Download RAW message or body]
On Mon, May 7, 2012 at 3:12 PM, David Faure <faure@kde.org> wrote:
> On Monday 07 May 2012 13:06:15 Vishesh Handa wrote:
> > On Mon, May 7, 2012 at 12:44 PM, Sune Vuorela <nospam@vuorela.dk> wrote:
> > > On 2012-05-07, Vishesh Handa <me@vhanda.in> wrote:
> > > > Right.
> > > >
> > > > We could maintain BC and SC by not touching the kdelibs nepomuk, and
> > > > just
> > > > making nepomuk-core a dependency of kdelibs. But that would result in
> > >
> > > both
> > >
> > > > nepomuk-core and kdelibs installing the same headers.
> > >
> > > what happens if both libraries are loaded into the same process?
> >
> > I'm not sure. I'm assuming that it would result in some sort of linker
> > errors.
>
> Not if libnepomukcore is brought in by the application, and libnepomuk is
> brought in by a dlopened plugin. In such a case, you get no clear error,
> you
> get random crashes.
>
> The solution is usually to namespace the symbols (classes, standalone
> functions etc.) so that they don't conflict.
> Of course that makes the porting effort a bit higher, but it's the only
> way to
> have both things side by side during the transition period.
>
Oh.
So, we're down to 3 options -
*1.* nepomuk-core become a dependency of kdelibs. Kdelibs is not touched.
*Problem:* Overlapping headers and possible mysterious crashes if both
libraries are loaded.
*2.* nepomuk-core installs headers under nepomuk2. It's released
independently.
*Problem:* Mysterious crashes if both libraries are loaded.
*3.* nepomuk-core installs headers under nepomuk2 and the namespace is
changed to nepomuk2.
*Problem:* A lot more work :(
In all cases, kde-runtime/nepomuk will be removed. Binary and Source
compatibility are not affected.
>
> See knewstuff2 (namespace KNS) vs knewstuff3 (namespace KNS3) for instance
> ;)
>
> --
> David Faure, faure@kde.org, http://www.davidfaure.fr
> Sponsored by Nokia to work on KDE, incl. KDE Frameworks 5
>
>
--
Vishesh Handa
[Attachment #3 (text/html)]
<br><br><div class="gmail_quote">On Mon, May 7, 2012 at 3:12 PM, David Faure <span \
dir="ltr"><<a href="mailto:faure@kde.org" \
target="_blank">faure@kde.org</a>></span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"> <div class="im">On Monday 07 May 2012 13:06:15 Vishesh Handa \
wrote:<br> > On Mon, May 7, 2012 at 12:44 PM, Sune Vuorela <<a \
href="mailto:nospam@vuorela.dk">nospam@vuorela.dk</a>> wrote:<br> > > On \
2012-05-07, Vishesh Handa <<a href="mailto:me@vhanda.in">me@vhanda.in</a>> \
wrote:<br> > > > Right.<br>
> > ><br>
> > > We could maintain BC and SC by not touching the kdelibs nepomuk, \
and<br> > > > just<br>
> > > making nepomuk-core a dependency of kdelibs. But that would result \
in<br> > ><br>
> > both<br>
> ><br>
> > > nepomuk-core and kdelibs installing the same headers.<br>
> ><br>
> > what happens if both libraries are loaded into the same process?<br>
><br>
> I'm not sure. I'm assuming that it would result in some sort of \
linker<br> > errors.<br>
<br>
</div>Not if libnepomukcore is brought in by the application, and libnepomuk is<br>
brought in by a dlopened plugin. In such a case, you get no clear error, you<br>
get random crashes.<br>
<br>
The solution is usually to namespace the symbols (classes, standalone<br>
functions etc.) so that they don't conflict.<br>
Of course that makes the porting effort a bit higher, but it's the only way \
to<br> have both things side by side during the transition \
period.<br></blockquote><div><br>Oh.<br><br>So, we're down to 3 options \
-<br><br><b>1.</b> nepomuk-core become a dependency of kdelibs. Kdelibs is not \
touched.<br><b>Problem:</b> Overlapping headers and possible mysterious crashes if \
both libraries are loaded.<br> <br><b>2.</b> nepomuk-core installs headers under \
nepomuk2. It's released independently.<br><b>Problem:</b> Mysterious crashes if \
both libraries are loaded.<br><br><b>3.</b> nepomuk-core installs headers under \
nepomuk2 and the namespace is changed to nepomuk2.<br> <b>Problem:</b> A lot more \
work :(<br><br>In all cases, kde-runtime/nepomuk will be removed. Binary and Source \
compatibility are not affected.<br> <br></div><blockquote class="gmail_quote" \
style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex">
<br>
See knewstuff2 (namespace KNS) vs knewstuff3 (namespace KNS3) for instance ;)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
David Faure, <a href="mailto:faure@kde.org">faure@kde.org</a>, <a \
href="http://www.davidfaure.fr" target="_blank">http://www.davidfaure.fr</a><br> \
Sponsored by Nokia to work on KDE, incl. KDE Frameworks 5<br> <br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><span \
style="color:rgb(192,192,192)">Vishesh Handa</span><br><br>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic