ANNOUNCE: GnuCash 3.2 Released

John Ralls jralls at
Sun Jun 24 23:40:38 EDT 2018

The GnuCash development team announces GnuCash 3.2, the second release of the 3.x stable release series.


Between 3.0 and 3.2, the following bugfixes were accomplished:

	• Bug 787401 - Test Report System - Report Definition.
	• Bug 794617 - Can't compile with -DWITH_GNUCASH=NO due to scm-gnome-utils.
	• Bug 795101 - Scroll Bar in Reconcile Window Floats in and covers the check boxes.
	• Bug 795247 - datepicker broken in Persian. GnuCash passes dates as integer y/m/d without using locale-specific formats, so we need to strip out 'E' and 'O' from the format when scanning dates or determining separators in gnc-date. None of '-', 'E', or 'O' are supported by boost (and '-' causes errors), so strip them out from formatters in gnc-datetime as well.
	• Bug 795253 - Have problems input Chinese.
	• Bug 795272 - QIF importer causes application crash if action is invalid.
	• Bug 795276 - Invalid date on price stops file from being parsed.
	• Bug 795362 - Special variable "i" not parsed in function calls. Due to balance tests with insane random values.
	• Bug 795471 - Impossible to Edit Budget Unless Maximized.
	• Bug 795519 - Credit card payment after reconciliation.
	• Bug 795666 - Backslash '\' in Description field spoils CSV Import without helpful error message.
	• Bug 795831 - When read only threshold set, dates are silently changed. Display a message box informing the user of the change.
	• Bug 795944 - Cannot store change to Business Suppliers data.
	• Bug 796079 - Repeatable Crash in Tax Report Options.
	• Bug 796081 - Tax Schedule Report - An error occurred while running the report.
	• Bug 796083 - Reconcile Selection Doesn't Work Anymore.
	• Bug 796117 - Connecting 3.1 to an existing mysql db drops all data. Provide a backup recovery function that instead of dropping primaries and restoring backups merges the primaries and backups. This should handle a worst-case safe-save failure where the backup tables don't have a complete set of rows for some reason.
	• Bug 796256 - Main Window stays hidden when starting after closing main window while minimized.
	• Bug 796369 - Notes lost or perhaps just not displaying when using SQLite backend. This bug caused data loss if you saved your SQLite3 database to a different file or database. The problem is that in SQLite3 (though not in MySQL or PgSQL) the subquery ((SELECT DISTINCT guid FROM transactions)) (note the double parentheses) returns only the first guid in the subquery's results. Some transactions are loaded by special queries and those queries are also used to retrieve the transaction's slots so they weren't affected.
	• Bug 796398 - Restrict accelerator keys to valid date range.
	• Bug 796409 - Incorrect Current Value for Stocks. Missed calculating the value in the register summary bar.
	• Bug 796423 - Cannot Input Chinese, seems does not work with other IME too. Toggles not in view with all rows selected weren't being redrawn.
	• Bug 796484 - csv import: iostream error. Unfortunately it turns out that we can't use filestreams because they can't take path arguments containing Unicode on Windows.
	• Bug 796527 - invalid currency on scheduled transactions.
		• Don't even check for price/exchange rate on template transactions, there's no point.
		• Check all split commodities are valid, abort transaction creation if not.
		• If the template transaction's currency isn't used by any of the splits set the new transaction's currency to the first-found currency if there is one, otherwise to the first-found commodity.
	• Bug 796537 - Transaction Report cannot sort by "num".
	• Bug 796586 - QIF import incorrectly converts unicode characters from UTF8 encoded file.
	• Bug 796595 - QIF Import Select Account button to add a new account is labled gnc-account-new but should be New.
	• Bug 796600 - stock split cash-in-lieu income/asset labels backwards.
	• Bug 796614 - Reconciliation report contains incorrect transactions.
	• Bug 796638 - configuration not properly saved for CSV transactions import form.
The Following fixes and improvemts were not associated with bug reports:

	• Transaction report improvements:
		• Performance: Do all filtering ops before sorting.
		• Move the options summary before the subtotals table.
		• New unit tests
		• Enable computing averages in subtotal grid.
		• Generate the subtotal grid only if the primary sort key enables subtotals.
		• Fix subtotal grid to support multiple commodities.
		• New filters.
		• Much cleaning and refactoring of the internals.
	• Cache the num-split-action book option to avoid thousands of KVP queries for the same value when loading a register.
	• Create a static string for book option KVPs to save an extra malloc/free on old compilers without small-string optimization.
	• Add tooltip support for register cells.
	• New unit tests for the balance sheet report and invoices.
	• Consolidate charting code into a single module.
	• Removed an incomplete and abandoned C implementation of QIF import.
	• Restored libsecret support that had been left out of CMake.
	• Replace old-style html style attributes with css.
	• Modify emitted html to be parseable by the Guile SXML module for testing.
	• Remove support for long-gone gtkhtml renderer.
	• Clean up code generating html tables.
	• Ensure full precision of doubles is saved to SQL. std::iostream's operator<<(double) uses only 6 digits of precision by default.
	• Make float database operations more consistent, working around dbd-sqlite3's failure to support doubles (dbd-sqlite3, not sqlite3 itself).
	• Prevent crash in gnc-tree-view.c: When getting information from the state file, protect against the key not having a '_' which is used to split the string.
	• Add the full account name to the saved register settings If you need to delete the layout for a register in the settings file, the only thing identifying it is the account guid. To make it easier for humans, add the full account name also.
	• When register pages are restored it uses the full account name. When register pages are restored, the account is found from the full name so if the separator changes it will fail. Instead, also save the account guid and use that as default to find the account falling back to the full name.
	• Fix misplaced try block that caused unhandled exception if year out of range.
	• Fix permanent storage of vendor details: Since the data types did not match for the billterms and taxtable, those references/guids were not saved to the database.
	• Update invoice reports to use totals calculate by gncInvoice. This should give a consistent representation of invoice data across the application.
	• Ensure gncEntry rounding is consistent. Internally calculated values in the entry are never rounded. Consumers of gncEntry's calculated values can request them either rounded or not. Next use a pragmatical approach for calculating values on invoices based on the entry values: do the rounding such that we never create an unbalanced transaction while posting. That means:
		• round each entry's net value before summing them in net total
		• accumulate all tax totals on invoice level per tax account before rounding
