Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Advanced multi-platform divelog based on Qt
C++ C XSLT JavaScript Shell QMake Other

Remove rules and control files for Ubuntu 12.04

Since we got rid of all the Qt4 support there is no point in having those
files around anymore, either.

Signed-off-by: Dirk Hohndel <>
latest commit 1a97d011bf
@dirkhh dirkhh authored
Failed to load latest commit information.
.tx Add simple glossary
Documentation Tidy up bluetooth FAQ entry
ReleaseNotes Merge branch 'v4.4-branch' into newmaster
android Turns out the manifest doesn't allow a dash in the name
appdata Replace other references to
cmake/Modules cmake: allow looking for optional libraries
dives Adapt CSV test to include suit
icons Add better icons for the filter dialog
marbledata FindMarble moved to cmake/Modules
packaging Remove rules and control files for Ubuntu 12.04
qt-ui Remove support for Qt4 (part 6)
scripts Set the shared library file extenstion for the specific platform.
tests Adapt CSV test to include suit
theme HTML: don't collapse the dive if hyperlink is clicked
translations Merge branch 'v4.4-branch' into newmaster
xslt Clean up MacDive location conversion
.clang-format Small tweaks to our whitespace handling
.gitattributes Ignore some files when archiving.
.gitignore Complement the CMakesList.txt with the latest file inclusions.
CMakeLists.txt Add a new class, QtWaitingSpinner, MIT Licensed.
CodingStyle CodingStyle: add an extra line for the braces explaination
INSTALL Merge branch 'v4.4-branch' into newmaster
README Get started on Subsurface 4.4.2
Readme.testing Information on writing test cases
Readme.ubuntu Update Readme.ubuntu
SupportedDivecomputers.html Make SupportedDivecomputer HTML more compact
SupportedDivecomputers.txt Improve generation of list of supported dive computers
TODO.CCR Update todo list for CCR
android.cpp Create a subsurface_access for Android too
cochran.c Fix memory leaks on Cochran file
cochran.h Eliminate packed struct for Cochran
color.h CVS import UI: mark the column names in blue as well
configuredivecomputer.cpp Use correct flag when connecting the progress events to the progress bar
configuredivecomputer.h Connect the progress events to the progress bar
configuredivecomputerthreads.cpp ifdef hw_ostc3_device_config_{read,write} usage
configuredivecomputerthreads.h Add infrastructure to emit progress from threads
datatrak.c Remove some white spaces
datatrak.h datatrak: some codings style fixes and fopen() usage
deco.c Use SAC from preferences for PSCR oxygen drop
deco.h Tissue saturation plot a la Sherwater Pretel
descriptor3.tsv Add structured file with list of supported dive computers
device.c Massive automated whitespace cleanup
device.h Massive automated whitespace cleanup
devicedetails.cpp Define new OSTC3 settings in devicedetails
devicedetails.h Define new OSTC3 settings in devicedetails
display.h Print: add the support to store margins and printer options
dive.c Tag list handling: add two new helpers
dive.h Only add disclaimer and runtime table if we added deco to replanne dive
divecomputer.cpp Don't reimplement the clear() method
divecomputer.h Don't reimplement the clear() method
divelist.c Change one more spot in divelist.c from locations to dive sites
divelist.h Deselect dives that are no longer shown as the dive list is filtered
divesite.c divesite.c: use rand() instead of random()
divesite.h Add helper function to detect empty dive sites
divesitehelpers.cpp Fix typo
divesitehelpers.h Fix typo
equipment.c Use correct name for oxygen
exif.cpp Break picture handling code from C++ to C.
exif.h Break picture handling code from C++ to C.
file.c Add suit field for CSV import
file.h OSTCTools-Add support to import .dive files
gaspressures.c Check error code of get_cylider_idx_by_use()
gaspressures.h Some gas handling improvements
gettext.h Add comment for "below floor" event
gettextfromc.cpp Make the cache cache things
gettextfromc.h Explicitly include needed include file
git-access.c Fix Ubuntu compilation error.
gpl-2.0.txt Add a copy of the GPL v2 to the project
helpers.h Move helper functions around
libdivecomputer.c Add a default case for switch over dc_family_t
libdivecomputer.h libdivecomputer.c: Add support for raw data buffer parse using libdc
linux.c Add subsurface_access()
liquivision.c Ignore buddy pressures in Liquivision import
load-git.c load-git::walk_tree_file - missing break in switch
macos.c Add subsurface_access()
main.cpp Remove the ProfileWidget from mainwindow.ui
membuffer.c membuffer: add helper functions to return regular C strings
membuffer.h membuffer: add helper functions to return regular C strings
ostctools.c ostctools - resource leaks
parse-xml.c Fix typo
planner.c Be more precise about the safety-stop.
planner.h Introduce recreational planner mode
pref.h Add option to display GPS coordinates as decimals
profile.c Event name should be a const char *
profile.h Correcly look at all relevant dive computer structures
qt-gui.cpp Remove support for Qt4 (part 7)
qt-gui.h Main: separate the QApplication and UI creation
qthelper.cpp Remove support for QT4 (part 3)
qthelper.h Load remote images
satellite.svg Satellite icon diet
save-git.c Add hashes to images
save-html.c Make exporting photos with HTML optional
save-html.h HTML: Save data with user selected units
save-xml.c Rename helper function and make it global
sha1.c Another small tweak to whitespace tool
sha1.h Massive automated whitespace cleanup
statistics.c Better testing if the first gas is explicit
statistics.h Make gas use statistics be coherent and more complete
strtod.c Massive automated whitespace cleanup
subsurface-configure.pri More flexibility when linking statically against libgit2
subsurface-gen-version.pri PRI: include some variables in the version generation
subsurface-icon.svg Rename subsurface.svg to subsurface-icon.svg
subsurface-install.pri Allow overriding makensis program
subsurface.desktop Add a trailing ';' to the Keywords in the subsurface.desktop file Prepare for removing qmake support
subsurface.qrc Hook up DiveLog import
subsurfacestartup.c Add option to display GPS coordinates as decimals
subsurfacestartup.h Free strduped prefs before exit
subsurfacesysinfo.cpp Fix build on older Macs
subsurfacesysinfo.h Remove support for Qt4 (part 2)
terms Be more consistent in partial pressure naming
time.c Massive automated whitespace cleanup
uemis-downloader.c Merge branch 'v4.4-branch' into newmaster
uemis.c Uemis downloader: don't use bogus sensor data from Uemis
uemis.h Uemis downloader: allow continuing download by clicking Retry
units.h Fix picture loading
version.c add and use a version.c / version.h pair
version.h add and use a version.c / version.h pair
webservice.h Put include guard to every header
windows.c windows.c: small cleaup in the wrapper functions
worldmap-options.h Gratuitous whitespace changes
worldmap-save.c Fix error on HTML worldmap exports.
worldmap-save.h Gratuitous whitespace changes
wreck.jpg Include images in profile


