ANNOUNCE: Gnucash 2.4.2 released

Phil Longstaff plongstaff at
Mon Feb 7 21:37:00 EST 2011

Announcement: GnuCash 2.4.2 Release 2011-02-07 
GnuCash 2.4.2 released
The GnuCash development team proudly announces GnuCash 2.4.2, the second
bug fix release in a series of stable of the GnuCash Free Accounting
Software. 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.

Note: 2.4.1 was partially released but was pulled at the last minute
when critical problems were found. 2.4.1 should NOT be used.

Major changes in the 2.4.0 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
      * As a replacement for 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 --with-html-engine=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.
      * Updated AqBanking on Win32.
Getting GnuCash for Windows (Win32 binary)
The Gnucash 2.4.2 Win32 setup executable can be downloaded from
Sourceforge. It will install everything needed to run GnuCash. 

Mac OSX binary
The Gnucash 2.4.2 MacOSX package can be downloaded from Sourceforge as

Getting GnuCash as source code
If you want to compile GnuCash 2.4.2 for yourself, the source code can
be downloaded from: 
      * Sourceforge: bzip2, gzip, all files.
      * You can also checkout the sources directly from the subversion
        repository with this command:
        svn co gnucash

To compile GnuCash from the source code by yourself, you will need Gnome
2, guile, slib. In addition you will need swig if compiling from

