ANNOUNCE: Gnucash 2.3.9 released

Phil Longstaff plongstaff at
Mon Feb 15 14:11:10 EST 2010

GnuCash 2.3.9 (Unstable) released

The GnuCash development team proudly announces GnuCash 2.3.9, the tenth
of several unstable 2.3.x releases of the GnuCash Free Accounting
Software which will eventually lead to the stable version 2.4.0. With
this new release series, GnuCash can use an SQL database using SQLite3,
MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft
Windows and Mac OSX.

WARNING: This is an *UNSTABLE* version of Gnucash.

This release is intended for developers and testers who want to help
tracking down all those bugs that are still in there.

Make sure you make backups of any files used in testing versions of
GnuCash in the 2.3.x series. Although the developers go to great lengths
to ensure that no data will be lost we cannot guarantee that your data
will not be affected if for some reason GnuCash crashes in testing these

NOTE: The latest stable version is 2.2.9.

PLEASE TEST TEST AND TEST SOME MORE any and all features important to
you. Then post any bugs you find to bugzilla

Major changes in the 2.3.x release include; 

      * In addition to the XML backend, Gnucash can now use a SQLite3,
        MySQL or PostgreSQL database to store the data. This is a new
        implementation using libdbi. It supports all features including
        the business features. In order to build with this, add
        --enable-dbi to the configure command. In addition to the
        libdbi-dev package for your distribution, you will also need the
        appropriate DBD (libdbi driver) package for sqlite3, mysql or
      * In addition to the current GtkHTML HTML engine used to display
        reports and graphs, Gnucash can use WebKit. WebKit is the engine
        used by Google Chrome on Windows and Safari on Apple. In order
        to build with this, add --enable-webkit to the configure
        command. You will need an appropriate webkit-dev package. On
        win32, you will need to download the file
        from the source repository and put it into the downloads
        directory of your gnucash build area. Note that there are
        serious bugs when using webkit on win32, so it is advised that
        win32 builds continue to use gtkhtml
      * Updated to AqBanking 3 on Win32.

