[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">&lt;<a href="mailto:faure@kde.org" \
target="_blank">faure@kde.org</a>&gt;</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> &gt; On Mon, May 7, 2012 at 12:44 PM, Sune Vuorela &lt;<a \
href="mailto:nospam@vuorela.dk">nospam@vuorela.dk</a>&gt; wrote:<br> &gt; &gt; On \
2012-05-07, Vishesh Handa &lt;<a href="mailto:me@vhanda.in">me@vhanda.in</a>&gt; \
wrote:<br> &gt; &gt; &gt; Right.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; We could maintain BC and SC by not touching the kdelibs nepomuk, \
and<br> &gt; &gt; &gt; just<br>
&gt; &gt; &gt; making nepomuk-core a dependency of kdelibs. But that would result \
in<br> &gt; &gt;<br>
&gt; &gt; both<br>
&gt; &gt;<br>
&gt; &gt; &gt; nepomuk-core and kdelibs installing the same headers.<br>
&gt; &gt;<br>
&gt; &gt; what happens if both libraries are loaded into the same process?<br>
&gt;<br>
&gt; I&#39;m not sure. I&#39;m assuming that it would result in some sort of \
linker<br> &gt; 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&#39;t conflict.<br>
Of course that makes the porting effort a bit higher, but it&#39;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&#39;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&#39;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