Software Update: GnuCash 4.9

Spread the love

Version 4.9 of GnuCash has been released. GnuCash is a cross platform and open source accounting program for individuals and small businesses. It uses the double entry system and is able to easily keep track of, for example, bank accounts, investments, income and expenses, budgets, mortgages and loans and can of course create reports and graphs. The release notes for this release mention the following changes and improvements:

Between 4.7 and 4.8, the following bug fixes were accomplished:

  • [gsettings] Avoid crash from settings schema not being registered.
  • Rethink how gsettings migration file is constructed
  • GSettings hotfix – resolve crash due to bad schema reference
  • [gnc-plugin-page-register] call invoice editor with parent window
  • [assistant-stock-split] set parent window properly

Between 4.8 and 4.9, the following bug fixes were accomplished:

The following fixes and improvements were not associated with bug reports:

  • More memory leak plugging and GList efficiency improvements.
  • Fix build with cmake older than 3.18
    3.18 introduced ‘cmake -E cat’, but we still have to support versions starting from 3.14.
  • [account-piecharts] don’t use gnc:make-internal-option
  • Several improvements to the experimental IFRS cost-base report.
  • Fix two minor issues with displaying links in the Document Link dialog.
  • Fix obsolete links to in translations.
  • L18N: Fix glossary/es.po:906: duplicate message definition…
    901: …this is the location of the first definition
  • [budget-flow] delay creating exchange-fn until a valid budget exists
    because it needs budget period end date.
  • [options.scm] Addon previous commit… need to initialize with guid
  • [options.scm] gnc:make-budget-option stores guid instead of object
    because object may become stale if UI is used to delete it, leading to stale pointer and segfault. malfunction guid is safer, and will return null if budget is deleted.
  • support SEPA internal transfer
  • Fix issue with failure to run reconciliation with all accounts present in a multi-account OFX file. Do that by saving a GList of statements, rather than a pointer to a single one. Also freeing of info happens during the call to process_next_file.
  • Import of OFX files with many securities opens too many matching dialogs Because ofx import is currently split per target account, and since each security has its own accounts, importing such OFX is a tedious process. The fix is ​​to only split the transactions if we identify a potential transfer, currently based on amount, date and accounts. To do that, we insert transactions one by one into a list, making sure we have not already inserted one that has the same date, and the same absolute amount. If we have, we keep this potential transfer for a second phase. A naive approach would loop through added transactions for each new transaction by that ends up being O(N^2), which matters if we have many transactions. Instead, I’m using a hash to make this O(N log N).
  • [date-utilities.scm] remove unused date selectors code & string
    To match new signature of g_once_init_enter and g_once_init_leave.
  • Fix build with glib2 2.67.x.
    glib headers should not be included with ‘external “C”‘.
  • Add explanatory note for gnc_add_scheme_deprecated_module test code
    The immediate parent commit removes old deprecated scheme modules. Link to the old modules for example code.
  • [test-engine-extras] don’t create splits of opposing amt/value signs
    Splits’ value and amount should never be of opposite signs. Fix test book which had created this incorrect value/amount pair. Strengthen env-create-multisplit-transaction to disallow test book errors.
  • [dialog-search] another QofQuery “q” must be destroyed
    because qof_query_merge creates a newly allocated QofQuery, its 2 QofQuery must be freed separately.
  • [trep-engine] new option “Date Filter” to specify dates to filter by
  • [dialog-sx-since-last-run] don’t allocate repeatedly to combine strings
  • [test-transaction] “Report Currency” renamed to “Report’s currency”
  • Separate the warnings for “cut split/transaction” and “delete split/transaction”
  • [gnc-autoclear] Move autoclear algorithm into gnome-utils
  • GSettings – fix GObject warning when old prefs-version is unset
    This will happen when current master (future 5.0) has been run at least once.
  • [utest-gnc-pricedb] add tests for gnc_price_list_equal
    Also need to change PWARN which causes test failure, to PINFO
  • [reconcile-view][bug] dr/cr query tests amount instead of value
    Because split->amount and split->value are generally of equal sign, EXCEPT in stock transactions whereby split->value can be zero and split->amount is non-zero. eg a stock split transaction. Querying the split amount instead will allow stock accounts with stock splits to be reconciled.
  • [split-register-model.c] Hide price==1 for zero-amount splits
    mainly of interest in zero-amount zero-value splits in the stock register eg dividend splits.
  • [core-utils] introduce gnc:format
    (gnc:format str [binding value]…) str will contain ${binding} which will be replaced to value.
  • [import-main-matcher] show destination acct for auto-match
  • GSettings – add ‘deprecate’ and ‘obsolete’ conversions for user preferences
    ‘deprecate’ is technically a noop. It serves to remind maintainers the ‘deprecated’ preference is to be obsoleted in the next major release. ‘obsolete’ goes one step further in that it will cause gnucash to reset the preference, effectively clearing the value stored in the preferences backend. This is the final phase of a preference. Following this it will be completely removed from the GSettings schema in the next major release. Notes * ‘deprecate’ and ‘migrate’ are related. Both are a reminder the preference is to be obsoleted in the next major release. ‘deprecate’ does only that though while ‘migrate’ will also trigger a copy of the old value to a new location in the database. * This commit readds a couple of preferences that had been removed in the past to be able to properly obsolete them (and to test the obsoleting code)

Version number 4.9
Release status Final
Operating systems Linux, macOS, Windows 8, Windows 10, Windows 11
Website GnuCash
file size


License type GPL
You might also like