ANNOUNCE: GnuCash 4.5 Released

John Ralls jralls at
Sun Mar 28 13:58:17 EDT 2021

The GnuCash development team announces GnuCash 4.5, the sixth release in the stable 4.x series

Between 4.4 and 4.5, the following bugfixes were accomplished:

	• Bug 783283 - Multi-Currency payments use wrong date
Also properly handles the user clicking the cancel button on the transfer dialog. It will now just return to the payment window, waiting for further user input. 

	• Bug 797621 - GnuCash freezes temporarily and sometimes crashes when selecting Sales Tax Table in Invoices
	• Bug 797630 - Check for missing dependencies of 'Get Quotes' to avoid Gnucash crash.
	• Bug 797906 - GnuCash data file is locked after a "save-as" to mysql database.
It's more general, any save-as to a different backend type, i.e. xml->sql or sql->xml, left the previous book locked.

	• Bug 797924 - Crash when searching for customer to process payment.
	• Bug 797997 - File gnucash could note be found
On Microsoft Windows when run from a CMD shell and passing a path that contains non-ASCII characters.

	• Bug 798019 - Currency rates in OFX file are ignored
Use currency_rate information from OFX file if available. Requires LibOFX v 0.10.0 or later. 

	• Bug 798044 - Adding splits to a lot is extremely slow
	• Bug 798060 - Invoices are missing on Customer report after upgrade
	• Bug 798070 - Opening balance does not update when creating account from Account Hierarchy
	• Bug 798078 - Report 'Income Chart' prints stacktrace when end date before start date
	• Bug 798085 - Incorrect transactions import of entires with large number amount
Quicken 2005 introduces U amount which sometimes differs from T amount. U amount has larger range, and must override T amount whenever they're not equal. 

	• Bug 798093 - Changing the symbol/abbreviation of a security after the trading account was created breaks GnuCash.
Makes it possible for the user to rename trading accounts or securities independent of each other.

	• Bug 798096 - can't duplicate TX previous to red line threshold
	• Bug 798098 - Crash popup show when have 3 Windows in OSX
	• Bug 798100 - Equity totals calculating incorrectly
Prevents creation of non-currency opening balance accounts. 

	• Bug 798101 - Do not #undef __STRICT_ANSI__
Remove defines and undefines for Windows, they were needed with MinGW classic but are not with MinGW-w64. 

	• Bug 798104 - Menu item for "Import Account" is wrong in danish
	• Bug 798112 - An error occurred while processing mysql ...
A "Feature" of MYSQL is that it allows C-style backslash escapes in string constants and replaces them with the actual character (e.g. \n is converted to 0x0a). This causes round trip problems if the escape is one of the allowed ones and a MYSQL error if it isn't. Disable the feature so that MYSQL follows the SQL standard. 

	• Bug 798132 - Invoice Importing crashes when importing low quantity values.
	• Bug 798135 - GtkEntry text with search list: shows selected entry again for no reason
	• Bug 798147 - Notes entry crashes program 
	• Bug 798149 - CSV transaction Import setting loses account name if it is changed after setting is memorized
Account guid is saved as well as the full account name and when recalled the account is looked up first by guid, if this fails the full account name is checked which if successful immediately updates the saved base account setting with the account guid for future use. If unsuccessful the account combo is blank with a error message as before. When save CSV settings button is used, both the Guid and full paths are saved so previous versions can still use the full path as before. 

	• Bug 798150 - Error on report over time
Caused by incorrect handling of Daylight Savings beginning at midnight.

	• Bug 798154 - Tooltips wrong when multiple charts in one report
