Tatsh / kate-wakatime

Kate plugin to interface with WakaTime
https://tatsh.github.io/kate-wakatime/
11 stars 9 forks source link

Impossible to compile on Kubuntu 14.04 #12

Closed ludovic-gasc closed 8 years ago

ludovic-gasc commented 8 years ago

Hi,

When I follow the documentation to compile this plugin, I've this error during the make:

/usr/bin/ld: cannot find -lkateinterfaces
collect2: error: ld returned 1 exit status
make[2]: *** [lib/ktexteditor_wakatime.so] Error 1
make[1]: *** [CMakeFiles/ktexteditor_wakatime.dir/all] Error 2
make: *** [all] Error 2

I've installed libkate-dev package, but it doesn't fix the bug. An idea to resolve that ?

Thanks for your help.

Tatsh commented 8 years ago

Since ld is saying it cannot find -lkateinterfaces this means you do not have libkateinterfaces.so on your machine or your environment does not have the correct LD_LIBRARY_PATH. /usr/lib64/libkateinterfaces.so.4.14.3 comes with Kate on my system (Gentoo), not katepart or any kind of developer package.

I do not know what it looks like on Kubuntu, but it should not be possible to run Kate without this file being present. dpkg -L kate (among other packages) may be of use to you to ensure you have the correct files.

Your Kate package should come with most of these libraries (note the path may be slightly different):

/usr/lib64/kde4/katebacktracebrowserplugin.so
/usr/lib64/kde4/katebuildplugin.so
/usr/lib64/kde4/katecloseexceptplugin.so
/usr/lib64/kde4/katectagsplugin.so
/usr/lib64/kde4/katefilebrowserplugin.so
/usr/lib64/kde4/katefiletemplates.so
/usr/lib64/kde4/katefiletreeplugin.so
/usr/lib64/kde4/kategdbplugin.so
/usr/lib64/kde4/katekonsoleplugin.so
/usr/lib64/kde4/kate_kttsd.so
/usr/lib64/kde4/katemailfilesplugin.so
/usr/lib64/kde4/kateopenheaderplugin.so
/usr/lib64/kde4/kateprojectplugin.so
/usr/lib64/kde4/katereplicodeplugin.so
/usr/lib64/kde4/katesearchplugin.so
/usr/lib64/kde4/katesnippetsplugin.so
/usr/lib64/kde4/katesqlplugin.so
/usr/lib64/kde4/katesymbolviewerplugin.so
/usr/lib64/kde4/katetabbarextensionplugin.so
/usr/lib64/kde4/katetabifyplugin.so
/usr/lib64/kde4/katetextfilterplugin.so
/usr/lib64/kde4/katexmlcheckplugin.so
/usr/lib64/kde4/katexmltoolsplugin.so
/usr/lib64/kde4/plasma_applet_katesession.so
/usr/lib64/libkateinterfaces.so
/usr/lib64/libkdeinit4_kate.so

And your katepart package should come with these libraries:

/usr/lib64/kde4/katepart.so
/usr/lib64/kde4/ktexteditor_autobrace.so
/usr/lib64/kde4/ktexteditor_exporter.so
/usr/lib64/kde4/ktexteditor_hlselection.so
/usr/lib64/kde4/ktexteditor_iconinserter.so
/usr/lib64/kde4/ktexteditor_insertfile.so
/usr/lib64/kde4/ktexteditor_lumen.so
/usr/lib64/libkatepartinterfaces.so
ludovic-gasc commented 8 years ago

Thanks for your indications @Tatsh: I've found the package: http://packages.ubuntu.com/trusty/libkateinterfaces4 It was installed, however missing /usr/lib/libkateinterfaces.so symlink. To fix that:

sudo ln -s /usr/lib/libkateinterfaces.so.4 /usr/lib/libkateinterfaces.so

You should add that in your README. interested by a PR ?

Tatsh commented 8 years ago

I would be, but:

Are you sure that no other package such as another -dev package creates the symlink? Since the package lacks the symlink it seems to me like the maintainer never packed the symlink because it seems to be only be necessary for building, and building other things for Kate/katepart like this plugin. The rationale seems to be to not have it since nothing uses the symlink except some packages at build time, and that the majority of users will not build third party plugins, etc.

This step of creating your own symlink seems to be the shorter way if you do not mind having a non-Apt managed (or other package managers where this may apply) symlink on your system. This note would have to be there.

Also, fairly certain this symlink can be removed once done compiling. Nothing on my machine explicitly depends on the symlink, but rather the .so.4 file.

ludovic-gasc commented 8 years ago

Are you sure that no other package such as another -dev package creates the symlink?

I don't think so: http://packages.ubuntu.com/search?suite=trusty&arch=any&mode=exactfilename&searchon=contents&keywords=%2Fusr%2Flib%2Flibkateinterfaces.so

if you do not mind having a non-Apt managed

To my knowledge, kate-wakatime isn't packaged for deb based distributions, I don't think that it will be an issue for your users ;-) Compiling stuff is enough scary for most Linux users, I'm pretty sure that most people who use Debian or Ubuntu doesn't take the effort like me to understand why it doesn't work: I can't believe that I'm the first Ubuntu user who try to install this plugin since 2014 ;-)

Tatsh commented 8 years ago

You are the first who has reported an issue with Kubuntu. Please send a pull request (if you would like) about this issue regarding the symlink (maybe Ubuntu with Kate minimally installed is also affected?).

The only other environments have been Fedora (#9 (I meant to add information about this to the README)), KDE 4 on Mac via MacPorts and my own Gentoo machines.

Otherwise, closing.