Developer Information
This document contains various information for developers or anyone interested in contributing to NetSurf.
Last updated 11 November 2007
Source control
The source is kept in a Subversion repository. To check the source out use the command:
$ svn checkout svn://svn.netsurf-browser.org/trunk/netsurf
You can also browse the source via the web interface.
Recent changes can be seen on the development page. An an RSS feed of recent changes is also provided by CIA. All checkins are reported on the Commits mailing list.
Contact James to get write access to the SVN repository.
Compiling
The recommended compiler is GCC. A guide to building NetSurf on RISC OS is available, as are instructions for building the GTK version. NetSurf can also be cross-compiled for RISC OS using GCCSDK.
The autobuilder compiles NetSurf every 15 minutes if changes have been checked into SVN.
A debug version of NetSurf can be built. This is command-line only and does not include any GUI code. It runs natively on Linux so can be debugged and checked using gdb, efence, valgrind, etc.
Dependencies
In addition to the compiler, NetSurf requires a number of additional tools to be available. These are enumerated below. Additionally, the libraries which NetSurf uses are also listed
Tools
- Lemon parser generator (http://www.hwaci.com/sw/lemon/)
- re2c lexer (http://re2c.org/)
Libraries
- cAres & cURL (http://curl.haxx.se/libcurl/)
- IJG JPEG library (http://www.ijg.org/)
- MNG decoding library (http://www.libmng.com/)
- OpenSSL (http://www.openssl.org/)
- libXML 2 (http://www.xmlsoft.org/)
- Zlib (http://www.zlib.org)
RISC OS specific libraries
- OSLib 6.80 or later (http://ro-oslib.sourceforge.net/)
- Pencil (http://source.netsurf-browser.org/trunk/pencil/)
- RUfl (http://zamez.org/rufl)
Source documentation
See the Docs directory for source code documentation. Our pictorial Style Guide (single-page PDF) shows our code style.
Communication
The main method of communication between the developers is the #netsurf
IRC channel.
The developers' mailing list is also used for less transient communication.
Translations
Translations of NetSurf to other languages are welcome. No programming knowledge is required, just the ability to use a template editor and a text editor. Please see the translations page for more information.