Spark on KDE 5

Hello,

Looks like Spark is only linux client with working SSO.

I have two linux systems based on KDE 5:

uname -a
Linux wsit007 4.4.0-36-generic #55-Ubuntu SMP Thu Aug 11 18:01:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/lsb-release
DISTRIB_ID=neon
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION=“KDE neon User Edition 5.7”

plasmashell --version
plasmashell 5.7.4

uname -a
Linux wsit006 4.4.0-36-generic #55-Ubuntu SMP Thu Aug 11 18:01:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION=“Ubuntu 16.04.1 LTS”

plasmashell --version

plasmashell 5.5.5

I’ve installed Spark 2.8.0 version from deb packet and got a few issues:

  1. It does not appear in system menu, I have to run it from console.

  2. There is useless tray icon. It just shows “JavaEmbededFrame” on mouse over. Left click, right click and double click do not work.

It is impossible to use Spark without tray icon.

  1. If I click on “Help” -> “Spark forums” I will get nothing and this error in log:

org.jivesoftware.spark.util.log.Log error

SEVERE: Error launching browser:

java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!

at java.awt.Desktop.checkActionSupport(Desktop.java:225)

at java.awt.Desktop.browse(Desktop.java:381)

at org.jivesoftware.spark.util.BrowserLauncher.openURL(BrowserLauncher.java:37)

at org.jivesoftware.MainWindow$5.actionPerformed(MainWindow.java:607)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.AbstractButton.doClick(AbstractButton.java:376)

at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)

at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.ja va:877)

at java.awt.Component.processMouseEvent(Component.java:6535)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)

at java.awt.Component.processEvent(Component.java:6300)

at java.awt.Container.processEvent(Container.java:2236)

at java.awt.Component.dispatchEventImpl(Component.java:4891)

at java.awt.Container.dispatchEventImpl(Container.java:2294)

at java.awt.Component.dispatchEvent(Component.java:4713)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)

at java.awt.Container.dispatchEventImpl(Container.java:2280)

at java.awt.Window.dispatchEventImpl(Window.java:2750)

at java.awt.Component.dispatchEvent(Component.java:4713)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)

at java.awt.EventQueue.access$500(EventQueue.java:97)

at java.awt.EventQueue$3.run(EventQueue.java:709)

at java.awt.EventQueue$3.run(EventQueue.java:703)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(P rotectionDomain.java:76)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(P rotectionDomain.java:86)

at java.awt.EventQueue$4.run(EventQueue.java:731)

at java.awt.EventQueue$4.run(EventQueue.java:729)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(P rotectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:20 1)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:10 5)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Looks like it has not very complicated solution java - Desktop API is not supported on the current platform - Stack Overflow

1 and 3 is minor, but 2 is really critical. Is there any solution to fix tray icon?

What java version do you have installed (as deb version is without java included)? I suppose tar.gz version has same issue? Personally i haven’t tried Spark with KDE (only with unity/xfce). Maybe this is some KDE related issue, but i want to rule out java version first. Anyway, as Spark has only a few volunteers doing something in their spare time, and most of them are not developers even, this might not be fixed for a long time. Testing on various platforms and especially desktop environments is cumbersome and time consuming. I can file a ticket for this at least (after we discuss java version). As for the links, i believe this fix is already included, though links worked fine for me on ubuntu/xubuntu even before that fix. Wasn’t able to find out why it behaves differently for some users.

Both systems have

java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

I’ve investigated a bit. It is problem of KDE 5 and Gnome 3, but it was mostly solved in KDE 5.5 by merging xembed-sni-proxy into kde.

Also I’ve found this issue Tray icon is not displayed in KDE (5.4.2) · Issue #192 · jitsi/jitsi · GitHub

There are two suggested libraries to interract with systray.

Can not try “tar.gz” because get in log:

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.ja va:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.jivesoftware.launcher.Startup.start(Startup.java:93)

at org.jivesoftware.launcher.Startup.main(Startup.java:43)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.ja va:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:65)

at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:57)

Caused by: java.lang.UnsatisfiedLinkError: /home/local/RG/kas/Spark/jre/lib/i386/libawt_xawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

at java.lang.ClassLoader$NativeLibrary.load(Native Method)

at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)

at java.lang.Runtime.load0(Runtime.java:809)

at java.lang.System.load(System.java:1086)

at java.lang.ClassLoader$NativeLibrary.load(Native Method)

at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)

at java.lang.Runtime.loadLibrary0(Runtime.java:870)

at java.lang.System.loadLibrary(System.java:1122)

at java.awt.Toolkit$3.run(Toolkit.java:1636)

at java.awt.Toolkit$3.run(Toolkit.java:1634)

at java.security.AccessController.doPrivileged(Native Method)

at java.awt.Toolkit.loadLibraries(Toolkit.java:1633)

at java.awt.Toolkit.(Toolkit.java:1668)

at com.jtattoo.plaf.JTattooUtilities.(JTattooUtilities.java:44)

at com.jtattoo.plaf.AbstractLookAndFeel.(AbstractLookAndFeel.java:42)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:348)

at javax.swing.SwingUtilities.loadSystemClass(SwingUtilities.java:1874)

at javax.swing.UIManager.setLookAndFeel(UIManager.java:582)

at org.jivesoftware.Spark.loadLookAndFeel(Spark.java:262)

at org.jivesoftware.Spark.startup(Spark.java:177)

… 12 more

Looks like your missing a library

try

apt-get install libxrender1:i386

It is libxrender1:i386 is already the newest version (1:0.9.9-0ubuntu1).

maybe you need libxtst6:i386 too?

Thanks, it helped to run spark from “tar.gz”

But behaviour the same, It do not react on tray icon clicks.

I have filed this as https://issues.igniterealtime.org/browse/SPARK-1800

I have also filed links opening on KDE as https://issues.igniterealtime.org/browse/SPARK-1801 and Alexander has provided a fix for it. Couldn’t test it myself. Wasn’t able to install Kubuntu in my VirtualBox environment because of some weird visual issues. But you can try the latest build:

https://bamboo.igniterealtime.org/browse/SPARK-NIGHTLYDEB-608/artifact/JOB1/Debi an/spark-messenger_2.8.0_all.deb

https://bamboo.igniterealtime.org/artifact/SPARK-INSTALL4J/shared/build-896/Inst all4j/spark_2_8_0_896.tar.gz

Again. Links worked fine for me on Ubuntu\Xubuntu\Windows with or without this fix. Fix itself Added support for open link which pointed to Spark forum when user uses KDE by Alexander198961 · Pull Request #218 · ign…

Thanks

I’ve tried this build, links work perfect.

Hi guys,

I’d like to ask to provide this fix for Plasma for me as well. I’m using KDE 5.8.3 and problem is still here for Spark-2.8.1.921-1.x86_64 (latest available nightly build at the moment). Godd thing is that I’m able to start Spark via KDE Menu - but bad news is no reaction on click (tried bioth left and right click) on the icon in the Tray. OnHover shows “JavaEmbedded…”

I know that’s a common problem for Java-based apps in KDE (have the same with Jitsi). If anybody has a fix for this annoynig issue - I’d be appreciated if somebody could share it with me. I have no experience with build-from-source so please share RPM x86_64

Tray icon ticket hasn’t been closed (SPARK-1800) as there were no fix. Only SPARK-1801 has been fixed (opening url links in chat on KDE).