The following fixes and improvements were not associated with bug reports:

	• Fix building based on unix makefiles
	• Make the chart on the report page icon larger to align better with the account page icon.
	• Allow the context menu when GncCellRendererTextView is in edit mode.
	• Restructure early locale initialization
		• Move macOS specific bits to its own source file. As this is objective-c use .mm extension
		• Use common function signature for macOS and Windows init function and include via common header file 
	• Fix GncDateTime::format_zulu to emit the UTC timezone instead of the GncDateTime's timezone with the UTC timestamp. 
	• Fix the implementations of gnc_foo_get_day_neutral. As implemented these returned 10:59 AM local on the day but neutral time is 10:59 UTC. 
	• gnc_invoice_window_print_invoice return NULL if invoice is NULL.
	• [dialog-invoice] invoice editor reuses invoice report tab.
	• Allow for Header Bar use in CSV transaction Assistant
There are a couple of action buttons that are added to the CSV transaction assistant with added alignment based on the action area being a GtkBox which causes errors if the header bar is used so test for the action area type and use appropriate specific functions. 

	• Drop default locale currency special case for euro
The condition mentioned in the comment no longer applies. All European locales on Windows (MingW64) properly present EUR as currency these days 

	• Fix fencepost error in calculating the week_num for POSIX timezone rules.
	• Include the contents of PROJECT_DESCRIPTION in the PACKAGE_PREFIX.
If it's defined. PACKAGE_PREFIX is used to name tarballs and set their base directory. The translation project has requested that we name freeze-string tarballs with a pre1 suffix; this makes that possible. 

	• Update python/ to reflect rename of gncOwnerApplyPayment.
	• I18N: don't mark "<<", ">>" translatable
They get properly reversed for RTL writing

	• From Budget editor, add toolbar and Edit menu to run budget report
This parallels the invoice editor "Print Invoice" functionality. Runs the budget report using current budget. 

	• [gnc-plugin-page-budget] change note icon to a note page
	• Allow the find account dialog position to be saved when using 'X'
	• Update price database for imported transactions.
	• Replace g_memdup by memcpy
GLib is deprecating g_memdup and will immediately remove it in the next micro-release because of a CVE.

	• [html-fonts] Prevent sup/sub from affecting baseline
Source: Previously <sup> and <sub> would cause the baseline to move vertically. 

	• Replace stat calls with GFile to retrieve last modified info
Avoids code-page problems with non-ASCII characters on Microsoft Windows.

	• [gnc-tree-model-split-reg.c] use xaccSplitListGetUniqueTransactionsReversed
which is then reversed if required. this removes the need for double reversal. 

	• [Split.c]New function xaccSplitListGetUniqueTransactionsReversed
Same as xaccSplitListGetUniqueTransactions but doesn't reverse the list prior to returning. To be used by gnc-tree-model-split-reg.c Several optimizations

		• doesn't call g_list_find and g_list_append for every iteration
		• uses g_hash_table to cache list of txns already added instead of g_list_find<.
		• does not reverse the result, thereby returning a reversed list.
	• [gnc-recurrence.c] avoid O(N^2) children traversal
	• Ensure that any GncMainWindows containing no tabs are destroyed at shutdown.
	• I18N: drop translatable flag from "xxx" dummies and remove trailing spaces from translatable strings
	• Update Form/Schedule line references for 2020 for the US Income Tax Report.
	• Fix build with glib2 2.67.x.
glib headers should not be included with 'extern "C"'. 

	• [balsheet-pnl] Use last day of the month prices instead of first day of next month.
	• [options.scm API] Remove canonically-tabbed parent-subtotal-mode
This mode had been marked experimental for 17 years and was never improved. Any saved reports with this option will be switched to parent-subtotal-mode enabled.

	• Accommodate Gwenhywfar 5.5.0 signature change for some GUI callbacks.
This is a breaking change that matters only in Win32. No ifdeffing because Win32 builds and dependencies are well synchronized. 

	• L10N: Move translation authority for Turkish from the GNU Translation Project to Weblate.
	• Make prototypes static for autoclear unit test, fixes build on Debian Buster.
	• [income-gst-statement] trep-engine currency section moved
From "General" to "Currency". Missed out in 854c117 commit 

	• [test-scm-utilities] test-end properly so that test failures set the exit code correctly 
	• Create opening balance accounts only when there are opening balances.
	• [qif-file.scm] Don't use match as an identifier