Changes between 2.3.8 and 2.3.9 include: 

      * Bugs fixed
              * Bug #608436: Add auto-clear feature Patch by Cristian
                KLEIN: = Usage scenario = John keeps his personal
                accounting in GnuCash and writes all credit card
                expenses therein. On weekends, we checks his Internet
                Banking and sees that some transactions have been
                recorded. He would like to clear those transactions in
                GnuCash, but it is tiresome to go through each Internet
                Banking transaction and do manual comparison with
                GnuCash records, especially since Internet Banking
                transactions might be in a different order than in
                GnuCash. John would prefer having an "auto-clear"
                feature. Given the "current amount" from the Internet
                Banking, he would like GnuCash to clear the transactions
                for him, if and only if, there is a unique combination
                of transactions that could achieve this. If there is no
                solution, or if the solution is not unique, GnuCash
                should warn him and John must manually clear the
              * Bug #590332: New eguile-based Tax Invoice report Patch
                by Chris Dennis.
              * Bug #606053: Add stylesheet with footer Patch by
                edodd at and Frank H. Ellenberger.
              * Bug 586122 - The AqBanking Wizard can't be loaded:
                plugins\20 folder to be renamed into plugins\16 The
                patch evaluates and configures the proper paths at build
                time, retrieving the required info directly from the
                aqbanking source
              * Bug #608329: Add Color to Account tabs Patch by "Bob": I
                wanted a way to select an account easily when I have
                several accounts open in the main window. I decided to
                add a color option to the account so that the tab can be
                set to a specific color and so easily identifiable. This
                could also be used to link like minded accounts
                together. This patch also fixes the account tooltip not
                being updated when the name changes.
              * Bug #534210: Add individual check item types. Patch by
                Thomas Troesch: The proposed patch does: 1. Changes the
                chk file key to Blocking_Chars as described in 607522
                ( this had been dropped by mistake ). 2. Add several
                fields to the Custom tab in the print check dialog.
                Locations for: a. split memos fields. b. split accounts
                ( e.g. Expenses:Auto ) c. split amounts ( e.g. GBP
                21.40 ) The splits do not include the last split in the
                transaction. The keys in the chk format file are:
                added to the custom tab. This is the memo from the split
                that matches the account from the register.
              * Bug #608306: check amount_word should print the fraction
                correctly. Patch by Thomas Troesch: Checks printed the
                wrong string for the amount_words. The utility
                number_to_words had produced e.g. from 100.04 -> One
                Hundred and 4/100. The word string should be One Hundred
                and 04/100.
              * Bug #608874: Spelling fix for Emoluments Patch by Adrian
              * Bug #589320 Price Editor - Currency Namespace does not
                show up This bug was introduced by r18062 (applying a
                patch from bug #580281 Entering multiple pices with
                price editor is tedious) For some unknown reason, r18062
                assumed exchange rates are not supposed to be edited via
                the Price Editor dialog.
              * Bug #105669: Improve error handling in gz_thread_func.
                Honor errors when reading/writing from/to a compressed
                file or the pipe to the main thread.
              * Bug #606728: Catch errors when opening saved-reports-2.4
                for write.
              * Bug #105669: Add checks to detect errors on write,
                especially if there no space left on the disk. Check the
                return value of fprintf and use ferror where libraries
                as libxml do the write. The change may not be perfect
                yet and a review would be nice. Still, it detects quite
                a few errors that, without it, slip through and may
                destroy valuable data.
              * Bug #607522: Add ADDRESS to check printing Patch by
                Thomas Troesch: The patch does three things: 1. Adds the
                ability to print an address on checks. The Print Check
                dialog is changed to have 5 address lines. The first
                field is filled in with the same data as the PAYEE check
                item. The other lines are blank. The check format keys
                have a new check-item type 'ADDRESS'. It behaves like
                other text check-item types. The address fields on the
                dialog are set 'not-sensitive' if the current format
                does not have an ADDRESS check item defined. The Custom
                Field tab has a new line for the address location. 2.
                Added new check format key - Blocking_Chars. This is to
                put the blocking character feature into the check format
                file. It is currently only in the preferences dialog in
                the printing tab, and therefore currently applies (or
                not) to all text fields in th_e check format. By adding
                the key Blocking_Chars_n to the check format, the
                blocking characters can be applied to text type
                check-items individually. Its really useful when
                printing stubs and so on. (NOTE: blocking characters are
                printed around a field to protect against alteration
                e.g. ***$100.00*** vs $100.00) 3. Included a Voucher
                check template. This is a full page check with the check
                on top and which has two stubs below. There are other
                voucher formats ( middle and bottom ) , but the check
                printing functionality would require separate templates
                for the different formats. Also changed the
                Quicken/Quickbooks US-Letter check format to include the
                ADDRESS check item and blocking around the AMOUNT_NUMBER
                field. I made a change to the Quicken-wallet check to
                add blocking characters around the AMOUNT_NUMBER field,
                and I added a clipping rectangle definition to the NOTES
                and PAYEE fields the were placed in the check stub area
                ( if the fields were too long, they would print into the
                check area ).
              * Bug #607517: Migrate from glade-2 to glade-3
                format. Patch by Thomas Troesch.
              * Bug #607246: In qof_string_number_compare_func, use base
                10 and do not allow octals to sneak in. Otherwise,
                transaction number 0108 (octal 010=8) will sort before
                0107 (octal 0107=71).
              * Bug #607255: Repair Hungarian report main menu, by
                Attila Nagy.
              * Bug #607185: Add f-q workaround for missing date. Patch
                by "meo": If for whatever reason finance-quote is unable
                to get a date for a quote or to convert it to the
                standardized form, gnucash is unable to use the
                otherwise correct quote. With web pages being updated
                definitively more frequently than finance-quote, this is
                quite a nuisance. Up to now, gnc-fq-helper emits an
                error message + the quote, a combination gnucash is
                unable to process. This patch presents a workaround. I
                would prefer using the current date + 12 hours rather
                than current date + time, but this is open for
              * Bug #606077: Fix uncommon configure option
                --program-suffix. Patch by Peter Selinger: OK, the
                attached patch fixes part of this problem. Specifically,
                it applies the specified transform (from ./configure
                option --program-suffix, --program-prefix, or
                --program-transform-name) to the files
                src/bin/gnucash-valgrind src/bin/gnucash-gdb
                src/bin/gnucash This is done in the Makefile at compile
                time. In the end, I am not sure why the GnuCash
       provides the --program-suffix mechanism at
                all, since apparently it hasn't been used in 10 years.
                According to info autoconf, these are supposed to be
                enabled by the macro AC_ARG_PROGRAM, but I don't see
                this in So perhaps it has been enabled by
                accident and shouldn't really be there.
              * Bug #511606: Fix ipmt() and ppmt() functions in
                scheduled transactions. Patch by Jean-Baptiste: " The
                instance counter is now incremented into
                increment_sx_state function."
              * Bug #538902: Moves the "New Accounts Page" menu option
                to the "View" menu Patch by Steven N. Severinghaus.
              * Bug #348701 Wrong currency symbol when currency is set
                to DKK This fix reverts changeset r7200, which caused
                some currency symbols to be replaced with the EURO sign.
                This replacement was a workaround for gtkhtml1 and no
                longer needed.
              * Bug #606626: Change wording from Druid to Assistant
              * Bug #589032: Replace some strcmp() by safe_strcmp() to
                fix crashes on NULL strings.
              * Bug #602051: Replace the word "string" in GUI messages
                by non-developer wordings. Same for dialog -> window.
              * Bug #602091: Fix broken Due Bill Reminder in all non-C
                locales The Due Bill Reminder used the translated form
                of "Invoice" as query string predicate, which can't work
                because the untranslated string must be searched for.
              * Bug #582325: Refactor some deprecated guile functions:
                SCM_BOOLP -> scm_is_bool SCM_NULLP -> scm_is_null
                SCM_FALSEP -> scm_is_false SCM_NFALSEP -> scm_is_true
                SCM_VECTORP -> scm_is_vector SCM_NUMBERP ->
                scm_is_number SCM_CONSP -> scm_is_pair SCM_STRING_CHARS
                -> scm_to_locale_string Specifically the replacement of
                SCM_STRING_CHARS with scm_to_locale_string fixes Bug
                #582325 Additionally, I have renamed these internal
                functions for global consistency: SCM_PROCEDUREP ->
                scm_is_procedure SCM_LISTP -> scm_is_list SCM_EXACTP ->
                scm_is_exact SCM_EQUALP -> scm_is_equal
              * Bug #605414: Clarify Quick-fill tip of the day Patch by
                James Raehl: Patch adds Tab key step to the Quick Fill
                tip. New users do not know about this step.
              * Bug #605415: Relax limit on scheduled days in the future
                Patch by James Raehl: Expand scheduled transaction date
                limit by 366 days Usually, scheduled transactions are
                limited to 365 days in the future. This patch doubles
                that limit plus adds a day for leap years. The patch
                supports a method for separating transactions that are
                not yet posted at the bank, by assigning an initial date
                one year in the future. Under this method, scheduled
                transactions and their reminders are one year in the
                future, since they have not happened yet.
              * Fix bug #603215 - Custom report from Budget Report does
                not save selected Budget Problem was how budget option
                tried to create the lambda function to restore the
              * Bug #479581 gnucash --nofile hasn't application name in
                window title When no file is selected, the title now
                becomes "Unsaved Book - GnuCash". The first part is
                following Gnome HIG guidelines, the latter part is a
                preference of several GnuCash developers. Furthermore,
                the "- GnuCash" suffix will always be appended, not only
                when no file is open.
              * Fix #586122 (follow-up to r18488) by using
                aqbanking/version.h from its installation path. Also
                look up the gwenhywfar so-name accordingly.
              * Bug #609402 Add Japanese resource to Windows (inno)
      * Updated translations or translation-related changes
              * Updated Dutch translation, by Mark Haanen and Jos,
                copied from the Translation Project.
              * Updated Japanese translation, by Yasuaki Taniguchi,
                copied from the Translation Project.
              * I18n fix of concatenated expression. We must not
                concatenate a word expression from different strings.
                Instead, we must translate each expression separately.
                Pointed out by Mark Haanen.
              * I18n improvement: Translate plural-dependent string
                correctly by ngettext().
              * Minor updates to British English translation by Mike
                Evans. Copied from bug#602051.
              * Fix translation issues caused by r18474.
              * Update Chinese (simplified) translation, copied from the
                Translation Project.
              * Update British English translation by Mike E.
              * Remove de_CH translation because it ceased to be
                maintained. The normal German translation will appear
                for de_CH locales, just as in 2.2.x.
              * Fix typo: accouting -> accounting
              * Update German translation
              * Add initial Persian translation (Farsi) by Mehdi
              * Fix translation error in r18550, bug#602051.
              * Update Japanese translation, copied from the Translation
              * Fix missing header information about Farsi plural forms
                in fa.po, according to what has been explained to me.
              * Add disambiguation prefix to the word Split where it is
                the action of a Stock Split.
              * Add new source files to
              * Updated Dutch translation, copied from the Translation
              * Update German translation.
              * Update the translations with the latest string template.
              * I18n improvement: The account name of the other account
                in multi-split transaction is extended to conform to the
                name in the register. Otherwise, the string Split from
                here has the ambiguity with the button labeles Split,
                which is the verb, whereas here we need the noun.
              * I18n improvement: Add disambiguation prefix to the
                account code of the other account in a multi-split txn.
                Without the disambiguation, the string here is identical
                to the button labeled Split, but that one is for sure
                something different from here, namely the old verb vs.
                noun issue.
      * Other user-visible changes
              * Small UI string corrections related to the recent tax
                enhancements. Patch by J. Alex Aycinena.
              * Payment dialog layout improvements - Rearrange the
                frames so that the Transfer Account frame gets more
                space - Add tooltips to (owner), (invoice) and amount
                related widgets. - Properly align the invoice_label
              * Watch out for a missing pricing transaction when looking
                for price data.
              * Add a comment about GNC_COMMODITY_NS_ISO and
              * Add new columns for the name of the lot each split is
                part of and for the value of the split. Both are
                optional and default to off.
              * Call gnc_{suspend|resume}_gui_refresh while closing
                accounts and scrubbing lots to make them go much faster
                and avoid flicker.
              * Watch out for a null account in
                render-corresponding-account-subheading, it happened to
                me once.
              * Pass the correct report name to
                income-statement-renderer-internal when rendering a
                profit and loss report.
              * Don't leak a file port when saving reports.
              * Reset found_trans_split when the transaction being
                considered in gnc_split_register_find_split turns out to
                be the wrong one.
              * Fix an off by one error in gnc_ui_sx_loan_druid_create.
              * Increase the size of the Guile stack to avoid stack
                overflow errors.
              * Some usability improvements to the Save As.../Open
                dialog (part 2) Forgot to add the changes in c code...
              * Some usability improvements to the Save As.../Open
                dialog * The dialog gets a proper title * Only show the
                File frame or the Database frame, as relevant to the
                chosen data format * Set a minimum width. Without it the
                dialog comes up too narrow. * Some minor layout changes
                (spacing, justification,...) to harmonize with other
                GnuCash dialogs. 
              * Don't show hidden accounts in the transfer dialog. This
                should be connected to the UI, but my ubuntu has glade 3
                which mucks up the .glade files. 
              * Add a Select Children button to the widget used for
                account selection in report options dialogs. 
              * Load gnc-build-url from the correct file so the accounts
                list option works again. 
              * Speed up the balance sheet report by a factor of 5 or so
                by using C functions instead of Scheme functions to get
                account commodity balances. This idea is borrowed from
                the EGuile version of the balance sheet report.
              * Avoid a bunch of assertion failures when the general
                ledger is open. The general ledger has no account so
                attempts to get the balance of the register's account
                pass a null account pointer to functions that won't
                accept that. Also stop leaking a GList in the functions
                that get account balances.
              * Remove the "Compute unrealized gains and losses" option
                from the balance sheet report. Instead compute
                unrealized gains and losses only if the current book
                does not use trading accounts.
              * Change 'Int' to 'Interest' and 'Div' to 'Dividend' in
                action strings
              * Use string saved-reports-2.4 in the description of the
                save report action.
              * Use gtkhtml as html render in the Windows build
              * [Patch] Corrections to taxtxf.scm Patch by J. Alex
                Aycinena: I attach a patchfile that corrects two
                problems with taxtxf.scm: the report would not
                gracefully handle the cases where, 1, a datafile from an
                earlier version of gnucash might have tax codes assigned
                to accounts and no tax-entity-type code assigned to the
                file, and, 2, some cases where accounts had no tax code
                assigned and the tax-related flag not set.
              * Have the Post date widget grab the focus by default when
                opening the post invoice dialog.
              * Updated txf.scm for 2009 US tax form changes by J. Alex
              * Fix crash when copying a currently edited transaction in
                the register.
      * Other code/build changes
              * Remove gnucash.lsm from EXTRA_DIST 
              * Fix doxygen markup
              * Small documentation improvements for better doxygen docs
              * Move splint-defs.h to src/debug. It's only used for
                debugging. Note that the current splint-defs.h causes
                compilation errors due to redefinition of function
                declarations. These should be fixed when splint is to be
                run again.
              * Win32: Fix building of libgoffice. Required libgsf to
                not remove the build directory, hence part of r18559
                need to be reverted.
              * Fix null-pointer dereference from r18612
              * Remove Linux Software Map description. It's unmaintained
                for years now.
              * Move count.* to util Also I made a first attempt at
                improving the line count. The old script missed a number
                of files in the directories it counted. The script is
                still not in line with the current code base though. A
                number of directories are still not counted (like gnome,
                engine, ledger, ...)
              * Moved svnlog2ul from contrib to util It makes more sense
                in util as it is by and for the devs, not contributed by
                an external user for external use.
              * Add, and accompanying xslt sheets.
       is a script to extract the commit messages
                from svn between two releases and converts them into a
                simple html unordered list. This is a useful aid to
                create the news pages on the website.
              * Move valgrind suppression rules to debug subdirectory
                This will require a new run of configure as some
                makefiles have changed
              * Set svn:ignore on pl accounts like the other account
                directories (Meaning: ignore Makefile and
              * Remove the old, obsolete postgres backend and its tools
                I also changed some of the documentation that referred
                to it, but there are still some references left in the
                (unmaintained ?) design documents.
              * Win32: Hopefully fix goffice installation.
              * Free sort_keys as allocated by g_utf8_collate_key in
              * Fix script to check for > 2.8 entries to remove The
                minimal Gtk+ requirement has been set to 2.8 recently.
                This script still removed glade parameters that are
                valid in 2.8. This patch fixes that.
              * Corrections to r18610 to permit compiling against older
                versions of glib
              * Remove more executable bits from data files
              * Remove executable flag from data files
              * Fix URL of ActivePerl.
              * Minor changes to global project files 1. Fix spelling
                errors in HACKING - appearenet -> apparent (patch by Tom
                Van Braeckel) - supressions -> suppressions 2. Keep the
                contributer list sorted alphabetically in AUTHORS
              * Fix "make distcheck". Patch by Jan Arne Petersen
              * Reverse r18597
              * Create routines qof_book_get_string_option() and
                qof_book_set_string_option() to get/set a kvp string,
                respectively. qof_book_set_string_option() also handles
                saving the book so that the kvp is updated in the db. In
                the future, qof_book_set_<type>_option() and
                qof_book_get_<type>_option() should be created, where
                type is boolean, int, double, ... In addition, other
                places which handle options in the book should use these
              * Create qof_book_begin_edit()/qof_book_commit_edit()
                routines. These need to be added around lines which set
                kvp values for the book, and the dirty flag does *not*
                need to be set.
              * Revert 18490/18491/18527 - I'm not sure it's actually
                deleting the objects without affecting the database.
              * Add ChangeLog.2009 for the last year.
              * Use correct routine to add a newly loaded entry to the
                correct bill. r18302 fixed the entry loading problem for
                invoices, this extends it to bills.
              * Remove build directories of dependencies after their
                successful installation.
              * Remove a couple of unused local variables left over from
                a previous iteration of the trading account changes.
              * Fix guile-1.6 compatibility of r18541 (bug#582325). We
                still suppport guile-1.6, hence we can use the functions
                introduced in guile-1.8 only by providing our own
                backward compatibility macro definitions in
              * Update gwenhywfar/aqbanking version numbers for win32
              * Fix gwenhywfar version lookup by tightening the RE used
              * Need to export the variables for glib to see them 
              * temporarily disable the gwenhywfar version lookup -
                there are multiple lines matching
              * Really fix r18495 (#586122) to look up the so-name of
                gwenhywfar correctly.
              * Require gtk+ >= 2.8
              * Remove unneeded information lines about "qof" - we're
                using our internal code always anyway.
              * Re-indentation of source code, next batch. This also
                strips trailing whitespaces from lines where they
                existed. This re-indentation was done using astyle-1.23
                using the following options: astyle --indent=spaces=4
                --brackets=break --pad-oper Discussed at
              * Allow digits in Gtk action names created in
                gnc_create_extension_info. This should fix bug 447339 as
                long as all report names are unique considering only
                alphanumeric characters. 
              * Free accounts/lots/splits/transactions when closing a
              * Fix a couple of echo commands and set
                warnings=no-portability when running automake.
              * Make xaccSplitDump and xaccTransDump work for debugging.
              * Teach xaccSplitConvertAmount that 0*x = 0. Avoids
                looking up non-existant exchange rate. 
              * Add some missing Leave() calls. 
              * Symlink the reports to the build directory to make it
                easier to use them when running in place after a build
                without installing GnuCash. 
              * Use resolve-interface instead of resolve-module when
                loading reports fo only the exported interface gets
                imported instead of everything defined in the file. 
              * Make the dbi backend tests work correctly if dbd is
                installed in a nonstandard location. Supply a
                GNC_DBD_DIR environment variable to the tests so it
                knows where to find the database modules. This is needed
                if libdbi is installed via MacPorts on OS X. 
              * Add flags to help with valgrind on glib 
              * Free prices so that they can be deleted when the book is
              * Free budgets when closing a book 
              * When closing the book, destroy all lots (found by
              * Free memory leaks 
              * Add qof_backend_module_finalize() routine to call
                dbi_shutdown() to free allocated resources. 
              * Add qof_finalize_backend_libraries() which is called
                during shutdown. This routine checks each backend
                library for an exported qof_backend_module_finalize()
                routine, and if it exists, calls it so that the backend
                can free any resources which have been allocated. 
              * Fix some memory leaks found by valgrinding tests 
              * Remove erroneous use lib from gnc-fq-*, along with
                PERLINC setup in
              * Decrease verbosity during win32 packaging: Inno,
                gconftool-2, htmlhelp compiler (hhc) with less output.
              * Fix some incorrect ENTER() and LEAVE() calls.
              * Fix up some gnc:debug calls (and one comment).
              * Fix a couple of initialized variable warnings.
              * Add missing PORTFOLIO_LEDGER register type to switch
                statement in gnc_split_register_get_debcred_entry.

Caveats for Testers

Any 2.3.x version might crash unexpectedly at any point during runtime.
If you test some serious work in a 2.3.x release and are using the XML
file backend for data storage, make sure you hit "Save" after every
non-trivial workstep. If you are using the SQL backend, this is not
required as every change is saved immediately to the database.

The documentation has had screenshots updated, however, many help texts
usually only refers to the 1.8.x series. Everyone is invited to help
improve the documentation; see
on how to get involved.

How can you help?

Testing: Test it and help us discover all bugs that might show up in
there. Please enter each and every bug into bugzilla.

Translating: The new release comes with some new translation strings. If
you consider contributing a translation, we invite you to test this
release already. A string freeze will be announced in one of the later
2.3.x releases. Please check for updates on this.

We would like to encourage people to test this and any further releases
as much as possible and submit bug reports in order that we can polish
GnuCash to be as stable as possible for the 2.4.0 release in a few
weeks. Then post any bugs you find to bugzilla

Getting GnuCash

Source code for GnuCash 2.3.9 can be downloaded from multiple

      * The GnuCash website
      * Sourceforge: bzip2, gzip, all files.
      * You can also checkout the sources directly from the subversion
        repository with this command:
        svn co gnucash

To install GnuCash, you will need Gnome 2, guile, slib. In addition you
will need swig if compiling from subversion.

Win32 binary

The Gnucash 2.3.9 Win32 setup executable can be downloaded from
Sourceforge as well. 

About the Program

GnuCash is a free, open source accounting program released under the GNU
General Public License (GPL) and available for GNU/Linux, *BSD, Solaris,
Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and
its first stable release was in 1998.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gnucash-announce mailing list