This file contains guidelines for using GnuCash from a git repository. They have been adapted from the guidelines for gnome-libs by Miguel de Icaza who adapted them from guidelines written by Owen Taylor. + In order to build GnuCash from git, you need to run the autogen.sh command to generate a configure script: ./autogen.sh After the ./configure script has been created, you need to run it with all the usual options. See ./configure --help for a reminder. For example: ./configure --enable-ofx --enable-opt-style-install --prefix=/opt/gnucash If in doubt, you can run autogen.sh, run ./configure --help, then re-run ./configure with your options. (Note: Previously, autogen.sh automatically called configure as well. This behaviour was dropped in favor of two separate calls because autogen should be an additional step taken by only by developers using git sources. Configure is a step taken by everyone compiling the sources, be it from git or a tarball.) + Some versions of gettextize don't deal well with re-running themselves. You will see this as an error like: configure.ac:1141: error: `intl/Makefile' is already registered with AC_CONFIG_FILES. autoconf/status.m4:844: AC_CONFIG_FILES is expanded from... configure.ac:1141: the top level autom4te: /usr/bin/m4 failed with exit status: 1 autoheader: /usr/bin/autom4te failed with exit status: 1 **Error**: autoheader failed. If you see this error, it most likely means that you've made some local changes to configure.ac or one or more Makefile.am. You can reset changes on a file-by-file basis with git checkout, e.g. git checkout configure.ac Makefile.am When making changes to GnuCash and trying to commit to the repository: + Ask first. If your changes are major, or could possibly break existing code, you should always ask. If your change is minor and you have been working on gnucash for a while it is probably not necessary to ask. But when in doubt, ask. Even if your change is correct, somebody may know a better way to do things. Since you want other people to review your code before it goes in, you can submit your changes as a patch to gnucash-devel@gnucash.org. See README for details. If you are making changes to gnucash SVN, you should be subscribed to gnucash-devel@gnucash.org and to gnucash-changes@gnucash.org. (Subscription address: http://www.gnucash.org/en/lists.phtml) gnucash-devel@gnucash.org is a good place to ask about intended changes. + You must not break the build! Never check in changes that do not compile, install or run. Just because your local tree compiles doesn't mean you are done. The most common way to break the build is to forget to add new files or directories to git. But it is easy to fix this problem: Clone your local repo, but never make changes in it. After you have committed a set of changes, cd to the clone, run git pull, build and make distcheck. If that passes, it's safe to push. + It's wise to do major work in a branch. That allows you to keep the rest of your repo up to date. It's also better to commit small changes often rather than to make a single large change. Run make check often so that you can quickly find errors. + When code is added from new developers, add them to AUTHORS and to doc/sgml/C/xacc-about.sgml. Dave Peticolas June 21, 2002 Derek Atkins November 21, 2002 Neil Williams November 6th, 2005