It is a (ice-9 match) keyword. 

	• Change the CSV export account tree header line
Change the headings of the CSV account export header line to be more friendly which uses existing translations. 

	• [new-owner-report] Don't create empty rows on report when splits have no entry in the memo field.
	• [gnc-report] dump backtrace to console when report crashes
because gnc:backtrace-if-exception, not used anymore, would dump guile backtrace to console. restore this behaviour. 

	• [report-core] remove 2.6/2.4 compatibility code
	• [gnucash-commands.cpp] display report errors to stderr

	• [report-core.scm] create and expose gnc:render-report
similar to gnc:report-run but *always* returns a 2-element list containing data OR captured_error 

	• [report-core.scm] create and expose gnc:render-report
similar to gnc:report-run but *always* returns a 2-element list containing data OR captured_error 

	• [gnc-plugin-page-report] add gnc_plugin_page_report_reload
refreshes the report 


	• [c-interface.scm] deprecate gnc:last-captured-error
	• [report-core] deprecate gnc:restore-report-by-guid
	• gnc:get-three-months-ago
	• gnc:get-six-months-ago
	• gnc:get-one-year-ago
	• gnc:get-three-months-ahead
	• gnc:get-six-months-ahead
	• gnc:get-one-year-ahead
	• traverse-list->vec
	• traverse-vec->list
New and Updated Translations: Bodo, Croatian, Danish, Dutch, English (United Kingdom), Finnish, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Lithuanian, Norwegian Bokmål, Polish, Portuguese, Portuguese (Brazil), Russian, Spanish, Turkish, Ukrainian, Urdu, Vietnamese

Known Problems

Complete list of all open bugs.


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

Between 4.4 and 4.5, the following bugfixes were accomplished:

	• Bug 798089 - Starting "Tutorial and Concepts Guide" writes namespace error to console
The following fixes and improvements were not associated with bug reports:

	• Add wiki links about Online Banking Setup
	• Online banking: Table of protocols
	• Rewording of tools abstract
	• Add IDs to all html chunks of help
	• Explain default sort order and a partial review of the register view menus.
	• Update links about tax report …
	• New section "Country Specific Reports"
Moved US:TXF, added de:ElStEr

	• Report: Join several notes in one footnote
	• Several updates in report-create
	• Guide: New year
	• Update saved-reports location
	• Update copyright year of german guide
	• Specify ISO currencies in overview (English, German)
Getting GnuCash for Windows and MacOS

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

The SHA256 Hashes for the downloadable files are:

	• bc1f48a8453488a2e9f6b83b68613aa55caebe4d2983460bdac7e084b46cffdc  gnucash-4.5.tar.bz2
	• ba645cca45d5354b4a2e25b5a3f5fb1e06eaaf6b72cf07b29c4818e2d5e0a084  gnucash-4.5.tar.gz
	• dc0f48cc6a606bf0e7780777dbef34dc8fd5a0eb8014ce79042cbada0f171839  gnucash-4.5.setup.exe
	• 9b8dd368d8c8b8879938830f129f2abf5014182c84d0cb8fc133b5d0d1d321a9  Gnucash-Intel-4.5-1.dmg
	• 91fd04afc8d9b700e9f034321aa782b52adf13c559e3a94410e0774c180afa43  gnucash-docs-4.5.tar.gz

Microsoft Windows:

Apple macOS:

GnuCash is now available as a flatpak from Instructions for installing and running may be found at

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

You can also checkout the sources directly from the git repository, see for instructions.

To compile GnuCash from the source code by yourself, you will need at least Gtk+ 3.24, Guile 2.0, Boost 1.54, WebKitGtk 2.4, GoogleTest 1.7.0, cmake 3.10 and SWIG 2.0.12. Please consult the README.dependencies file in the sources for the exact list of dependencies and versions.

Getting the documentation

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

Note that the documentation for stable releases is not on the GnuCash website. It is built daily and may be found on the development server under the locale directory; "C" is English, "de" is German, and so on.

The documentation is included in the MacOS and Windows application bundles.
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, MacOS, 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