mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Updated the README file for 2.1
This clearly hadn't been edited in more than a year and was way outdated. I tried to make it useful and informative :-) Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
55f08bfeab
commit
1b3caa7c70
1 changed files with 115 additions and 64 deletions
179
README
179
README
|
@ -1,45 +1,123 @@
|
|||
Half-arsed divelog software in C.
|
||||
Subsurface - an Open Source Divelog
|
||||
===================================
|
||||
|
||||
I'm tired of Java programs that don't work etc.
|
||||
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.
|
||||
|
||||
License: GPLv2
|
||||
|
||||
You need libxml2-devel, gtk2-devel, glib-2.0 and GConf2-devel to build
|
||||
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)
|
||||
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 installed, which goes something like this:
|
||||
|
||||
git clone git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer
|
||||
cd libdivecomputer
|
||||
autoreconf --install
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
git clone \
|
||||
git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer
|
||||
cd libdivecomputer
|
||||
autoreconf --install
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
|
||||
NOTE! You may need to tell the main Makefile where you installed
|
||||
libdivecomputer if you didn't do it in the default /usr/local location.
|
||||
I don't trust pkg-config for libdivecomputer, since pkg-config usually
|
||||
doesn't work unless the project has been installed by the distro.
|
||||
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
|
||||
|
||||
Jef Driesen, the developer behind libdivecomputer, provided his build
|
||||
instructions on Windows (which are different from what I use):
|
||||
|
||||
./configure --host=i586-mingw32msvc --prefix=$HOME/local
|
||||
PKG_CONFIG_LIBDIR='/opt/i586-mingw32msvc/lib/pkgconfig'
|
||||
make
|
||||
make install
|
||||
|
||||
These use different paths than what I get on Fedora. To do this the way
|
||||
Jef does I would need
|
||||
|
||||
PKG_CONFIG_LIBDIR='/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig'
|
||||
|
||||
Either way, once you have built libdivecomputer you can use sh
|
||||
packaging/Windows/mingw-make.sh to then build subsurface.
|
||||
|
||||
Building subsurface on a Mac
|
||||
|
||||
Provided by Henrik Brautaset Aronsen
|
||||
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
|
||||
|
||||
Just edit the makefile directly. autoconf and friends are the devil's
|
||||
tools.
|
||||
|
||||
Usage:
|
||||
------
|
||||
|
||||
make
|
||||
./subsurface dives/*.xml
|
||||
Install and start from the desktop (or you can run it locally from the
|
||||
build directory).
|
||||
|
||||
to see my dives (with no notes or commentary).
|
||||
./subsurface
|
||||
|
||||
Or, if you have a dive computer supported by libdivecomputer, you can
|
||||
just do
|
||||
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.
|
||||
|
||||
make
|
||||
./subsurface
|
||||
|
||||
and select "Import" from the Log menu, tell it what dive computer you
|
||||
have (and where it is connected if you need to), and hit "OK".
|
||||
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
|
||||
|
@ -114,47 +192,20 @@ Atomic Aquatics:
|
|||
* Cobalt
|
||||
|
||||
|
||||
Implementation details:
|
||||
|
||||
main.c - program frame
|
||||
dive.c - creates and maintaines the internal dive list structure
|
||||
libdivecomputer.c
|
||||
uemis.c
|
||||
parse-xml.c
|
||||
save-xml.c - interface with dive computers and the XML files
|
||||
profile.c - creates the data for the profile and draws it using cairo
|
||||
|
||||
A first UI has been implemented in gtk and an attempt has been made to
|
||||
separate program logic from UI implementation.
|
||||
|
||||
gtk-gui.c - overall layout, main window of the UI
|
||||
divelist.c - list of dives subsurface maintains
|
||||
equipment.c - equipment / tank information for each dive
|
||||
info.c - detailed dive info
|
||||
print.c - printing
|
||||
|
||||
WARNING! I wasn't kidding when I said that I've done this by reading
|
||||
gtk2 tutorials as I've gone along. If somebody is more comfortable with
|
||||
gtk, feel free to send me (signed-off) patches.
|
||||
|
||||
Just as an example of the extreme hackiness of the code, I don't even
|
||||
bother connecting a signal for the "somebody edited the dive info"
|
||||
cases. I just save/restore the dive info every single time you switch
|
||||
dives. Christ! That's truly lame.
|
||||
|
||||
NOTE! Some of the dives are pretty pitiful. All the last dives are from
|
||||
my divemaster course, so they are from following open water students
|
||||
along (many of them the confined*water dives). There a lot of the
|
||||
action is at the surface, so some of the "dives" are 4ft deep and 2min
|
||||
long.
|
||||
|
||||
Contributing:
|
||||
-------------
|
||||
|
||||
Please either send me signed-off patches or a pull request with
|
||||
signed-off commits. If you don't sign off on them, I 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.
|
||||
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
|
||||
|
||||
|
|
Loading…
Reference in a new issue