GnuCash Logo
Continent: (US) (EU) (AU) Language: English | Français | Deutsch (mirror) | Nederlands | Português  
spacer
dot General Information
spacer dot  Home / News
dot  Features
dot  Screenshots
dot  How To Help
dot  Software Dependencies
dot Documentation
spacer dot  Concepts Guide
dot  Help Manual [de]
dot  SQL HOWTO
dot  more...
dot Help
spacer dot  Mailing Lists
dot  Bug Reports
dot  IRC (Chat)
dot Downloads
spacer dot  USA (master site)
dot  Europe
dot  SourceForge
dot  Australia
dot Developer Information
spacer dot  System Architecture
dot  The Road Ahead
dot  Project Goals
dot  Browse Source Code
dot  CVS Access
dot  Language Translations
dot Other Information
spacer dot  Related Financial Software
dot  GnuCash in the News
dot  GnuCash Banners!
dot  History & Credits
dot  Survey Results
dot  Sizing
dot 
dot Search
spacer

Sort method:

Hacking GnuCash

There are a number of steps to go through to hack on gnucash. You will need to install development (*-devel-*) versions of the packages listed on the tools page. The latest development versions of gnucash may depend on bleeding edge versions of some gnome tools (e.g. gnome-print). You may also need to get unusual or special versions of g-wrap and guppi.

Getting the most recent sources via CVS:

The latest source code, as well as various older versions, are maintained in a publically readable CVS source code repository. Accessing it is simple, and if you plan to be an active developer, there is no better way of getting the source. The CVS tree is not publically writable; once you have patches, you should submit them to the gnucash-patches@gnucash.org mailing list. Documentation changes can be sent to the same place.

If you are new to CVS, you may want to take a moment and visit the Concurrent Versions System Home Page, and in particular, the documentation page. CVS allows multiple users to modify the source code for GnuCash, each without stepping on the toes (and changes) made by others. If CVS seems at first overwhelming, don't let it be so: its quite easy to learn and use.

To access the CVS tree, first, login, as so:

cvs -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot login

The password is "guest" ; after entering the password, you will be immediately returned to the command prompt. You can now use other CVS commands to view the source. To get a copy of the latest/beta development version (which is currently version 1.9.x), do a

cvs -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout gnucash

Building GnuCash:

A complete set of instructions for building GnuCash from source can be found in the README file in the top-level directory. For the impatient, the following instructions might help:

Start with a distributed binary version of GnuCash, in order to get dependencies resolved. For example, Redhat 8.0 provides gnome-desktop-devel-2.0.6-4.i386.rpm, but GnuCash does not currently support gnome2 (as of January 2003). To find a path through the "dependencies hell" this leads to, you could use the following procedure:

  1. Try to install the gnucash binary from your distribution. For example, gnucash-1.6.6-7.i386.rpm
  2. Note the missing dependencies.
  3. Install those dependencies and associated -devel packages (if any).
  4. Go to step 1.
  5. Once you get GnuCash installed, remove it. :-)
  6. Download the source for the latest gnucash development version from CVS. All dependecies except for g-wrap are the same in GnuCash 1.6.x and 1.8.x
  7. Remove g-wrap, if necessary.
  8. Download g-wrap-1.3.4 from http://www.gnucash.org/pub/g-wrap/
  9. Build g-wrap and gnucash
  10. Install additional -devel packages when configure complains

If any of these steps don't make sense to you, you probably need more background material. Start with the README file in the source tree. Note that the GnuCash source code is converted to LXR hyperlinked web pages daily. However, you may find browsing with ctags in your own file system to be a bit speedier.


Getting Older Versions of GnuCash out of CVS:

Older versions and branches can be accessed with tags. The branch containing the latest version of the stable gnucash-1.6.x code is marked with the tag gnucash-1-6-branch . Thus, to check out the latest in the the gnucash-1.6.x series, do the following:

cvs -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout -r gnucash-1-6-branch gnucash

Released versions are tagged with the number of the release. Thus, the tag gnucash-1-6-0 will get you a copy of the source as it was for version 1.6.0. If you are a developer, you should probably be working either in the head branch (HEAD) on the latest beta/development code, or in the gnucash-1-6-branch, squashing any remaining bugs in the current stable version.

Other tags of (mostly historical) interest are:

xacc-09a
Robin Clark's original source from October 1997. For history buffs only: the source has been completely re-written since then.
xacc-10b17
version 1.0.17 (one of the last stable version of xacc, before the name was changed to gnucash).
xacc-10-patch
the tip of the branch of the stable version 1.0.x series.
xacc-11b6
version 1.1.6 (an unstable, development version of gnucash)
xacc-12-patch
the tip of the 1.2 branch. This is the last branch containing motif code. Later versions were re-written in gtk/gnome.
patch-124
version 1.2.4, one of the last in the 1.2.x series.
gnucash-1-4-branch
the tip of the 1.4.x branch, the tip of the previous stable branch.
gnucash-1-6-branch
the tip of the 1.6.x branch, which is the current stable branch.

In order to speed up the performance of CVS, some of the older tags (stuff older than mid-year 2000, mostly; and some newer stuff) and branches have been removed from the mainline CVS tree. To those who are interested in doing historical mining of the CVS tree as it used to be, you can supply an older branch tag to the following repository:

cvs -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout -r <some-tag> gnucash-archive



Getting the most recent sources via FTP:

If you don't like to bother with CVS you can download recent snapshots of the CVS tree from one of the FTP sites below. Note, however, that if you wish to contribute patches and updates to GnuCash, it is strongly recommended that you learn and use CVS. We encourage this because the snapshots can sometimes get a bit dated, and you just might be fixing a bug that's already fixed.

        http://www.linas.org/pub/gnucash/gnucash/sources/

        http://gnucash.planetmirror.com/pub/gnucash/sources/
Copyright © 2001,2002,2003 The GnuCash Project
  Server & email outage reports to: linas@linas.org Validate