This is the README file for Subsurface 4.4.2

Please check the ReleaseNotes.txt for details about new features and
changes since Subsurface 4.4.1 (and earlier versions).

Subsurface can be found at

Our user forum is at
We also try to respond to questions in the dive software
forum at

Report bugs and issues at

License: GPLv2

You can get the sources to the latest development version from the git

git clone git:// .

You can also browse the sources via gitweb at the same site.

If you want the latest release (instead of the bleeding edge
development version) you can either get this via git or the release tar
ball. After cloning run the following command:

git checkout v4.4.2  (or whatever the last release is)

or download a tar ball from:

Detailed build instructions can be found in the INSTALL file.

Basic Usage:

Install and start from the desktop, or you can run it locally from the
build directory:

On Linux:

$ ./subsurface

On Mac:

$ open

Native builds on Windows are not really supported (the official Windows
installers are both cross-built on Linux).

You can give a data file as command line argument, or (once you have
set this up in the Preferences) 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 "Import from Divecomputer" from the "Import" menu, select which
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 in the file

Much more detailed end user instructions can be found from inside
Subsurface by selecting Help (typically F1). When building from source
this is also available as Documentation/user-manual.html. The
documentation for the latest release is also available on-line


There is a mailing list for developers:
Go to
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


Also, please write good git commit messages.  A good commit message
looks like this:

	Header line: explain the commit in one line (use the imperative)

	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.

	Make sure you explain your solution and why you're doing what you're
	doing, as opposed to describing what you're doing. Reviewers and your
	future self can read the patch, but might not understand why a
	particular solution was implemented.

	Reported-by: whoever-reported-it
	Signed-off-by: Your Name <>

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. Please use verbs in the
imperative in the commit message, as in "Fix bug that...", "Add
file/feature ...", or "Make Subsurface..."

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.

In fall of 2012 Dirk Hohndel took over as maintainer of Subsurface.
Something went wrong with that request. Please try again.