mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 21:20:19 +00:00
7e64e9a3a9
Signed-off-by: Binoj D <dbinoj@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
315 lines
11 KiB
Text
315 lines
11 KiB
Text
|
|
This is the README file for the latest git version of Subsurface.
|
|
|
|
After the release of Subsurface 3.1 we merged the Qt branch into
|
|
master and are now developing the Qt port of Subsurface in the master
|
|
branch. At this stage the Qt version is not functional as a divelog -
|
|
edit and import capabilities are missing and many other areas need
|
|
more work. So unless you are planning to participate in the ongoing
|
|
development you most likely want to switch to the Gtk branch as that
|
|
will get you the latest version of the fully functional Subsurface.
|
|
|
|
git checkout Gtk
|
|
|
|
If you are indeed planning to work on the Qt version, here are some
|
|
pointers to get you started:
|
|
|
|
Building the Qt version under Linux
|
|
-----------------------------------
|
|
|
|
On Debian you need libqt4-dev, libmarble-dev, libzip-dev.
|
|
Unfortunately the marble version in Debian stable (and possibly
|
|
Ubuntu) appears broken and missing essential header files used in the
|
|
current git version of Subsurface. We hack around this right now by
|
|
including this header file but this needs to be revisited before an
|
|
actual release.
|
|
|
|
On Fedora you need qt-devel, marble-devel, libzip-devel.
|
|
|
|
Building the Qt version under MacOSX
|
|
------------------------------------
|
|
|
|
You might have built MacPorts packages with +quartz dependencies to
|
|
build the previous Subsurface/Gtk version. Switch to the +x11
|
|
dependencies and prepare your system for Subsurface/Qt by doing:
|
|
|
|
sudo port uninstall gtk-osx-application subsurface libdivecomputer
|
|
sudo port install cairo +x11 pango +x11 py27-pygtk +x11 gtk2 +x11
|
|
sudo port install qt4-mac marble libzip libtool libusb
|
|
|
|
Then build libdivecomputer and Subsurface as described below.
|
|
|
|
Subsurface - an Open Source Divelog
|
|
===================================
|
|
|
|
Subsurface is an open source divelog program that runs on Windows, Mac
|
|
and Linux.
|
|
|
|
With Subsurface the user can download dive information directly from a
|
|
large number of supported dive computers. Subsurface is able to track
|
|
single- and multi-tank dives using air, Nitrox or TriMix. It displays
|
|
a dive profile with all related information including air consumption
|
|
and alarms. It also allows logging of information like weights and
|
|
exposure protection used, dive masters and dive buddies and enables
|
|
the user to rate dives and provide additional dive notes.
|
|
|
|
With Subsurface the user can track dive locations including GPS
|
|
coordinates (which can also be conveniently entered using a map
|
|
interface). Subsurface calculates a wide variety of statistics of the
|
|
user's diving and keeps track of information like the user's SAC rate,
|
|
partial pressures of O2, N2 and He, calculated deco information, and
|
|
many more.
|
|
|
|
Subsurface allows the user to print out a detailed log book including
|
|
dive profiles and other relevant information. The program is localized
|
|
in more than a dozen languages and well supported by an active
|
|
developer community.
|
|
|
|
One of the major strengths of Subsurface is its support of a wide range
|
|
of dive computers (most common dive computers are supported with the help
|
|
of libdivecomputer); a detailed list is at
|
|
http://subsurface.hohndel.org/documentation/supported-dive-computers).
|
|
Subsurface can also import existing dive logs from several sources
|
|
including MacDive, Suunto DM3/DM4, JDiveLog and divelogs.de. Another
|
|
strength is its ability to visualize the depth profile (and, if
|
|
available, the tank pressure curve) in very innovative ways that give
|
|
the user additional information on relative velocity (and momentary
|
|
air consumption) during the dive through the coloring of the graphs.
|
|
|
|
The latest public version is Subsurface 3.1, released in May of 2013.
|
|
|
|
License: GPLv2
|
|
|
|
Subsurface can be found at http://subsurface.hohndel.org
|
|
|
|
You can get the sources to the latest development version from the git
|
|
repository:
|
|
|
|
git clone git://subsurface.hohndel.org/subsurface.git .
|
|
|
|
You can also browse the sources via gitweb at git.hohndel.org
|
|
|
|
If you want the latest release (instead of the bleeding edge
|
|
development version) you can either get this via
|
|
|
|
git checkout v3.1 (or whatever the last release is)
|
|
|
|
if you have already cloned the git repository as shown above or you
|
|
can get a tar ball from
|
|
|
|
http://subsurface.hohndel.org/downloads/Subsurface-3.1.tgz
|
|
|
|
|
|
Building subsurface under Linux
|
|
-------------------------------
|
|
You need libxml2-devel, libxslt-devel, gtk2-devel, glib2-devel,
|
|
gconf2-devel, libsoup-devel, osm-gps-map-devel, libsqlite3x-devel, and
|
|
libzip-devel to build this (and libusb-1.0 if you have libdivecomputer
|
|
built with it, but then you obviously already have it installed).
|
|
Check with your Linux distribution how to install these packages.
|
|
|
|
On Debian the package names are different; try libxml2-dev,
|
|
libgtk2.0-dev, libglib2.0-dev, libgconf2-dev, libsoup2.4-dev,
|
|
libosmgpsmap-dev, libsqlite3-dev, libxslt1-dev, libzip-dev,
|
|
zlib1g-dev.
|
|
|
|
Note that contrary to earlier versions of Subsurface, starting in v3.1
|
|
XSLT, LIBZIP and OSMGPSMAP are no longer optional but instead are
|
|
required to build.
|
|
|
|
You also need to have libdivecomputer installed. The current git
|
|
versions of Subsurface assume that you use libdivecomputer version
|
|
0.4, which goes something like this:
|
|
|
|
git clone git://git.libdivecomputer.org/libdivecomputer
|
|
cd libdivecomputer
|
|
git checkout release-0.4
|
|
autoreconf --install
|
|
./configure
|
|
make
|
|
sudo make install
|
|
|
|
NOTE! Sometimes you may need to tell the main Subsurface Makefile where
|
|
you installed libdivecomputer; pkg-config for libdivecomputer doesn't
|
|
always work unless the project has been installed by the distro.
|
|
|
|
Just edit the makefile directly.
|
|
|
|
|
|
Building Subsurface under Windows
|
|
---------------------------------
|
|
Subsurface builds nicely with MinGW - the official builds are done as
|
|
cross builds under Linux (currently on Fedora 17). A shell script to do
|
|
that (plus the .nsi file to create the installer with makensis) are
|
|
included in the packaging/Windows directory.
|
|
|
|
Strangely the developers have failed to make 'https' support work in
|
|
the cross-built Windows binaries. As a workaround at this point the
|
|
cross built Windows binaries use http instead https connections (right
|
|
now this only applies to divelogs.de uploads).
|
|
|
|
The best way to get libdivecomputer to build appears to be
|
|
|
|
mingw32-configure
|
|
mingw32-make
|
|
sudo mingw32-make install
|
|
|
|
Once you have built and installed libdivecomputer you can use
|
|
|
|
sh packaging/Windows/mingw-make.sh
|
|
|
|
to then build subsurface. In order to create an installer simply use
|
|
|
|
sh packaging/Windows/mingw-make.sh create-windows-installer
|
|
|
|
|
|
Building subsurface on a Mac
|
|
----------------------------
|
|
Install MacPorts and install the dependencies from MacPorts:
|
|
|
|
sudo port install libusb libtool libzip qt4-mac marble
|
|
|
|
Install libdivecomputer:
|
|
git clone git://git.libdivecomputer.org/libdivecomputer
|
|
cd libdivecomputer
|
|
git checkout release-0.4
|
|
autoreconf --install
|
|
LIBUSB_CFLAGS=-I/opt/local/include ./configure
|
|
make
|
|
sudo make install
|
|
|
|
Install subsurface:
|
|
git clone git://subsurface.hohndel.org/subsurface.git
|
|
cd subsurface
|
|
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" make
|
|
sudo make install-macosx
|
|
|
|
More instructions on how to create a Subsurface DMG can be found in
|
|
packaging/macosx/README
|
|
|
|
|
|
Usage:
|
|
======
|
|
|
|
Install and start from the desktop (or you can run it locally from the
|
|
build directory).
|
|
|
|
./subsurface
|
|
|
|
You can give a data file as command line argument, or Subsurface picks a
|
|
default file for you when started from the desktop or without an argument.
|
|
|
|
If you have a dive computer supported by libdivecomputer, you can just
|
|
select "Download from Divecomputer" from the Log menu, tell it what dive
|
|
computer you have (and where it is connected if you need to), and hit
|
|
"OK".
|
|
|
|
The latest list of supported dive computers can be found at
|
|
http://subsurface.hohndel.org/documentation/supported-dive-computers/
|
|
|
|
At the time of the 3.1 release they were:
|
|
Atomics Aquatics
|
|
Cobalt
|
|
Cressi / Zeagle / Mares
|
|
Edy, Nemo Sport
|
|
N2iTiON3
|
|
Leonardo
|
|
Mares
|
|
Nemo, Nemo Excel, Nemo Apneist,...
|
|
Puck, Puck Air, Nemo Air, Nemo Wide,...
|
|
Darwin, Darwin Air, M1, M2, Airlab
|
|
Icon HD, Icon HD Net Ready, Nemo Wide 2
|
|
Oceanic / Aeris / Sherwood / Hollis / Genesis / Tusa (Pelagic)
|
|
VT Pro, Versa Pro, Pro Plus 2, Pro Plus 3, Wisdom, Atmos 2, Atmos AI, Atmos Elite,...
|
|
Veo 250, Veo 180Nx, XR2, React Pro, React Pro White, DG02, Insight,...
|
|
Atom 2.0, VT3, Datamask, Geo, Geo 2.0, Veo 2.0, Veo 3.0, Pro Plus 2.1,
|
|
Compumask, Elite T3, Epic, Manta, IQ-900 (Zen), IQ-950 (Zen Air), IQ-750 (Element II),...
|
|
Heinrichs Weikamp
|
|
OSTC, OSTC Mk.2, OSTC 2N, OSTC3
|
|
Frog
|
|
Reefnet
|
|
Sensus
|
|
Sensus Pro
|
|
Sensus Ultra
|
|
Shearwater
|
|
Predator, Petrel
|
|
Suunto
|
|
Solution
|
|
Eon, Solution Alpha and Solution Nitrox/Vario
|
|
Vyper, Cobra, Vytec, Vytec DS, D3, Spyder, Gekko, Mosquito, Stinger, Zoop
|
|
Vyper2, Cobra2, Cobra3, Vyper Air and HelO2
|
|
DX, D9, D6, D4, D9tx, D6i and D4i
|
|
Uemis
|
|
Zurich
|
|
Uwatec
|
|
Aladin
|
|
Memo Mouse
|
|
Smart, Galileo (infraread)
|
|
Zeagle
|
|
N2iTiON 3
|
|
|
|
|
|
More detailed end user instructions can be found at Documentation/user-manual.html
|
|
and http://subsurface.hohndel.org/documentation/user-manual/
|
|
|
|
|
|
Contributing:
|
|
-------------
|
|
|
|
There is a mailing list for developers: subsurface@hohndel.org
|
|
Go to http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface
|
|
to subscribe.
|
|
|
|
If you want to contribute code, please either send signed-off patches or
|
|
a pull request with signed-off commits. If you don't sign off on them,
|
|
we will not accept them. This means adding a line that says
|
|
"Signed-off-by: Name <email>" at the end of each commit, indicating that
|
|
you wrote the code and have the right to pass it on as an open source
|
|
patch.
|
|
|
|
See: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html
|
|
|
|
Also, please write good git commit messages. A good commit message
|
|
looks like this:
|
|
|
|
Header line: explaining the commit in one line
|
|
|
|
Body of commit message is a few lines of text, explaining things
|
|
in more detail, possibly giving some background about the issue
|
|
being fixed, etc etc.
|
|
|
|
The body of the commit message can be several paragraphs, and
|
|
please do proper word-wrap and keep columns shorter than about
|
|
74 characters or so. That way "git log" will show things
|
|
nicely even when it's indented.
|
|
|
|
Reported-by: whoever-reported-it
|
|
Signed-off-by: Your Name <youremail@yourhost.com>
|
|
|
|
where that header line really should be meaningful, and really should be
|
|
just one line. That header line is what is shown by tools like gitk and
|
|
shortlog, and should summarize the change in one readable line of text,
|
|
independently of the longer explanation.
|
|
|
|
|
|
|
|
CREDITS:
|
|
========
|
|
|
|
This file was originally started by Linus.
|
|
The initial instructions for building on a Mac were provided by Henrik Brautaset Aronsen
|
|
Jef Driessen helped creating the cross-building instructions for Windows
|
|
|
|
A bit of Subsurface history:
|
|
----------------------------
|
|
|
|
In fall of 2011, when a forced lull in kernel development gave him an
|
|
opportunity to start on a new endeavor, Linus Torvalds decided to tackle
|
|
his frustration with the lack of decent divelog software on Linux.
|
|
|
|
Subsurface is the result of the work of him and a team of developers since
|
|
then. It now supports Linux, Windows and MacOS and allows data import from
|
|
a large number of dive computers and several existing divelog programs. It
|
|
provides advanced visualization of the key information provided by a
|
|
modern dive computer and allows the user to track a wide variety of data
|
|
about their diving.
|