Building the SilentVault Spark Client and Plugins From Downloaded Source

If you would like to build your own SVSpark client from original source, instructions for doing so follow below.

If you would prefer to download and run a Spark client already built by us as a signed installable package, please see this page.
Also, note that the main SilentVault Spark client includes much more functionality than the minimalist webapp client, but you can obtain the latter basic webapp client here.

See these links for licensing, README, and changelog info.

Assemble Your Tools

To build the client you will need the following:

  1. OpenGPG or equivalent, to verify the signature on the source archive.
  2. The Java JDK (development kit) version 7u181 or higher. Note this is different than the JRE (runtime environment), which does not contain the Java compiler. If you need help, see: Obtaining Java.
  3. The Apache Ant build tool, rev 1.7.1 or higher. You can obtain this in Linux distros, or look here.

Obtain Sources

First, you will need the source for Spark 2.7.7 itself. You can get that from us here at this link. You may also obtain it from directly from the Spark project via GitHub here.

Note: do not attempt to build our client using Spark 2.8.x software. The 2.8.x tree uses an incompatible version of the Smack XMPP library,
and will not build with our plugins.

Next, you will need a copy of all of SilentVault's custom modifications to Spark. We provide these in either ZIP format or in gzip'd TAR format.
Optionally, make sure that you also download the corresponding detached signature file, SVCustomSpark-2.7.7.zip.asc or SVCustomSpark-2.7.7.tar.gz.asc respectively, so that you can verify the signature on the archive.

Verify Signature


Compiling the Source

By default, the Spark 2.7.7 source archive unpacks into a directory called Spark-2.7.7. Let this directory be known as $SPARKHOME.
After verifying the signatures on the archive, unzip the SVCustomSpark-2.7.7.zip (or unpack the SVCustomSpark-2.7.7.tar.gz) into the same top directory where you installed the Spark source, i.e. $SPARKHOME.

On Linux, commands like these will do this:

tar -xzvf Spark-master_2.7.7.tar.gz
cd Spark-2.7.7
tar -xzvf ../SVCustomSpark-2.7.7.tar.gz

You should now be ready to build. To do this, use these commands:

# to build Spark itself:
cd $SPARKHOME/build
ant jar
# to build the generic plugins (including ours), plus Flashing (for Windows):
ant windows.build.plugins
# to build additional plugins for Mac (only works on a Mac):
ant mac.build.plugin
# to build the installer for Linux and Windows:
ant installer.izpack
# to build a .exe installer for WinXP:
ant installer.izpack.exe
# to build an installer (.dmg) for Mac (only works on a Mac):
ant mac.app.zip
ant installer.mac

Running the Client

We suggest that you create and run a suitable installer for your system, and proceed to install it and run the client from its desktop icon. However, if you want to make and test your own mods to the source, the compiled client can be invoked in place (on Linux or Mac) by using this script:

$SPARKHOME/target/build/bin/startup.sh > /dev/null 2>&1

(There is also a startup.bat file provided for use on Windows.)

To run with the debugger turned on, invoke SVSpark thus:

$SPARKHOME/target/build/bin/startup.sh -debug

(This creates text output in $HOME/.silentvault/logs, as well as activating the Smack GUI debugger.)

In regard to major client updates, you will need to monitor this page for updates, and rebuild your client when they appear. Updates to individual Spark plugins can be installed individually from within SVSpark itself; use the File/Plugins/Available Plugins menu tab (only available when connected to the network). The SilentVault plugin is currently at revision 0.7.3.

Note that the pre-built web-app version will automatically manage updates for you, if you install that version. The current version of the Spark client can be determined by using the Help/About menu choice. The "Build Number" is set in the file $SPARKHOME/build/build.xml, as the property build.number.

Comments on these instructions are welcomed.

Please report bugs or ask questions in the forum. (You'll need to register to post.)