Igniterealtime spark client on SL 6

Been researching the IgniteRealTime (Jive Software) OpenFire instant messaging server and decided to give their Spark client a try. Turns out it’s a pretty good XMPP client on Windows. So I downloaded the rpm for Linux. After struggling a bit I finally got it going.

As usual the answer came in a Google search.

[SOLVED] Need help (badly) in installing Spark on CentOS6.3

Google is an essential tool in working with most new, especially Java based, open source software because most open source projects do such a crummy job of documenting their products. But at least they don’t post a giant 300 page manual that just pretends to be documentation.

Of course there’s no corresponding post for RHEL, because as we all know Red Hat cowardly walked away from the Linux desktop market some years ago.

The Spark client package I installed was spark-2.6.3.rpm, from the download page.

Besides java 1.6 or better, the product has a number of dependencies. Here’s the output of “rpm -q –requires Spark”:

/bin/bash  
libX11.so.6  
libXext.so.6  
libXi.so.6  
libXp.so.6  
libXtst.so.6  
libasound.so.2  
libasound.so.2(ALSA_0.9)  
libawt.so  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.2)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.2)  
libc.so.6(GLIBC_2.2.4)  
libdl.so.2  
libdl.so.2(GLIBC_2.0)  
libdl.so.2(GLIBC_2.1)  
libgcc_s.so.1  
libgcc_s.so.1(GCC_3.0)  
libjava.so  
libjava.so(SUNWprivate_1.1)  
libjli.so  
libjli.so(SUNWprivate_1.1)  
libjvm.so  
libjvm.so(SUNWprivate_1.1)  
libm.so.6  
libm.so.6(GLIBC_2.0)  
libmawt.so  
libmawt.so(SUNWprivate_1.1)  
libmlib_image.so  
libmlib_image.so(SUNWprivate_1.1)  
libnet.so  
libnet.so(SUNWprivate_1.1)  
libnsl.so.1  
libodbc.so  
libodbcinst.so  
libpthread.so.0  
libpthread.so.0(GLIBC_2.0)  
libpthread.so.0(GLIBC_2.1)  
libpthread.so.0(GLIBC_2.2)  
libpthread.so.0(GLIBC_2.2.3)  
libstdc++.so.5  
libstdc++.so.5(CXXABI_1.2)  
libstdc++.so.5(GLIBCPP_3.2)  
libverify.so  
libverify.so(SUNWprivate_1.1)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

On my SL (Scientific Linux) developer’s workstation all I had to do was install both the x86_64 and i686 versions (if your system runs x86_64, there’s a good chance the i686 versions of the dependencies are not yet installed) of the following rpms:

libXtst
compat-libstdc++-33

Note that libodbc.so and libodbcinst.so are supplied by the unixODBC packages, but even with them you’ll get an error when trying to install the rpm. This is due to a bug in the package (for some reason Java devs have problems compiling rpms — I guess rpm is just too C-ish for them). Once you’re satisfied that you’ve got all the dependencies in place you can run:

rpm -ivh --nodeps spark-2.6.3.rpm

to install the client.

The packagers made no effort to include a .desktop file or application icon with the package. For the icon I went to the source and extracted spark-32×32.png from Spark/lib/spark.jar and copied it to /usr/share/pixmaps/spark.png. I then wrote a simple spark.desktop file:

[Desktop Entry]
Name=Spark
Comment=XMPP Client
Exec=spark
Icon=spark.png
Terminal=false
Type=Application
Categories=Network;
Encoding=UTF-8

Too early to tell whether the Linux client has all the features of the Windows edition (they are many).