Changes between 2.4.0 and 2.4.2 include: 
      * User-visible changes
              * Partly revert r20207, "Modify Tax Info on Account
                Page..." The changes in the tree-model-account caused
                CRITICAL gtk warnings, so we revert that part for now.
                The changes in gnc-ui-utils.[hc] have been kept.
              * Do not modify the entry's DateEntered when duplicating
                invoice to keep the entry ordering. Follow-up to r20115.
              * Modify Tax Info on Account Page to display or not
                display sub-account info based on whether row is
                expanded. Revert changes made in gnc-ui-util.c in rev
                20039 and instead put those changes in new function:
                gnc_ui_account_get_tax_info_sub_acct_string. Define a
                new column,
                gnc-tree-model-account.c filled with
                gnc_ui_account_get_tax_info_sub_acct_string. Modify
                gnc-tree-view-account.c to define a tax_info_data_func
                that displays only the the data in the
                GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO model column if the
                row is expanded; otherwise it combines it with the data
                model column. Modily the view creation function to use
                the new tax_info_data_func. 
              * Open the newly created invoices for editing after
              * Make the splash screen stack as a regular window instead
                of stacking in front of everything else.
              * SQL Backend Version Control: The final part. New error
                dialog boxes for ERR_SQL_DB_TOO_OLD and
                ERR_SQL_DB_TOO_NEW Marks the book read-only if the user
                doesn't upgrade a too-old db and when the user tries to
                load a too-new db. 
              * Provide more detail in commit error when it's caused by
                a read-only book. Mark error message for translation.
              * Throw an error and return if if the book is marked
              * Add icons for Duplicate Invoice functionality
              * This patch adds a new option under Edit -> Preferences
                -> Date/Time that looks like this: Date Completion When
                a date is entered without year, it should be taken: (*)
                In the current calendar year ( ) In a sliding 12-month
                window starting this many months before the current
                month: [ 6 ] Patch by Peter Selinger with minor
              * Fix a bug introduced in 20042 which caused lists of
                Scheme strings passed to C code to be garbage. This
                caused online price quotes to fail for anything other
                than a currency.
              * Make it possible to include trading accounts in the
                Income Statement and Profit and Loss reports.
              * Additionally, make the "Duplicate Invoice" feature
                available as menu item and toolbar button when viewing
                an invoice.
              * Implement "Duplicate Invoice" feature, where a new
                invoice is created as a copy of an old one with new date
                and new ID. This patch makes this feature available as
                button "Duplicate" in the search window.
              * Make reconcile+update import action of r20021 bug#373415
                enabled by default because it's so useful.
              * Fix version number in welcome report.
              * Set sort order for GncEntry quickfill to LIFO by-date.
                Previously, the insertion order was random instead of
              * Activate balance averaging in account piechart report,
                introduced in r19253.
              * Add budget name to budget tab 
              * Add info about sub-accounts to Tax Info column on
                Accounts page.
              * A plugin to import CSV data as a new invoice or bill.
                Based on code written by Sebastian Held. Also includes a
                python script to massage a downloaded order form into
                the correct format for import. See
                contrib/ This works with Rapid
                Electronics (UK) and can be used as a basis for other
                vendors. Users need to add a line in their
                ~/.gnucash/config.user for the module to be loaded:
                (gnc:module-load "gnucash/plugins/bi_import" 0) See bug
                #624911 for more details.
              * Add "copy budget" command to menu. Works like "open
                budget" except that a copy of the budget is made with
                the name "Copy of "+name of old budget. This command
                will allow you to easily create a copy of your 2010
                budget and change its name to "2011". I also plan to add
                UI capabilities to more easily manipulate budget
              * Fully implement auto-completion in the invoice entries
                on the description field, separately for bills or
                invoices. The quickfill is obtained from the global
                cache of the GncEntry's descriptions, one for invoices,
                one for the rest. The auto-completion is a simple query
                to get the newest entry with the same description, but
                limited to invoices or bills, respectively.
              * Add a new report: Customer Summary. This report shows a
                table of all customers and the sales, profit, and markup
                in that table.
              * Add a new report: Future Scheduled Transaction Summary.
              * Improve GncEntry quickfill to create separate quickfills
                for invoices and bills
      * Updated translations or translation-related changes
              * Updated German translation, now 100% completed.
              * I18n improvements: Fix weird strings.
              * Update
              * Updated Dutch translation, copied from the translation
              * I18n: Fix misleading composed strings by defining two
                separate full sentences.
              * i18n: Add more terms to the glossary
              * i18n: Fix missing space in message
              * Updated Ukrainian translation, copied from the
                Translation Project.
              * Better OSX language handling: Add a "C" locale to the
                language-list after any english locale so that if that
                english locale isn't present, gettext will fall through
                to "C", which makes unnecessary the "en.po" file. Also
                removed the special casing and locale truncation;
                gettext is quite capable of doing that itself. 
              * I18n improvements: Fix typos, fix unnecessary
                near-duplicates, remove unneeded strings.
              * Updated Italian translation.
              * Rejigger the set_macos_locale function to better handle
                qualified languages (e.g., Portugues (Portugal). Add
                po/en.po so that english doesn't have to be
                special-cased to the C locale. 
              * Improve the for translators problematic format string
                from gnc_entry_ledger_verify_acc_cell_ok This version
                uses 2 separate sentences, mentions currencies and gives
                a clue for the account type. Add enable basic doxygen
      * Bugs fixed
              * Bug #639172: Remove "Warning!! This is a DEVELOPMENT
                version .." tip of the day Also, to my knowledge the
                docs don't contain a "what's new in 2.4" section, so I
                removed that tip as well.
              * Bug #638621: Update README file.
              * Bug #502066: The aging in business reports should use
                the due date instead of the post date Patch by Bert
                Claesen (but I changed the option name): Patch to
                aging.scm to include due date and "current" bucket Patch
                file for aging.scm to include: * Option to select due
                date or date posted * Added column of "Current" for
                invoices not yet due
              * Bug #603334: Updates to RPM spec file to allow 2.3.7 to
                build on Fedora Core 12
              * Bug #638225: Sort when saving as XML Patch by Jim
                Radford (with code beautified and re-indented by
                myself): The attached patches sort the slots, lots, book
                accounts, bill terms, customers, employees, entries,
                invoices, jobs, orders, tax tables and vendors before
                saving them to the GnuCash XML file. This is an attempt
                to make saves more idempotent thereby facilitating the
                use of a revision control system on the GnuCash XML
                files. With these patches most of the needless and
                seemingly random churn is gone and I can add or remove a
                transaction and expect there to be no unrelated changes
                to the GnuCash file. I've been using and refining this
                patches for the last few years, so it has received quite
                a bit of testing. David Fraser adds: Without specific
                testing, I'm using this on an average-sized gnucash file
                (5.7MB) without noticing any particular slowdown in
                saving, but a wonderful reduction in diffs when
                comparing changes.
              * Bug #638962: Update Brazil Portugese translation by
                Dorneles Treméa
              * Bug #638615: Fix schema install with DESTDIR Patch by
                Jim Radford: When doing make install
                DESTDIR=/tmp/gnucash the install fails because
                GCONF_SCHEMA_CONFIG_SOURCE doesn't end up using DESTDIR
                (and it's non-trivial because of the xml:: prefix). The
                attached patch fixes it for me but is non-ideal because
                it hard codes the value of GCONF_SCHEMA_CONFIG_SOURCE
              * Bug #638543: Add a GUI for the counter format and
                current value. Patch by Matthijs Kooijman: This allows
                the user to change the format used for the various
                counters, as well as see and change the current value of
                the counter. This is a bit of hack right now, since the
                format and current counter values are stored in the
                counter_formats and counters kvp slots respectively,
                instead of options/<section> like the other options in
                the File->properties window. This is implemented by
                adding the make-counter-option and
                make-counter-format-option, which both replace the
                scm->kvp and kvp->scm functions defined by
                make-number-range-option and make-string-option
                respectively. The replaced function simply ignores the
                "path" parameter and instead saves to the "counter" or
                "counter_formats" slot hardcoded.
              * Bug #638543: Validate counter format strings before
                using them. Patch by Matthijs Kooijman: The validation
                function is a very simple "parser" that simply checks
                for a single gint64 conversion specification, allowing
                all modifiers and flags that printf(3) specifies (except
                for the * width and precision, which need an extra
                argument). The validation function returns an error
                message that is used to log a warning and can be used by
                the GUI later on.
              * Bug #638543: Make the various counter formats
                configurable. Patch by Matthijs Kooijman: This retrieves
                the counter formats from the kvp slots in the book. The
                defaults are unchanged, so this should not affect
                existing books at all.
              * Bug #638543: Centralize the counter formatting in
                qofbook. Patch by Matthijs Kooijman: Instead of querying
                qofbook for the next counter number and then doing the
                formatting in all the different business modules (all
                using the same format string), the formatting is now
                moved inside qof_book_increment_and_get_counter (which
                is renamed to qof_book_increment_and_format_counter).
                This changes the return value of a bunch of helper
                functions from gint64 (the counter value) to gchar* (the
                formatted counter value), but does not have any
                user-visible changes.
              * Bug #638543: Split the qof_book_get_counter function.
                Patch by Matthijs Kooijman: The qof_book_get_counter
                function now only gets the current counter value. The
                new qof_book_get_and_increment_counter function now does
                the incrementing.
              * Bug #638543: Remove the counter() method from the
                backends. Patch by Matthijs Kooijman: This method is not
                implemented by either of the backends and removing it
                makes the subsequent commits possible.
              * Bug #636402: Add test case for DBI error: 1: table
                sqlite_sequence may not be dropped Patch by Mark
                Jenkins: The attached patch adds a test program
                demonstrating the problem in C, built in
                src/optional/python-bindings It pretty much shows the
                same calls that are being made to the C by the python
                bindings (including initialization) and the example
                sqlite3 python script. Running this small C program
                produces the same result. (The program is built in
                check_PROGRAMS, not bin_PROGRAMS, to avoid having it
              * Bug #454109: Online banking: grey out online action menu
                items when there is no online account Patch by Manfred
                Usselmann: Show error message, if assigned online
                account is not valid or cannot be found or if the
                selected online action is not valid for this account.
                Improved checking if online job has been successfully
              * Bug #373415: Replace existing transaction fields by
                imported transaction marked as reconcile Patch by
                Manfred Usselmann: This patch adds an additional update
                action to the import matcher as described above. It can
                be activated with the online banking preferences dialog.
                (Patch changed because of one function name adaption
                after r19936)
              * Bug #635355: Implement the correct "DTAUS import and
                send" feature again. Patch by Manfred Usselmann:
                Improved version: Only transactions which have been
                successfully imported into GC are transmitted to the
              * Bug #95635: QIF import: Mark matched transactions as
                cleared Patch by Tristan Faujour: Please describe the
                problem: My bank allows me to download bank statement
                files in the QIF format. They contain paid transactions,
                but there is no status ("C") line, so all transactions
                are left in the "not cleared" status. I wish it would be
                possible to define the default status in user
                preferences. Steps to reproduce: - Import a QIF file
                with no "C" line. Actual results: - Transactions are not
                cleared. Expected results: - The "near split" of the
                imported transactions should be set to a default status
                'defined in user preferences). Does this happen every
                time? - Yes Other information: - I developed a patch.
                See attachment. It allows defining another status that
                will be applied to the transactions that are imported as
                "not cleared". - It is my first contribution, it should
                be taken with all due prudence.
              * Bug #637346: A second step towards doxygen
                python-bindings docs; add file missing in r19981
              * Bug #637346: A second step towards doxygen
                python-bindings docs Patch by Christoph Holtermann
              * Bug #636988: Tip about "New default date" by Tarlika
                Elisabeth Schmitz and Derek Atkins Contributed at
                gnucash-user at 2010-09-16
              * Bug #628444: String improvements after string freeze is
              * Bug #565348: Patch to include subaccounts in the all
                columns in the account page Patch by James Duerr: Patch
                to include subaccounts in all columns, not just present
                column, and also to sort including sub-account totals,
                rather than without.
              * Bug #639365: Revert r18546 so that the bills-due dialog
                displays only bills but not invoices. The INVOICE_TYPE
                string unfortunately is stored in translated form due to
                the usage of gncInvoiceGetType() for user-visible
                strings as well. Hence, as an exception we must also
                search for the translated here even though it's an
                internal flag.
              * Bug 638842 - Estonia adopted the Euro on 01.01.2011
                Thanks to Toomas Tamm
              * Bug #636907: Improve "Close when finished" handling in
                "Online Banking Connection Window" Patch by Manfred
                Usselmann: This patch adds a toggle action to the online
                banking menu, which allows to open and close the online
                banking log window. In addition it adds an option to the
                online banking preferences to keep the log window open
                after the transfer has finished.
              * Bug #639259: Add averages in barchart reports. Patch by
                Herbert Thoma: Matthias Gruhn suggested on the German
                GnuCash list: Add averages to the income and expense bar
                chart reports just like it was introduced for the income
                and expense pie chart reports in r19253
              * Bug #638225: Author Jim Radford. KVP lists are ordered
                so should not be sorted 
              * Bug #639498: Fix aqbanking-4.2.4 issue with "execute
                online transfer" on WinXP.
              * Bug #638689: Require libaqbanking >= 4.0.0 because
                earlier versions are not supported correctly by our code
              * Bug 639322 part 3: provide users with a sensible first
                time "Save As..." path on Windows While $HOME is fine on
                linux, on Windows the most sensible location is "My
                Documents" (or its translated equivalent).
              * Bug 639322 part 2b: display an error message if a user
                attempts to export to somewhere in gnc_dotgnucash_dir
                and add a hint for translators to the error message
              * Bug 639322 part 2: display an error message if a user
                attempts to save beneath gnc_dotgnucash_dir
              * Bug 639322 part 1: add extension .gcm to future state
                files Old state files are still read (if no new
                equivalent exists yet) but will never be written to
              * Bug #641628: I18n: Fix untranslated string in
                fancy-invoice.scm and invoice.scm
              * Bug #641646: Fix incorrect tip on switching between
                multiple tabs
              * Bug #641557: I18n slightly improved in fancy-invoice
              * Bug #640061 - Invoice items are not saved, patch by
                Christoph Holterman
              * Bug #631789 - "Assets" in summary bar does not match
                assets displayed As proposed in the bug, I have changed
                it to "Net Assets"
              * Bug #637770: Fix progress bar on load and full save in
                sql backend.
              * Bug #611936: Test DBI backends for a dbi bug which
                causes 64-bit numbers to not be stored on 32-bit
                systems, and prevent saving or loading with an
                informative error dialog box. 
              * Bug #639906: Improve text output methods of python
                bindings Patch by Christoph Holtermann: For the more
                complex financial objects i chose a different approach.
                The printing functions are located in one module.
                Importing this module adds these functions as methods to
                the classes defined in
              * Bug #640233: Don't add "Account unknown Bank Unknown"
                memo when account and/or bank does not exist Patch by
                Jeff Kletsky: At least for the online OFX sources I use
                in the US, downloaded transactions are populated with
                memos of "Account unknown Bank unknown" Past being
                annoying, this can cause improper "matches" when
                comparing transactions. The root cause is found in
                src/import-export/aqbanking/gnc-ab-utils.c in the
                function gnc_ab_memo_to_gnc where the code seems to
                check for the existence of a remote account number from
                the aqbanking transaction if (ab_other_accountid &&
                *ab_other_accountid) and appears to intend to return the
                empty string if one is not present. However, an earlier
                line in the code sets ab_other_accountid to "unknown" so
                that the test always returns true. This patch should
                return: * "Account <account number> Bank <bank number>"
                if both are present * "Account <account number>" if only
                the account is present * "Bank <bank number>" if only
                the bank is present * "" if neither is present
                Additionally, ordering of trimming was changed to handle
                the possibility that the leading and/or trailing
                character(s) were stripped as invalid UTF-8, resulting
                in an untrimmed string.
              * Bug #638762 - Windows 7 64-bit: GnuCash will not start
                due to existing SCHEME_LIBRARY_PATH env variable
              * Bug #629501 Nonexistent field in error message
              * Bug #467311 Print invoice button should be restored to
                View invoice
              * Bug #352057 button to create a new invoice when viewing
                an old one.
              * Bug #535774: Fix label for employee option on "Employee
                Report" Patch by Bert Claesen: The attached patch
                (against r20122) tries to solve bug #535774 and:
                *Introduces Option naming consistent with report title
                (e.g. Customer Report shows Customer in the Option
                screen) *Removes the printf() default string in case no
                arguments where given *Moves the docname up to a higher
                level for easy of overview Cases default to a
                GNC-OWNER-VENDOR. Note on the patch: *As indicated in
                the comments, two functions are nearly identical, where
                in the Vendor report the use of Vendor/Company is mixed.
                This can easily be moved into one function as the
                footprint is the same. cstim: I've clarified which ones
                of the functions returns translated vs. untranslated
                strings, too.
              * 639980: Add EntryList and _gncEntry objects to list
                typemap. Patch by Fix python failing
                getting invoice entry data.
              * Bug #639906: Adding __str__ and __unicode__ methods to
                GncNumeric Patch by Christoph Holtermann: 1) I decided
                to let the methods return "Division by Zero" for
                denom()==0. 2) As proposed in
       i created both __str__ and __unicode__. 3) I use format to fix the decimal places to 2. It would be nice if the number would be configurable.
              * Bug 637346: A small python doc enhancement, basically
                mentioning the wiki-page Patch by Christoph Holtermann.
              * Adds percentages to piecharts. See bug #343449 for
                details. Patch is derived from a patch submitted by
                Alexander Weiss
      * Other code/build changes
              * Tag 2.4.2 
              * Update revision to 2.4.2 
              * Remove references to Neil William's website because it
                is vastly outdated.
              * Update revision to 2.4.1 
              * DBI Backend: Cleanup after testing version control so
                that repeating the tests doesn't fail.
              * Check whether session has been created before trying to
                end it. 
              * Fix compiler warning in gnc-backend-dbi.c.
              * Fix cmake build after latest configure changes.
                that it's similar to the other version macros; define it
                at the top of so that it's obvious to
                everybody; and store the current Gnucash version only
                when doing a full save so that retrospective changes to
                GNUCASH_RESAVE_VERSION won't skip a resave because the
                database has been touchedby a newer version.
              * Win32: Add missing include for windows build
              * Set line ending property svn:eol-style to LF for newly
                added files
              * The new files for gnc_locale functions, ommitted from
              * Adjustments to test Makefiles required by r20176 (move
                quickfill functions from gnome-utils to app-utils
              * More adjustments for moving gnc_locale functions from
                app-utils to core-utils
              * Move gnc_locale functions from src/app-utils/gnc-ui-util
                to src/core-utils/gnc-locale-utils (new files) and
                adjust accordingly.
              * Adjust location and add gnc_(push|pop)_locale wrapper
                around dbi_conn_query() calls which retrieve data. Patch
                by Christoph Holtermann
              * Update newly introduced NANO version number in cmake
                build script as well.
              * Get rid of gtk dependency in <app-util/option-util.h>
                header by storing only a gpointer for the widget. This
                means the very last part of a gtk-dependency in app-util
                is in option-util.c in one error message. My goal is to
                remove gtk completely from app-util so that all code in
                our dependency chain up to app-util can be packaged into
                a GUI-independent library, which can then be used by the
                python wrappers and other GUI frontends alike.
              * Add gnc_get_long_version, a guint concocted by adding
                the version values together allowing two digits for
                each. Add a new version value, GNUNCASH_NANO_VERSION, to
                be incremented when there's any change to data
                serialization. Use the new gnc_get_long_version to tag
                the Gnucash version in the versions table in the dbi
              * Add to src/backend/dbi/tests
                LDADD so that gnc_push_locale and gnc_pop_locale can be
                found for testing.
              * Re-indentation of source code. This re-indentation was
                done using astyle-1.24 using the following options:
                astyle --indent=spaces=4 --brackets=break --pad-oper
                --pad-header --suffix=none
              * Fix missing include in cmake build file.
              * Move gnc-ui.h file from top-level to gnome-utils. It is
                gtk-dependent anyway, so it is moved to where it belongs
              * Remove unneeded usage of a generic <gnc-ui.h> include in
              * Remove pointless header RecnWindow.h - nothing
                gtk-independent here anyway.
              * Fix cmake build file after file removal.
              * Drop the obsolete gncUIWidget typedef because all of our
                GUI-code is inherently gtk-dependent (with the exception
                of option-util.h). If there were any re-write of gnucash
                with a different GUI toolkit, it will define all
                GUI-related functions in its own way, so there's no
                point in pretending those very gtk'ish functions were
                usable in a different toolkit as well.
              * Delete the unused and slightly pointless
                gnucash_foo_version functions
              * Adjust gnc_push_locale and gnc_pop_locale to take a
                locale category and to handle MSWin32 (following
                gnome/druid-hierarchy.c) correctly. Use them in
                gnc-backend-dbi.c instead of the incorrect code from
                r20189 (Thanks, Christian). 
              * Add locale.h; some systems seem not to pull it in via
              * Left out of r20188: Actually wrap the important code...
              * Handle localization-ignorance bug in libdbi by setting
                LC_NUMERIC locale to "C" before calling
                dbi_result_get_double() and back afterwards. This is not
                thread-safe, but we're not multithreaded yet. 
              * Change serialization of doubles in the dbi backend to
                use g_ascii_dtostr() instead of sprintf. The problem is
                that sprintf is subject to localization and will output
                e.g. 1,25 for one-and-a-quarter in European locales. SQL
                doesn't support localization, so will interpret 1,25 as
                two fields, 1 and 25. Note also that
                GUID_ENCODING_LENGTH isn't big enough for a double, so
                that's changed to G_ASCII_DTOSTR_BUF_SIZE. 
              * Move quickfill and gnc-entry-quickfill files from
                gnome-utils to app-utils because they don't require
                gtk/gnome. (account-quickfill can't be moved because it
                also works with a GtkListStore.)
              * Add #include gnc-main.h for declaration of
                gnc_get_svn_version() for test_dbi_version_control().
              * Fix core swig files to have appropriate ifdefs for guile
                only portions Patch by Andy Clayton <q3aiml at>
              * Fix r20169 for out-of-tree build. Clean up included .c
              * Add declaration for test_dbi_version_control; doxygen
                comments for test_dbi_safe_save and
                test_dbi_version_control; and rearrange order of
                declarations to keep the test functions together.
              * Spelling fixes in code comments.
              * Clarify the use of pathnames in the python bindings
                example scripts
              * Allow all book types instead of only sqlite3 for
              * Fix lots of memory leaks
              * When closing a book (e.g. when opening a new file),
                release memory of the objects in the book
              * Remove qof_instance_begin_edit test from
                test_book_readonly; qof_instance_begin_edit doesn't
                check qof_book_is_readonly anymore.
              * Update svn:ignore for bi_import plugin
              * Set line ending property svn:eol-style to LF for newly
                added files
              * Re-indentation of source code. This re-indentation was
                done using astyle-1.24 using the following options:
                astyle --indent=spaces=4 --brackets=break --pad-oper
                --pad-header --suffix=none
              * Add missing svn:executable property
              * Fix printf conversion specifier of 64 bit integers in
                message. (Also, fix compiler warning about && and ||).
              * Improve wording of libdbi error message even more.
              * Remove old obsolete unused file from python wrappers.
                Apparently this is unused since r17284.
              * Make sure ENTER is balanced by LEAVE in
              * Win32 build: Aqbanking has a patch now, but doesn't need
                autotools called.
              * Remove *.i files from doxygen input again because at
                least my doxygen-1.6.3 hangs on gnucash_core.i. This is
                a follow-up to r19956, bug #637346.
              * Remove book_is_readonly check from
                qof_instance_begin_edit; it crashes if it's actually
              * Prevent a crash if gnc_sx_sxes_reverencing_account
                called when book has no sxes.
              * Win32: Add missing link libraries to bi_import plugin.
                Necessary for win32 linking.
              * Fix qof/test compilation errors, provide guard for
              * Remove the old "import-export/hbci" module because it is
                no longer supported. The newer "import-export/aqbanking"
                has been in use since aqbanking-3.0.0. As it turned out,
                we require aqbanking-4.0.0 now anyway, which was release
                2009-05-30. Consequently, the old module isn't being
                maintained by us and so needs to be removed.
              * Disable usage of qof/test for now because is does not
                yet compile.
              * Add a read-only attribute to QofBook and check of same
                to qof_instance_begin_edit. Add qof_session_safe_save.
                Add unit tests for these changes. QofBook read-only
                attribute is to prevent starting an edit when the
                version of Gnucash which created a dataset is newer than
                the one currently running. This is to prevent writing
                records of an old format into an existing data set. The
                user can use File>Save As to create a new QofSession
                which will write a completely new dataset in the current
                format. This is an important safety feature for future
                versions of Gnucash which will not bring all of a
                dataset into memory, instead loading only what is
                immediately needed. Safe-save is the Qof access to allow
                writing out a dataset to an existing server database
                (i.e., postgresql or mysql) while maintaining the
                ability to both transaction-protect saving individual
                records while maintaining the ability to rollback the
                entire save if something goes wrong. The unit test
                framework is added to enable testing these components.
                More tests will be added in a later commit. 
              * Provide glib unit testing template files to make it
                easier to add unit testing to modules
              * Remove unused variable.
              * Remove obsolete compatibility code in the state file
                processing. No version GnuCash 2.2.x version will
                produce state files with spaces in their key names, and
                we don't need to worry about older compatibility
                (migrating from 2.0.x should always happen via 2.2.x).
              * Fix some spelling errors in doxigen documentation
              * Provide for safely overwriting a sql database by moving
                the existing tables out of the way, writing new tables,
                and then dropping the old tables once everything has
                been saved. 
              * Add python in section optional of README.dependencies
                Additional: explain alternatives and optional parts
              * Revert r20082 (re-enable plugins) Get the bi_import
                plugin building on Windows by including missing libc
              * Disable building the plugins directory until windows
                build issues can be fixed 
              * Add function for creating a new copy of an existing
              * Remove obsolete unused autoconf macro
              * Add gnc_budget_clone() and make some functions arguments
                Please enter the commit message for your changes. Lines
              * Follow-up to r19999: Refactor guile version-safe
                scm_to_locale_string into gnc function. (Yay, I made
                r20000 :-)
              * Fix r19985, r19986 for guile-1.6.8. The return value of
                guile-1.6's SCM_STRING_CHARS must not be freed, as
                opposed to the return value of guile-1.8's
                scm_to_locale_string. So we must wrap the free() into a
                macro that is defined appropriately (or maybe we should
                refactor this into a function returning a g_malloc'd
                g_char anyway.)
              * Add facility to force BUILDING_FROM_SVN=no from outside
                the Gnucash build system Needed by packagers that
                maintain the packaging code in svn, svk or git too 
              * Change dependency in src/backend/dbi/ from
                app-utils to core-utils
              * Add en to the ALL_LINGUAS list in; should
                have been in r20142
              * Enhanced database version handling. * Add a macro
                GNC_RESAVE_VERSION which holds an svn revision number. *
                When fully saving a database put this number in versions
                with table_name Gnucash-Resave. * On database load,
                compare the current GNC_RESAVE_VERSION with the Gnucash
                revision and Gnucash-Resave revision saved when the
                database was created. * If the current
                GNC_RESAVE_VERSION > the saved Gnucash version, then
                emit ERR_SQL_DB_TOO_OLD. * If GNC_RESAVE_VERSION < the
                saved Gnucash-Resave, emit ERR_SQL_DB_TOO_NEW. 
              * Minor fixes to g_test: Adjust MODULEPATH so that the
                boundary path delimiters go at invocation; add
                DEFAULT_INCLUDES to the test_foo_CFLAGS; include the
                required NULL third arg to g_test_init()
              * Use last changed revision number instead of
                last-commited-somewhere-in-repo svnversion without
                options returns the most recent revision in the repo at
                the time of the last svn update/checkout even if that
                revision didn't hold any changes in the current path.
                Not very useful as a reference. Better is to ask for the
                last changed revision with -c. BUT: -c option for some
                reason always considers svn working copy as having mixed
                sources. We're only interested in the last part so we
                strip the beginning revision if it's there. As a result
                if your WC really has mixed sources, that will not be
                visible in the version number...
              * Remove the word "days" because it is also located after
                the near field.
How can you help?
Translating: The new release comes with some new translation strings. If
you consider contributing a translation, we invite you to test this
release already. 

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.

More information about the gnucash-announce mailing list