and round before before summing them in a global tax total Hopefully this will catch a few more rounding issues in this area. A complete solution can only offered if we allow users to manually correct tax entries. This requires changes to user interface and data format so that's not going to happen in gnucash 3.x.
	• Use Scheme SRFI-64 test framework for new Scheme unit tests.
	• New compilers (gcc-8.0 and Xcode 9) bring new warnings, so several fixups to mollify them.
	• Lowercase all cmake commands for better readability.
	• Metadate migration (2.6.x->3.x) fixes for Windows.
	• Ensure timezone is set correctly in FreeBSD.
The following translations are updated: Dutch

Known Issues

The following are open bug reports new to the 3.x series considered significant by the development team:

	• 789594 - Unable to overwrite sqlite3 database file
	• 791825 - Accounting Period dates (among others) stored with a TZ-sensitive time.
	• 792397 - Incomplete Update to 2.7.x - not all online banking data is available.
	• 793306 - Price is not imported from CSV
	• 793556 - CSV export/import creates unbalanced transaction for fractional price.
	• 794755 - Commodity Register displays fractional prices
	• 795383 - Gnucash crashes on import of a 1400-transaction (or more) CSV file
	• 795614 - Unicode handling in amount fields.
	• 795804 - Extremely slow save
	• 796054 - Unposting and reposting invoice doubles amounts.
	• 796084 - Frequent Crashes During Data Entry.
	• 796100 - Autosave Doesn't Always Work.
	• 796248 - Editing Scheduled Transaction.
	• 796474 - Segmentation fault while setting up online banking
	• 796492 - Wrong calculation of the first occurrence
	• 796500 - Scalability issue - importing large CSV to large book won't finish.
	• 796520 - Layout overlapping in Income & Expense Chart.
	• 796537 - Transaction Report cannot sort by "num".
	• 796579 - Cannot go forward with empty duplicates screen.
	• 796591 - Crash on keyboard entry in register when not clicking or tabbing first.
	• 796614 - Reconciliation report contains incorrect transactions.
	• 796656 - GnuCash frequently crashes, usually involving unsaved transactions.


Concurrent with the release of Gnucash 3.2 we're pleased to also release a new version 3.2 of the companion Help and Tutorial and Concepts Guide.

Documentation changes:

	• Bug 796098 - V 3.1 Missing images in Tutorial and Concepts Guide in PDF and Online Help pages.
	• Bug 795980 - Void Reason Has No Visible Purpose.
Getting GnuCash for Windows and MacOS X

GnuCash is provided for both Microsoft Windows XP® and later and MacOS X 10.9 (Mavericks)® and later in pre-built, all-in-one packages. An installer is provided for Microsoft Windows® while the MacOS X® package is a disk image containing a drag-and-drop application bundle.

The SHA256 Hashes for the downloadable files are:

	• 63e5b00c148ed0f7021ebc03e4e70c4a9c549feb3ea49d6c810f2abaaf592452  gnucash-3.2.tar.bz2
	• beb028b6933f57a6dad89f0c0a54ffe7b5dd42bbd3f532405f4ffd01cc5eaa5c  gnucash-3.2.tar.gz
	• 0e06acfe7a9746eacf5282ba27919625b51c3d51fd548e6a529f78ff759ed70f  gnucash-3.2.setup.exe
	• 05e51cf24d0d85b9aef40f90d70ea118ef0cee2dee342af98ca64609524c4b9f  Gnucash-Intel-3.2-1.dmg
	• 469a524352a3b0e5308ba68a3c0fac79a501998b29db9c16a714ce879aa9c39c  gnucash-docs-3.2.tar.gz
Getting GnuCash for Windows and MacOS

GnuCash is provided for both Microsoft Windows XP® and later and MacOS X 10.9 (Mavericks)® and later in pre-built, all-in-one packages. An installer is provided for Microsoft Windows® while the MacOS X® package is a disk image containing a drag-and-drop application bundle.

Download GnuCash for Win32:
Download GnuCash for Mac-Intel:


Download GnuCash for Win32:
Download GnuCash for Mac-Intel:

Getting GnuCash as source code

If you want to compile GnuCash 3.2 for yourself, the source code can be downloaded from:

   WARNING Do not try to use the github-generated files labelled "Source Code". They have not been processed with
   swig and will not build.
You can also checkout the sources: git clone

Please consult the README.dependencies file in the sources for the required dependencies and versions needed to build GnuCash from source. Additional information on building GnuCash may be found at

Getting the documentation

The documentation is available at Documentation page of the GnuCash website. The 3.1 documentation can be found under "GnuCash v3 (current stable release)" in multiple languages both for reading online and for download in pdf, epub, and mobi formats.

If you want to compile the GnuCash Documentation 3.2 for yourself, the source code can be downloaded from:

  You can also checkout the sources directly from the git repository as described at

Detailed instructions for building GnuCash may be found at and for the Documentation at

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