Bug#797644: kdelibs5-dev: kopete FTBFS: No rule to make target '/usr/lib/libsoprano.so', needed by 'kopete/kopete'

2015-10-02 Thread Martin Steghöfer

Martin Steghöfer wrote:
It's fine for "libkhtml.so" to request linking to libsoprano. But if 
it does so, IMHO its corresponding -dev package should make sure that 
the necessary dependencies are pulled in.


Never mind, someone just re-added the missing dependency to 
kdelibs5-dev, just like I asked. See #799520.


Cheers,
Martin



Bug#797644: kdelibs5-dev: kopete FTBFS: No rule to make target '/usr/lib/libsoprano.so', needed by 'kopete/kopete'

2015-09-25 Thread Martin Steghöfer

Thank you for your comment, Scott! Let my clarify...

Scott Kitterman wrote:

If there's a warning not to link against it, isn't the solution not to do that?


Yes, of course it would be a solution *not* to link against it, but 
"kdelibs5-dev" forces me to do so (that's why I blame it).


That's actually part of the point I was trying to make: My package (as 
well as others that are FTBFS'ing in the same way) doesn't actually 
*want* to link against libsoprano. It never asks for it. As I said 
before: The library libsoprano "is never even mentioned in any of the 
CMakeLists.txt files".


It is some CMake magic in kdelibs5-dev's macros that pulls it in. It is 
enough to do the following:


/
| KDE4_ADD_EXECUTABLE( myMainApp mymainapp.cxx )
| TARGET_LINK_LIBRARIES( myMainApp ${KDE4_KHTML_LIBS} )
\

That makes "myMainApp" link against libsoprano.

It's fine for "libkhtml.so" to request linking to libsoprano. But if it 
does so, IMHO its corresponding -dev package should make sure that the 
necessary dependencies are pulled in.


Hope that clears things up a little...

Cheers,
Martin



Bug#797644: kdelibs5-dev: kopete FTBFS: No rule to make target '/usr/lib/libsoprano.so', needed by 'kopete/kopete'

2015-09-25 Thread Scott Kitterman


On September 25, 2015 11:29:20 AM CDT, "Martin Steghöfer" 
 wrote:
>Dear kdelibs5-dev maintainers,
>
>One package I worked on is affected by this problem, too. That's why I 
>started investigating this issue and found out that there is a whole 
>bunch of packages that are currently (or were recently) FTBFS'ing 
>because of this problem. Some maintainers employed the workaround of 
>adding a build dependency to "libsoprano-dev" because that's the only 
>way they can fix the FTBFS themselves. But it sure feels like a hack, 
>which is why I'd prefer not to have to do this.
>
>What's the reason for this odd behaviour? I couldn't really see this 
>from this bug report, just that it had something to do with "the 
>transition from nepomuk to the new baloo package".
>
>Is this going to be fixed properly at some point? I consider adding 
>"libsoprano-dev" to the Build-Depends of all dependant packages just a 
>temporary workaround.
>
>Could we keep this bug open as a reminder that this still needs a
>proper 
>fix?
>
>To me it feels really wrong to add a build dependency to a library that
>
>is never even mentioned in any of the CMakeLists.txt files, nor is used
>
>directly by any of the code (there is even a warning telling me that I 
>shouldn't have linked against it). Or is there any justification for 
>seeing libsoprano-dev as a "real" build dependency of packages of that 
>kind, and I'm just not seeing it? Or a way to get rid of the
>"dependency"?

If there's a warning not to link against it, isn't the solution not to do that?

Scott K



Bug#797644: kdelibs5-dev: kopete FTBFS: No rule to make target '/usr/lib/libsoprano.so', needed by 'kopete/kopete'

2015-09-25 Thread Martin Steghöfer

Dear kdelibs5-dev maintainers,

One package I worked on is affected by this problem, too. That's why I 
started investigating this issue and found out that there is a whole 
bunch of packages that are currently (or were recently) FTBFS'ing 
because of this problem. Some maintainers employed the workaround of 
adding a build dependency to "libsoprano-dev" because that's the only 
way they can fix the FTBFS themselves. But it sure feels like a hack, 
which is why I'd prefer not to have to do this.


What's the reason for this odd behaviour? I couldn't really see this 
from this bug report, just that it had something to do with "the 
transition from nepomuk to the new baloo package".


Is this going to be fixed properly at some point? I consider adding 
"libsoprano-dev" to the Build-Depends of all dependant packages just a 
temporary workaround.


Could we keep this bug open as a reminder that this still needs a proper 
fix?


To me it feels really wrong to add a build dependency to a library that 
is never even mentioned in any of the CMakeLists.txt files, nor is used 
directly by any of the code (there is even a warning telling me that I 
shouldn't have linked against it). Or is there any justification for 
seeing libsoprano-dev as a "real" build dependency of packages of that 
kind, and I'm just not seeing it? Or a way to get rid of the "dependency"?


Cheers,
Martin



Bug#797644: kdelibs5-dev: kopete FTBFS: No rule to make target '/usr/lib/libsoprano.so', needed by 'kopete/kopete'

2015-09-03 Thread Scott Kitterman
On Tue, 1 Sep 2015 09:45:33 +0100 Simon McVittie  wrote:
> On Tue, 01 Sep 2015 at 09:20:17 +0100, Simon McVittie wrote:
> > If a particular -dev package requires linking with some other library,
> > it should depend on that library's -dev package (the same principle
> > as depending on the -dev packages of the libraries mentioned in a
> > pkg-config .pc file).
> 
> For kopete, installing libsoprano-dev is enough to build successfully.
> I think this means kdelibs5-dev should depend on libsoprano-dev (and the
> -dev packages for any other libraries that it indirectly requires
> in the same way).
> 
> Adding Build-Depends: libsoprano-dev to kopete seems to be a viable
> workaround that would prevent this bug from stalling the libmsn
> sub-transition within the libstdc++ transition, and potentially
> lower its severity to non-RC. I might NMU kopete with that change if
> it becomes necessary.

This was unfortunately necessary as part of the transition from nepomuk to the 
new baloo package.  At the time upstream did the switch, it was not well 
integrated into KDE4 and so we were stuck with dropping some build-depends to 
get the necessary internal build behavior.  As a team, in the Qt-KDE team 
we've been adding libsoprano-dev to other packages as needed and that's the 
right thing to do for kopete.

Scott K



Re: Bug#797644: kdelibs5-dev: kopete FTBFS: No rule to make target '/usr/lib/libsoprano.so', needed by 'kopete/kopete'

2015-09-01 Thread Simon McVittie
On Tue, 01 Sep 2015 at 09:20:17 +0100, Simon McVittie wrote:
> If a particular -dev package requires linking with some other library,
> it should depend on that library's -dev package (the same principle
> as depending on the -dev packages of the libraries mentioned in a
> pkg-config .pc file).

For kopete, installing libsoprano-dev is enough to build successfully.
I think this means kdelibs5-dev should depend on libsoprano-dev (and the
-dev packages for any other libraries that it indirectly requires
in the same way).

Adding Build-Depends: libsoprano-dev to kopete seems to be a viable
workaround that would prevent this bug from stalling the libmsn
sub-transition within the libstdc++ transition, and potentially
lower its severity to non-RC. I might NMU kopete with that change if
it becomes necessary.

S



Bug#797644: kdelibs5-dev: kopete FTBFS: No rule to make target '/usr/lib/libsoprano.so', needed by 'kopete/kopete'

2015-09-01 Thread Simon McVittie
Package: kdelibs5-dev
Version: 4:4.14.10-3
Severity: serious
Justification: kopete fails to build from source (but built successfully in the 
past)
Control: affects -1 kopete

X-Debbugs-Cc set to kop...@packages.debian.org since it is known to be
affected.

While building kopete to verify that a proposed upload for libmsn
successfully carries out the libstdc++ transition, I encountered this
build error:

cd kopete && /usr/bin/c++   -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=24 
-DKDE_DEPRECATED_WARNINGS -DQT_NO_CAST_TO_ASCII -DQT_NO_STL 
-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS -D_BSD_SOURCE 
-D_DEFAULT_SOURCE -D_REENTRANT -D_XOPEN_SOURCE=500 -g -O2 
-fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 
-D_FORTIFY_SOURCE=2  -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align 
-Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions 
-DQT_NO_EXCEPTIONS -fno-check-new -fno-common -Woverloaded-virtual 
-fno-threadsafe-statics -fvisibility=hidden -Werror=return-type 
-fvisibility-inlines-hidden -DNDEBUG -DQT_NO_DEBUG -I. -I../../kopete 
-I../../libkopete -I../libkopete -I../../libkopete/ui -I../../libkopete/private 
-I../../libkopete/contactlist -I../../libkopete/tasks 
-I../../kopete/addaccountwizard -Iaddaccountwizard -I../../kopete/statusmenu 
-Istatusmenu -I../../kopete/identity -Iidentity -I../../kopete/contactlist 
-Icontactlist -I../../kopete/config/plugins -I/usr/include/KDE 
-I/usr/include/qt4/KDE -I/usr/include/qt4 -I/usr/include/qt4/phonon 
-I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4/QtXml 
-I/usr/include/qt4/QtUiTools -I/usr/include/qt4/QtTest -I/usr/include/qt4/QtSvg 
-I/usr/include/qt4/QtSql -I/usr/include/qt4/QtScriptTools 
-I/usr/include/qt4/QtScript -I/usr/include/qt4/QtNetwork 
-I/usr/include/qt4/QtHelp -I/usr/include/qt4/QtDesigner 
-I/usr/include/qt4/QtDeclarative -I/usr/include/qt4/QtDBus 
-I/usr/include/qt4/Qt3Support -I/usr/include/qt4/QtGui 
-I/usr/include/qt4/QtCore -I/usr/include/qt4/Qt 
-I/usr/share/qt4/mkspecs/default -I/usr/include/qimageblitz-D_GNU_SOURCE 
-D_LARGEFILE64_SOURCE -o CMakeFiles/kopete_bin.dir/kopeteadaptor.o -c 
kopeteadaptor.cpp
make[4]: *** No rule to make target '/usr/lib/libsoprano.so', needed by 
'kopete/kopete'.  Stop.

This appears to be because KDeclarative's CMake glue mentions that library:

% ack libsoprano /usr/lib
/usr/lib/cmake/KDeclarative/KDeclarativeLibraryTargets-debian.cmake
12:  IMPORTED_LINK_INTERFACE_LIBRARIES_DEBIAN "kdeui;/usr/lib/libsoprano.so"

If a particular -dev package requires linking with some other library,
it should depend on that library's -dev package (the same principle
as depending on the -dev packages of the libraries mentioned in a
pkg-config .pc file).

There is an additional, more minor bug here, which could perhaps be fixed
at the same time: that cmake file mentions libsoprano by its fully qualified
path, so kopete would also FTBFS in a similar way if libsoprano was moved
from /usr/lib to /usr/lib/${DEB_HOST_MULTIARCH}. If I'm understanding
correctly, the CMake glue should ideally list system libraries by the
name that would follow the "-l" linker argument, for example "kdeui;soprano",
in the same way that pkg-config would normally result in
"-lkdeui -lsoprano". Please clone a separate bug for this if it is
confirmed but not trivial to fix.

Regards,
S