Wayfinder open sourced!

I got involved in a final project at Wayfinder Systems after we got permission to release a majority of our source code as open source. We’ve spent the last months cleaning up code and writing documentation and now it has finally been released! Have a look at the blog post over on the Wayfinder OSS site for more details. In the released code you will find our location based server platform and map & navigation clients for the major mobile platforms.
Vodafone has also published a press release!

I spent most of my time cleaning up and documenting the operations aspect of the server, and this includes releasing a lot of tools and scripts that we used for operating the Wayfinder server clusters but are generic tools. The two most interesting ones are WFConf; a minimal but still powerful Configuration Management tool (but I still recommend Puppet if you want to start using a CM tool) and a web based network kickstart file generator.¬† WFConf is documented here, and if you’re interested go ahead and look at it in the repository here. There you’ll find the less documented kickstart files as well and there is some sparse documentation you can have a look at.¬† The kickstart stuff is quite easy to use. You start out with a normal kickstart file and then you cut out the sections you need to vary across different servers and put the snippets¬† in separate files. You then create new nippets for different configurations, typically things like root passwords, disk partitioning, the post section etc. When you PXE boot your server the kickstart file is fetched from a Perl CGI which looks in a config file to determine which snippets to include for this particular server and pastes them into a complete file which is returned. In the config file you setup defaults and then specify the individual snippet configuration based on the ethernet address of the server. Here’s what it might look like:

%ks_ethers = (
   # defaults
   'default' => {
      'grubfix'      => 'nop',
      'rootpw'       => 'example',
      'partitioning' => 'one_disk_sda',
   },
   # mgmt1
   '00:aa:bb:cc:dd:ee'   => {
      'partitioning' => 'md_raid1_sda_sdb',
      'grubfix'      => 'md_raid1_sda_sdb',
   },
   # node1
   '00:aa:bb:cc:dd:ef'   => {
   },
   # node2
   '00:aa:bb:cc:dd:f0'   => {
   },
);

Combine this with a configuration management tool that setups all of your services and you can have a server with a specific configuration and role re-installed and ready to run in less than 10 minutes

3 thoughts on “Wayfinder open sourced!

  1. Pingback: Vodafone maakt navigatiesoftware Wayfinder opensource » Clippy.be

  2. I’ve had a look at a look at and downloaded the source to begin to look at the $30 million bounty! :-) One thing stops me in my tracks though and probably applies to other independent developers looking to leverage this to use – all the statements mention relesaing the *majority* of the code as Open source. So we now don’t know which parts are missing and if they are missing whether something else can be plugged in or not. Most wouldn’t want to spend the time and effort getting into the innards of Perl, java, c++, php, python only to find out that having commissioned a new centos 4 machine the missing pieces don’t allow a fully deployable solution.

    If you have some insights on what the *missing* or non-open source might be then that would really help in making an informed choice on whether it will be worth the expenditure to peeking under the covers.

    Not being ungrateful or anything (thanks to Vodafone for the $30 million gift ) but will the source there currently fly or not??

    Cheers,

    Sina

  3. Hi,

    Sorry for the very delayed response. The reason for the phrasing ‘majority of the code’ is two-fold, one is that we had to remove code for integrating with various operators and content partners. The other is that we did not release some older clients, eg for dead platforms such as older Series 60, UIQ etc. We also did not release any web related code.

    The released server and clients do work properly end-to-end, you can compile and test run a client directly towards the small OSS server instance that is up and running for this purpose, the build are pre-configured with the correct URLs.

    You do not have to use CentOS 4, I recently pushed some changes which makes the server work fine also on CentOS5 and we successfully used it on the RHEL 6 beta, ie it would be easy to also get it to work on a recent Fedora. Ubuntu/gentoo/whatever should also work fine, there are no hard dependencies on the distribution, only on various versions of libraries used.

    Regards,
    Christian

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>