The Serval Project are sending a couple of developers to the UX Sprint for Security and Privacy Tools in San Francisco, March 1-2, 2014, run by OpenITP, immediately prior to RightsCon in Silicon Valley, March 3-5, 2014.
Jeremy Lakeman (Senior Developer) and Paul Gardner-Stephen (Founder) will be representing Serval at the event.
The main skills that we anticipate being relevant include:
See https://openitp.org/openitp/ux-sprint-for-security-privacy-tools.html for registration, venue and further information. Registration is free.
Apart from Serval, there are lots of other projects that are being sprinted at this event.
We are open to other goals, but this is what we currently have in mind:
The Serval Mesh is only available on Android devices at present.
We want to fix this by making a cross-platform desktop client, that supports the secure voice, text and data services of the Serval Mesh.
We are thinking that Java is probably the most appropriate language to apply, but are open to alternatives.
Clone or fork http://github.com/servalproject/lapcat
Bug tracking and issues will be managed using the github issue tracker for this repository.
The Serval Mesh has a newly developed HTTP API that should make it relatively easy to interface with the Serval Daemon. Of course, you will need to have the natively compiled Serval Daemon as part of such a client. More on the Serval Daemon further down.
The functionality we are targetting for the client includes:
As well as technical work on implementing the above functionality, we would also like to involve participants in planning a coherent user experience and user interface.
Since we would like to create build processes for each platform for the core Serval Daemon, which is written in fairly portable C (the only dependency is a working libc and a subset of POSIX functionality). This may involve some porting where platform incompatibilties may be encountered. Servald has previously been ported to Windows, and already runs on Linux and MAC OSX, so this should not be too difficult.
You will need a C compiler and a Java compiler. Recent versions of GCC and Javac will suffice.
The Serval Mesh uses Make and ANT as the build tools, and git for source control, with source hosted on http://github.com/servalproject.
Make sure you have a recent version of XCode installed. GIT binaries for OSX can be obtained here.
You make like to install Aquamacs, Eclipse (the Standard Edition will be fine) or another IDE environment if you have not already done so.
If you are using a UNIX-like operating system, including Linux, FreeBSD and MAC OSX, you will most likely have these tools already installed. If not, use ports, apt-get, yum or your other favourite package manager to install them.
You make like to install xemacs, Eclipse (the Standard Edition will be fine) or another IDE environment if you have not already done so.
For Windows, you will probably want to install Cygwin if you have not already done so. Once installed, you will need to use the Cygwin setup program to install GCC, Javac, GNU Make, ANT and git.
You make like to install Eclipse (the Standard Edition will be fine) or another IDE environment if you have not already done so.
The main source of documentation for the Serval Daemon and APIs is here on the wiki.
Some pages of interest on the wiki and elsewhere:
The source code to the Serval Daemon is available at http://github.com/servalproject/serval-dna Main page How to report a bug Technology Road Map
To get started with the Serval daemon quickly, here are the steps to create a working configuration. The steps will vary by platform, but should provide a helpful start for any UNIX-like OS.
To build: https://github.com/servalproject/serval-dna/blob/development/INSTALL.md
To configure: https://github.com/servalproject/serval-dna/blob/development/doc/Servald-Configuration.md
See also https://github.com/servalproject/mesh-extender/blob/master/mr3020/mr3020-files/stage-1/etc/serval/serval.conf for an example serval.conf file.
All development on the new desktop client at the UX sprint will be released under GPLv2 or newer. No developer agreement will be required, unless you wish to modify the Serval Daemon itself.
The Serval Daemon is released under the GPL as it is developed to ensure that it remains freely available as it is created. In an ideal world, this is all that would be required.
However, the mobile device market is not an ideal world.
When it comes to iOS and Windows Mobile, applications must be provided to the walled garden under a non-copyleft license. If we were not creating humanitarian software, we would have no hesitation in simply standing our ground that open-source licenses should be accepted as first class citizens. However, in our particular instance, that has the potential to deny people access to software that could help prevent atrocities, get help or save lives. We don't feel that ideology should cost lives – even though we agree with the open-source ideology ourselves.