Menu

Source_code

Guilhem BONNEFILLE Rob Norris Christoph Eckert Jocelyn

Downloading the source code

Releases can be found on SourceForge, and are packaged in a tar.gz package. Direct link is: https://sourceforge.net/project/showfiles.php?group_id=83870&pac....

There is a Git repository, which contains the latest version of Viking. To download it, just launch:

git clone git://git.code.sf.net/p/viking/code

If you were following the old Sourceforge repository location you'll need to point it to the new one above, such as via this command:

git remote set-url origin git://git.code.sf.net/p/viking/code

Commit History

You can also view the code online. Use the History feature on that page to see the code commit logs.

Individual commits referenced by an SHA Id can be found by entering the SHA in the URL like this:

http://sourceforge.net/p/viking/code/ci/<SHA>

Bugs + Features Lists

Search the appropriate tracker list with the SourceForge#ID will find the ticket from the old reference.

Previously SourceForge used to auto redirect these old URLs to the new IDs, but at the time of writing this no longer works:

http://sourceforge.net/tracker/index.php?func=detail&group_id=83870&atid=570955&aid=<SourceForge#ID>

Core Developer Repositories

Potential future code and other on going works can be found here:

Requirements

The following libraries are necessary to compile the latest version of Viking:

  • gtk+ version 3.22 at least
  • glib version 2.44 at least
  • libcurl
  • libexpat

Currently compiling with GTK2 is possible, but as GTK2 is unmaintained it is thus also not fully supported here and may be completely dropped in a future version.
Older versions of Viking have lesser requirements in both versions of libraries needed and the libraries used, the exact requirements are not described here, running autogen / configure tools should inform you about the versions needed for the particular source code instance of Viking.

Default libraries needed (but can be optionally disabled):

  • libbz2
  • libmagic
  • libsqlite3
  • libmapnik
  • libgps
  • libgexiv2
  • libzip
  • liboauth
  • libnettle
  • libgeoclue2.0
  • libnova - Viking v1.10+

Required programs:

  • gettext
  • autoconf
  • automake
  • autopoint
  • xxd - Viking 1,10+

Viking can be compiled with gcc or clang.

Optional:

  • C++ compiler e.g. g++ - when building with libmapnik (the default).
  • docbook and xlstproc for man pages & help page generation

Debian/Ubuntu

On Debian/Ubuntu, the source package already contains all the necessary dependencies. If you don't want to install it, the following command will install them:

apt-get install gnome-common libcurl4-gnutls-dev libexpat1-dev libgtk2.0-dev libglib2.0-dev libgps-dev libbz2-dev libmagic-dev libmapnik2-dev libgexiv2-dev libzip-dev nettle-dev libgeoclue-2-dev libnova-dev gnome-doc-utils docbook-xsl docbook-xml

Viking also needs gtk-doc utilities to compile when using the autogen.sh method:

apt-get install gtk-doc-tools

openSUSE

For openSUSE you will need to install these packages:

gnome-common gnome-utils-devel libcurl-devel libexpat-devel gtk2-devel gpsd-devel libgevix2-devel libbz2-devel libmagic-devel libmapnik2-devel geoclue2-devel liboauth-devel libgps-devel libnettle-devel libnova-devel

Windows

Windows requires much more manual work to set up a build environment and the necessary dependencies. This is documented in this separate section Windows Build Instructions.

Mac OS

Viking is supported via Mac Ports.

Some extra notes on setting up the environment for Mac OS see here MacOS Builds.

Then follow the standard compiling instructions below.

Options

Builds can be performed without libgps, libmapnik or other features via running ./autogen.sh with the appropriate --disable-FEATURE argument. To see the available options:

./autogen.sh -h

Optional but recommended run-time programs:

  • gpsbabel
  • gpsd
  • unbuffer (Used if available - in git code dated 2011-09-11 onwards - for Debian this is in the package expect-dev)

Compiling

If you took the source code from a .tar.gz package, please execute the following commands:

tar -xzvf viking-x.y.z.tar.gz
cd viking
./configure
make
sudo make install   # if you want to install in /usr/local - need to have root permissions to install

If you took the source from git, you will have to execute before ./configure:

./autogen.sh

If you want a fast build using all the available CPUs of your computer, then this command should make it so:

make -j

Related

Main Wiki: Contribute
Main Wiki: Development
Main Wiki: Download
Main Wiki: MacOSBuilds
Main Wiki: Main_Page
Main Wiki: WindowsBuildInstructions