mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	This is similar to what we have on the website. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
		
			
				
	
	
		
			254 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			254 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Subsurface - an Open Source Divelog
 | ||
| ===================================
 | ||
| 
 | ||
| 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.
 | ||
| 
 | ||
| Subsurface is able to track multi-tank dives with air, Nitrox or TriMix,
 | ||
| weights and exposure protection used, dive masters and dive buddies and
 | ||
| allows the user to rate dives and provide additional dive notes. It
 | ||
| calculates a wide variety of statistics of the user's diving and
 | ||
| calculates and tracks information like SAC rate or OTU.
 | ||
| 
 | ||
| Subsurface allows the user to print out a detailed log book including dive
 | ||
| profiles and other relevant information. The program is localized in about
 | ||
| a dozen languages and well supported by an active developer community. In
 | ||
| fall of 2012 Dirk Hohndel has taken over as Subsurface maintainer.
 | ||
| 
 | ||
| The latest version is Subsurface 2.1, released in October of 2012.
 | ||
| 
 | ||
| License: GPLv2
 | ||
| 
 | ||
| Subsurface can be found at http://subsurface.hohndel.org
 | ||
| 
 | ||
| You can get the latest sources from the git repository:
 | ||
| 
 | ||
| git clone git://subsurface.hohndel.org/subsurface.git .
 | ||
| 
 | ||
| or
 | ||
| 
 | ||
| git clone http://subsurface.hohndel.org/subsurface.git .
 | ||
| 
 | ||
| You can also browse the sources via gitweb.
 | ||
| 
 | ||
| 
 | ||
| Building subsurface under Linux
 | ||
| -------------------------------
 | ||
| You need libxml2-devel, gtk2-devel, glib-2.0 and gconf2-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
 | ||
| glib-2.0 libgconf2-dev, but it seems the cairo package at least in
 | ||
| Squeeze is too old.
 | ||
| 
 | ||
| You also need to have libdivecomputer version 0.2 installed, which goes
 | ||
| something like this:
 | ||
| 
 | ||
| git clone \
 | ||
| git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer
 | ||
| cd libdivecomputer
 | ||
| git checkout v0.2.0
 | ||
| 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.
 | ||
| 
 | ||
| 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.
 | ||
| 
 | ||
| Building subsurface on a Mac
 | ||
| ----------------------------
 | ||
| Install MacPorts and install the dependencies from MacPorts:
 | ||
| sudo port install gtk2 +no_x11 +quartz -x11 libusb gtk-osx-application \
 | ||
|      automake autoconf libtool
 | ||
| 
 | ||
| Install libdivecomputer:
 | ||
| git clone git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer
 | ||
| cd libdivecomputer
 | ||
| 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 with out 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".
 | ||
| 
 | ||
| NOTE! There are often multiple models of dive computers that import
 | ||
| exactly the same way.  If you have a Suunto Gekko, for example, the
 | ||
| import function works fine - even if you don't find the Gekko listed
 | ||
| explicitly.  It has the same import engine as the older Suunto Vyper
 | ||
| (not "Vyper Air").
 | ||
| 
 | ||
| So check the (incomplete?) list of supported dive computers below, and
 | ||
| see which ones show up together.  If you have the "Aeris Elite T3", for
 | ||
| example, you'd notice that it's in the same group with the "Oceanic Atom
 | ||
| 2", and use that choice to import.
 | ||
| 
 | ||
| Suunto:
 | ||
| 
 | ||
|  * Solution
 | ||
| 
 | ||
|  * Eon, Solution Alpha and Solution Nitrox/Vario
 | ||
| 
 | ||
|  * Vyper, Cobra, Vytec, Vytec DS, D3, Spyder, Gekko, Mosquito, Stinger and Zoop
 | ||
| 
 | ||
|  * Vyper2, Cobra2, Cobra3, Vyper Air and HelO2
 | ||
| 
 | ||
|  * D9, D6 and D4
 | ||
| 
 | ||
| Uwatec:
 | ||
| 
 | ||
|  * Aladin
 | ||
| 
 | ||
|  * Memomouse
 | ||
| 
 | ||
|  * Smart and Galileo (infrared)
 | ||
| 
 | ||
| Reefnet:
 | ||
| 
 | ||
|  * Sensus
 | ||
| 
 | ||
|  * Sensus Pro
 | ||
| 
 | ||
|  * Sensus Ultra
 | ||
| 
 | ||
| Oceanic, Aeris, Sherwood, Hollis, Genesis and Tusa (Pelagic):
 | ||
| 
 | ||
|  * VT Pro, Versa Pro, Pro Plus 2, Wisdom, Atmos 2, Atmos AI, Atmos
 | ||
| Elite, ...
 | ||
| 
 | ||
|  * Veo 250, Veo 180Nx, XR2, React Pro, 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), ...
 | ||
| 
 | ||
| Mares:
 | ||
| 
 | ||
|  * Nemo, Nemo Excel, Nemo Apneist, ...
 | ||
| 
 | ||
|  * Puck, Puck Air, Nemo Air, Nemo Wide, ...
 | ||
| 
 | ||
|  * Icon HD
 | ||
| 
 | ||
| Heinrichs Weikamp:
 | ||
| 
 | ||
|  * OSTC, OSTC Mk.2 and OSTC 2N
 | ||
| 
 | ||
| Cressi, Zeagle and Mares (Seiko):
 | ||
| 
 | ||
|  * Edy, Nemo Sport
 | ||
| 
 | ||
|  * N2iTiON3
 | ||
| 
 | ||
| Atomic Aquatics:
 | ||
| 
 | ||
|  * Cobalt
 | ||
| 
 | ||
| 
 | ||
| More detailed end user instructions can be found at Documentation/user-manual.html
 | ||
| 
 | ||
| 
 | ||
| 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
 |