B.2. General Information

B.2.1. Q: Can I run GnuCash on Windows?

A: Yes. Starting with release 2.2.0, GnuCash is also available on Windows.

Other related options would be colinux, VMWare and a windows-based X-server hosting a remote GnuCash session.

B.2.2. Q: I heard it is too hard to compile GnuCash!

A: This was probably true at the time when 1.6.0 was released. It is no longer true today, as almost every distribution ships with all the necessary libraries (except g-wrap, which means there is in fact one extra library to be installed before compiling GnuCash). However, by default, distributions won’t install the development packages of the required libraries, so you might need to start your distribution’s installer program and tell it to install not only the library packages but also the -devel packages. In general, it was noted that this problem concerns many applications in the gnome domain, and this also boils down to the fact that there is no such thing as one monolithic gnome package.

B.2.3. Q: Is there a batch mode (non-interactive) available for GnuCash, for building reports, etc?

A: No, for now GnuCash must be run interactively.

B.2.4. Q: Can multiple people access the same datafile in GnuCash?

A: You can have multiple people with access to the same datafile, but they cannot use the data file simultaneously.

To setup multi-person access, all the people must have read/write access to the directory containing the file (to read the other’s created files, and to create new files). One way to do this is by creating a user group and setting the data directory to be owned by the shared group and set to mode 2775. The 2 makes the directory setgid which copies the permissions to all files.

B.2.5. Q: Why is GnuCash written in C?

A: The core functionality of GnuCash is written in C, but do not forget that much of this can be accessed through Guile (scheme). There are a number of reasons for why GnuCash is written in C. The first is historical, GnuCash was started in 1996 (or maybe even earlier!) and many of the OOP (C++, Java, Python) compilers were not yet mature and standarized enough on the variety of platforms considered at that time, so C was the only option at that time. A second reason is because the standard GUI GnuCash uses is GTK, which is written in C.

B.2.6. Q: Why don’t you rewrite GnuCash in programming language xyz so that I can contribute easily?

A: The quick answer is We won’t. The longer answer is complex but still amounts to We won’t. GnuCash is a large body of code maintained by a small group of developers who are comfortable in C and Scheme (Guile). Actually, 80% of it is in C and approx. 13% is in Scheme/Lisp. There is no valid reason that would justify rewriting this amount of existing code in a newer language. Also, creating language bindings to recent languages such as Python or Ruby or (insert your favourite language here) is labor intensive, and we’re already stretched pretty thin maintaining and developing the existing code.

Having said that, this is an open source project and you’re free to do with it or contribute what you want. Just don’t expect much support if the reason for your changes is that you’re not willing to learn C or Scheme. Also, GnuCash used to have SWIG bindings (http://www.swig.org) which have been used for some perl programming code. According to a list discussion, these SWIG bindings might still be a way to include other languages into GnuCash, but currently they are unused and unmaintained.

B.2.7. Q: I really want feature XYZ but GnuCash doesn’t have it. How do I get it added?

A: Ask nicely. :-) You can file an enhancement request at http://bugzilla.gnome.org/enter_bug.cgi?product=GnuCash. Please bear in mind to describe your proposed enhancement as verbosely as possible. The trick here is to learn how to give the best information to the programmers about what your proposed new feature should do. If you want to speed up development significantly, consider donating some money as described on GnuCashDevelopment.

B.2.8. Q: Is there a web interface available for GnuCash?

A: No

B.2.9. Q: How can I provide security for GnuCash data using CFS, etc.)

A: Unanswered

B.2.10. Q: How can I contribute to the GnuCash project?

A: We’re working on a more formal process, but for now you should subscribe to the mailing list at http://lists.gnucash.org/mailman/listinfo/gnucash-user and http://lists.gnucash.org/mailman/listinfo/gnucash-devel and discuss what you can contribute with the participants on the lists. Please be aware that GnuCash is a large body of code written in C and Scheme (see the FAQ above, Why is GnuCash written in C? if you want to know why). If these are languages that you are not willing to work with, consider contributing in other ways.

B.2.11. Q: I think I found a bug. How do I report it?

A: First of all, try to verify that it is indeed a bug and that it has not been reported before. Search the mail list archives (see FAQ above). Then search the Gnome Bugzilla database.

If you feel you have indeed found a bug, you can then report it at http://bugzilla.gnome.org/enter_bug.cgi?product=GnuCash. Please bear in mind to report your bug as verbosely as possible. The trick here is to learn how to give the best information to the programmers about how to reproduce bugs. A Programmer will usually only be able to fix a bug they can see, if you can’t make the programmer see your bug, it won’t get fixed!