| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | Subsurface - an Open Source Divelog =================================== | 
					
						
							| 
									
										
										
										
											2011-09-01 10:09:53 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 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. | 
					
						
							| 
									
										
										
										
											2011-09-01 10:09:53 -07:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | License: GPLv2 | 
					
						
							| 
									
										
										
										
											2011-09-03 08:53:05 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2011-09-22 15:20:26 -07:00
										 |  |  |  | this (and libusb-1.0 if you have libdivecomputer built with it, but then | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 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. | 
					
						
							| 
									
										
										
										
											2011-09-03 08:53:05 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | You also need to have libdivecomputer version 0.2 installed, which goes | 
					
						
							|  |  |  |  | something like this: | 
					
						
							| 
									
										
										
										
											2011-09-12 14:05:44 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | git clone \ | 
					
						
							|  |  |  |  | git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer | 
					
						
							|  |  |  |  | cd libdivecomputer | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | git checkout v0.2.0 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | autoreconf --install | 
					
						
							|  |  |  |  | ./configure | 
					
						
							|  |  |  |  | make | 
					
						
							|  |  |  |  | sudo make install | 
					
						
							| 
									
										
										
										
											2011-09-12 14:05:44 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 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. | 
					
						
							| 
									
										
										
										
											2011-09-22 15:20:26 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | Just edit the makefile directly. | 
					
						
							| 
									
										
										
										
											2011-09-22 15:20:26 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-03 08:53:05 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 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 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | Once you have built and installed libdivecomputer you can use  | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | sh packaging/Windows/mingw-make.sh  | 
					
						
							| 
									
										
										
										
											2011-09-03 08:53:05 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | to then build subsurface. | 
					
						
							| 
									
										
										
										
											2011-09-03 08:53:05 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | Building subsurface on a Mac | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | ---------------------------- | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | Install MacPorts and install the dependencies from MacPorts: | 
					
						
							|  |  |  |  | sudo port install gtk2 +no_x11 +quartz -x11 libusb gtk-osx-application \ | 
					
						
							|  |  |  |  |      automake autoconf libtool | 
					
						
							| 
									
										
										
										
											2011-09-12 14:05:44 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 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 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | More instructions on how to create a Subsurface DMG can be found in | 
					
						
							|  |  |  |  | packaging/macosx/README | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | Usage: | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | ====== | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 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". | 
					
						
							| 
									
										
										
										
											2011-09-12 14:05:44 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-27 14:09:21 -07:00
										 |  |  |  | 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 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-03 08:53:05 -07:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | More detailed end user instructions can be found at Documentation/user-manual.html | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-06 12:32:51 -07:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | Contributing: | 
					
						
							| 
									
										
										
										
											2012-10-19 21:22:59 -07:00
										 |  |  |  | ------------- | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 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. | 
					
						
							| 
									
										
										
										
											2011-09-06 12:32:51 -07:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | See: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-06 14:58:05 -07:00
										 |  |  |  | Also, please write good git commit messages.  A good commit message | 
					
						
							|  |  |  |  | looks like this: | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-27 17:53:14 +01:00
										 |  |  |  | 	Header line: explaining the commit in one line | 
					
						
							| 
									
										
										
										
											2011-09-06 14:58:05 -07:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	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. | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-27 17:53:14 +01:00
										 |  |  |  | 	The body of the commit message can be several paragraphs, and | 
					
						
							| 
									
										
										
										
											2011-09-06 14:58:05 -07:00
										 |  |  |  | 	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. | 
					
						
							| 
									
										
										
										
											2012-10-21 19:27:14 -07:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 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 | 
					
						
							|  |  |  |  | 
 |