mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-30 04:33:55 -06:00
GnuCash Double-Entry Accounting Program.
dc0e2a563a
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5732 57a11ea4-9604-0410-9ed3-97b8803252fd |
||
---|---|---|
accounts | ||
debian | ||
doc | ||
doc-tools | ||
intl-scm | ||
lib | ||
macros | ||
po | ||
rpm | ||
src | ||
.cvsignore | ||
acconfig.h | ||
acinclude.m4 | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog | ||
ChangeLog.1 | ||
configure.in | ||
gnucash-config.in | ||
gnucash.lsm | ||
gnucash.m4 | ||
HACKING | ||
make-gnucash-patch.in | ||
make-gnucash-potfiles.in | ||
Makefile.am | ||
missing | ||
mkinstalldirs | ||
NEWS | ||
README | ||
README.cvs | ||
README.patches | ||
TODO |
############################################################ GnuCash 1.7.x README file. NOTE: THIS IS A DEVELOPMENT RELEASE!!! THIS VERSION HAS NOT BEEN TESTED PROPERLY AND MAY DO ABSOLUTELY ANYTHING! USE AT YOUR OWN RISK (AND KEEP *LOTS* OF BACKUPS) If you want something a bit more tested, please use the 1.6 stable series. ------------------------------------------------------------ ################## Table of Contents: ------------------ - Overview - Upgrading from 1.4.x - Dependencies - Invocation/running - Internationalization - Building & Installing - Supported Platforms - Additional Download Sites - Getting the Source via CVS - Developing GnuCash ######## Overview -------- GnuCash is a personal finance manager. A check-book like register GUI allows you to enter and track bank accounts, stocks, income and even currency trades. A full set of reports allow you to see the state of your finances. The interface is designed to be simple and easy to use, but is backed with double-entry accounting principles to ensure balanced books. Features include: - An easy-to-use interface. If you can use the register in the back of your checkbook, you can use GnuCash. Type directly into the register, tab between fields, and use quick-fill to automatically complete the transaction. The interface is customizable from within the application itself (no editing config files :) ) - Quicken File Import: Import Quicken QIF style files. QIF files are automatically merged to eliminate duplicate transactions. - Reconcile window with running reconciled and cleared balances makes reconciliation easy. - Stock/Mutual Fund Portfolios: Track stocks individually (one per account) or in portfolio of accounts (a group of accounts that can be displayed together). - Get Stock & Mutual Fund quotes from various web sites, update portfolio automatically (more funds being added regularly). - Reports: Display Balance Sheet, Profit&Loss, Portfolio Valuation, Transaction Reports, or account balance tracking, or export them as HTML. You can write your own custom report if you know a little Scheme. Reports can now be performed over an accounting period! - Multiple Currencies & Currency Trading: Multiple currencies are supported and can be bought and sold (traded). Currency movements between accounts are fully balanced when double-entry is enabled. (Some aspects of multiple currency support are not fully implemented.) - Chart of Accounts: A master account can have a hierarchy of detail accounts underneath it. This allows similar account types (e.g. Cash, Bank, Stock) to be grouped into one master account (e.g. Assets). - Split Transactions: A single transaction can be split into several pieces to record taxes, fees, and other compound entries. - Double Entry: When enabled, every transaction must debit one account and credit another by an equal amount. This ensures that the "books balance": that the difference between income and outflow exactly equals the sum of all assets, be they bank, cash, stock or other. - Income/Expense Account Types (Categories): These serve not only to categorize your cash flow, but when used properly with the double-entry feature, these can provide an accurate Profit&Loss statement. - General Ledger: Multiple accounts can be displayed in one register window at the same time. This can ease the trouble of tracking down typing/entry errors. It also provides a convenient way of viewing a portfolio of many stocks, by showing all transactions in that portfolio. - Written in C with embedded scheme support via Guile. - File access is locked in a network-safe fashion, preventing accidental damage if several users attempt to access the same file, even if the file is NFS-mounted. - Provides a byte-stream format, which allows accounts and account groups to be transmitted to other processes via pipes or sockets. - International date handling, many different translations. Home Page: http://gnucash.org/ Precompiled binaries: http://www.gnucash.org/pub/gnucash/ Development versions: http://www.gnucash.org/source_code.php3 #################### Upgrading from 1.4.x -------------------- There are many, many changes from the 1.4 series - have a look at the NEWS file if you want more details. In particular, GnuCash now requires the gtkhtml and guppi libraries. See the "dependencies" section of this file for more detail. The file format has changed from a binary format to XML. So backup your data! We hope you enjoy all the new features! ############ Dependencies ------------ The following packages are required to be installed to run GnuCash: Gnome 1.4: see www.gnome.org for more information. guile: provides main extension language infrastructure, used extensively in GnuCash for initialization & startup. Requires version 1.3.4 or later. Version 1.4 is noticeably speedier and is recommended if possible. You can obtain source from ftp://ftp.gnu.org/pub/gnu/guile/guile-1.4.tar.gz slib: scheme libraries for guile. Need version slib2c4 or later. You can find source at http://swissnet.ai.mit.edu/ftpdir/scm/slib2d1.zip libpng: portable network graphics library. Any version. You can find the source at ftp://swrinde.nde.swri.edu/pub/png/src/libpng-1.0.9.tar.gz. libjpeg: JPEG image handling library. Any version. Sources can be found at ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz. libz: compression library. Any version. You can find source at http://www.gzip.org/zlib.tar.gz. xpm: X Pixmap extension. Any version. Normally distributed with an X installation. By default this is part of XFree86 4.0 or better. You can also find this at ftp://ftp.x.org/contrib/libraries/xpm-3.4k.tar.gz. gnome-libs: version 1.2.0 or higher should work. The latest version, 1.2.13, is of course recommended. These libraries require numerous other supporting libraries, such as gtk and glib. All of these can be found at ftp.gnome.org. gnome-print: any recent version should work, however problems have been reported with 0.28. This is a part of GNOME as well. Sources at ftp://ftp.gnome.org/pub/GNOME/stable/sources/gnome-print gdk-pixbuf: any recent version should work. This is typically distributed with GNOME. Sources at ftp://ftp.gnome.org/pub/GNOME/stable/sources/gdk-pixbuf. gtkhtml: version 0.8 and later should work. You can obtain the latest version of gtkhtml from Helix Code. Note that this has changed since 1.4, which used the older gtkxmhtml library. Sources can be found at ftp://ftp.gnome.org/pub/GNOME/unstable/sources/gtkhtml/. guppi: version 0.35.3 should work. Version 0.35.5 is required for some advanced functionality. This can be found at ftp://ftp.gnome.org/pub/GNOME/stable/sources/Guppi. You may need to configure it with `--prefix=/usr' in order for gnucash's `configure' to find the guppi library. libgal: any recent version should work. This is a GNOME related library used by several different programs. You can find it at ftp://ftp.gnome.org/pub/GNOME/unstable/sources/gal/. libdb: Version 1.85 or a compatible version. The above urls are from June 5, 2001. Source locations can change, but will likely be found near the same place (maybe moved from unstable to stable). To be able to use certain features of GnuCash, such as reports and network stock price downloads, you must have the following packages below installed (in addition to those listed above). perl: Almost any version of perl5 should work. I run perl-5.004 In addition, some perl modules need to be installed. You can run the script 'update-finance-quote' as root to obtain the latest versions of required packages. ####### Running ------- For GnuCash invocation details, see the manpage in doc/gnucash.1. You can also run gnucash --help for the command line options. You can start GnuCash at the command-line, with "gnucash" or "gnucash <filename>", where <filename> is a GnuCash account file. Sample accounts can be found in "data" subdirectory. *.dat files are GnuCash accounts that can opened with the "Open File" menu entry. *.qif files are Quicken Import Format files that can be opened with the "Import QIF" menu entry. GnuCash responds to the following environment variables: GNC_RUN_AS_SHELL - if set, makes GnuCash pop up in a guile shell with all the gnucash functions loaded. From there, you can get the normal startup behavior like this: GNC_RUN_AS_SHELL=t ./gnucash guile> (primitive-load (getenv "GNC_BOOTSTRAP_SCM")) guile> (gnc:load "startup.scm") guile> (gnc:main) This is the same thing that happens if you don't use this environment variable. This can be helpful when trying to write and test new .scm files. GNC_BOOTSTRAP_SCM - the location of the initial bootstrapping scheme code. GNC_SCM_LOAD_PATH - an override for the GnuCash scheme load path. it should be a string representing a proper scheme list. Each element can either be a string representing a directory, the symbol 'default which will expand to the default path, or 'current which will expand to the current load-path at the instant it encounters the symbol. GNC_DEBUG - enable debugging output. This allows you to turn on debugging earlier in the startup process than you can with --debug. As an example, here's a wrapper script we used to use to allow you to run GnuCash from a local directory: #! /bin/sh export GNC_BOOTSTRAP_SCM=./share/scm/bootstrap.scm export GNC_SCM_LOAD_PATH='("./share/scm")' export GNC_DEBUG=t # Run whichever one was built last. exec ./src/gnucash \ --debug \ --share-dir ./share \ --config-dir ./etc \ --doc-path '("./doc/html/C")' \ "$@" #################### Internationalization -------------------- Message catalogues exist for many different languages. These are enabled with environment variables. For example, Francais, en bash: export LANG=fr_FR Francais, en tcsh: setenv LANG fr_FR German version: export LANG=de_DE ##################### Building & Installing --------------------- (For additional build system details, see doc/README.build-system.) GnuCash uses GNU Automake to handle the build process, so for most of the details, see the generic instructions in INSTALL. (Note that, in order to get a working ./configure, you should run ./autogen.sh.) Below we detail the GnuCash specific bits. Prior to building GnuCash, you will have to obtain and install the following packages: libtool: Available at ftp://ftp.gnu.org/gnu. RPM's and debs are widely available with most distributions. gnome development system: headers, libraries, etc. libxml: available from ftp.gnome.org g-wrap: RPM's, debs, and source available at ftp://ftp.gnucash.org/pub/g-wrap. You should use g-wrap 1.1.9 or later. texinfo: If you are building from CVS, you need the GNU texinfo package, version 4.0 or later. docbook: To build the online manual, you will need the docbook tools, include jade and the docbook stylesheets. What you'll need to get and install in order to make sure you have all of these pieces properly installed for your particular operating system flavor will vary, but here's at least a partial list of what you'll need for the systems we know about: Debian/GNU/Linux: current: libgnome-dev libgtkhtml-dev (you can grab this from Helixcode, it may not be in Debian itself ATM) guile1.3 libguile6-dev libguile6-slib RedHat: ??? SuSE: see doc/build-suse.txt GnuCash understands a few non-standard ./configure options. You should run ./configure --help for the most up to date summary of the supported options, but here are some more detailed descriptions of some of them: --enable-opt-style-install GnuCash supports two types of install, the first is the normal /usr or /usr/local/ style, where the files are installed into /usr/bin /usr/lib, etc. This is the default. The second style is the FSSTND, opt-style install. In this style, all of the files are installed under a common subdirectory, often in /usr/local/opt, with the binaries going to /usr/local/opt/foo/bin, the libs going to /usr/local/opt/foo/lib, etc. To request this style of install, just use the --enable-opt-style-install option to ./configure. If you only want a particular language installed, you can set the LINGUAS environment variable before you run configure. For example, to only install the French translations, run $ export LINGUAS=fr $ ./configure If you want to make sure that all languages get installed, run $ unset LINGUAS $ ./configure The 1.2 stable release of GnuCash had a Motif based user interface, and there was also an experimental, but never finished qt interface. Both of these have been removed from the source tree during the process of migrating to automake, but anyone who is interested in resurrecting these bits can easily retrieve them from CVS. Note that while you need the Gnome libraries installed, you don't need to have a Gnome desktop. Runtime and install destinations are separate. The --prefix you specify to configure determines where the resulting binary will look for things at runtime. Normally this determines where a "make install" will put all the files. However, automake also supports the variable. DESTDIR is used during the `make install' step to relocate install objects into a staging area. Each object and path is prefixed with the value of `DESTDIR' before being copied into the install area. Here is an example of typical DESTDIR usage: make DESTDIR=/tmp/staging install This places install objects in a directory tree built under `/tmp/staging'. If `/gnu/bin/foo' and `/gnu/share/aclocal/foo.m4' are to be installed, the above command would install `/tmp/staging/gnu/bin/foo' and `/tmp/staging/gnu/share/aclocal/foo.m4'. DESTDIR can be helpful when trying to build install images and packages. NOTE: If you have installed different parts of Gnome in different places (for instance, if you've installed gtkhtml in /usr/local) you will need to set the environment variables GNOME_PATH and GNOME_LIBCONFIG_PATH. See the manpage for gnome-config for more details. ################### Supported Platforms ------------------- GnuCash 1.5.x is known to work with the following operating systems: GNU/Linux -- x86, Sparc, Alpha Solaris -- Sparc FreeBSD -- x86 OpenBSD -- x86 Previous versions have been known to work on the following platforms, but their current status is unknown: SGI IRIX -- MIPS IBM AIX 4.1.5 -- RS/6000 http://www-frec.bull.com/ Unixware 7 -- Intel SCO OpenServer 5.0.4 -- Intel See ftp://ftp.gnucash.org/pub/xacc (high-bandwidth) or http://linas.org/linux/gnucash (slow-www ) for precompiled (but *very old*) binaries for these platforms GnuCash can probably be made to work with most POSIX-ish platforms, provided the libraries and toolchain are available. ######################### Additional Download Sites ------------------------- You can also download GnuCash from: - http://download.sourceforge.net/gnucash - ftp://ftp.krondo.com You can download GnuCash Solaris packages from: - http://www.unixrealm.com/downloads/ You can get GnuCash Mandrake packages on Mandrake Cooker sites. Precompiled binaries & pre-requisite packages can be found at the following sites. The GnuCash versions here are all *extremely* old, and were indeed from GnuCash's ancestor "x-accountant". IBM AIX 4.1.5 -- SMIT-installable images -- warning, this is from the 1.0 series of xacc http://www.bull.de/pub/ see also http://www-frec.bull.com/ SCO OpenServer 5.0.4 http://www.sco.com/skunkware/osr5/x11/apps/xacc/VOLS.tar -- this is from the 1.0 series of xacc Unixware 7 -- use pkgadd to install http://www.sco.com/skunkware/uw7/x11/apps/xacc/xacc.pkg.gz SGI Irix -- in SGI install format -- warning, this is a very down-level version http://linas.org/linux/xacc/xacc-1.0b7-sgi-irix.inst.tar ####################### Getting Source with CVS ----------------------- A read-only version of the cvs tree is available on the net. To access it, first, login, as so: cvs -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot login The password is "guest" To get a copy of the source in the experimental development tree do a cvs -z3 -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout -r HEAD gnucash To get a copy of the source in the gnucash-1.4 stable production tree do a cvs -z3 -d :pserver:cvs@cvs.gnucash.org:/home/cvs/cvsroot checkout -r gnucash-1-4-branch gnucash ################## Developing GnuCash ------------------ Before you start developing GnuCash, you should do the following: 1. Read the file src/doc/coding-style.txt to learn about the coding-styles used in the GnuCash source code. 2. Several of the directories under src contain files called design.txt which explain many aspects of GnuCash's design. Read those. 3. Go to the GnuCash website and skim the archives of the GnuCash development mailing list. 4. Join the GnuCash development mailing list. See the GnuCash website for details on how to do this. Submitting a Patch: This section has been removed to the file README.patches Please consult that file for details on using the script provided to make patches suitable for submitting to the GnuCash development team. Thank you.