GnuCash

gnucash.org
GnuCash

A full-featured cross-platform accounting application suitable for personal and small business finance. Stable and reliable, GnuCash offers a comprehensive suite of financial management tools. Available for Windows, Mac, Linux, and Android.

Open Source

GnuCash Source Code

Author

Gnucash

Description

GnuCash Double-Entry Accounting Program.

Homepage

http://code.gnucash.org/website/

License

NOASSERTION

Created

01 Feb 13

Last Updated

11 Jul 26

Latest version

gnucash-1-9-0

Primary Language

C

Size

666,063 KB

Stars

4,289

Forks

965

Watchers

4,289

Language Usage

Language Usage

Star History

Star History

Top Contributors

Recent Commits

  • John Ralls (11 Jul 26)

    Merge Noah Noerr's 'fix-qofsession-end-releases-lock' into stable.

  • John Ralls (11 Jul 26)

    Merge Noah Noerr's 'readonly-skip-dbi-library-test' into stable.

  • Noah R (11 Jul 26)

    [backend/dbi] skip the libdbi integrity probe for read-only sessions session_begin() runs dbi_library_test() (Bug #611936) on every open to detect a libdbi/-ffast-math miscompilation that mangles 64-bit values. The probe CREATEs, INSERTs into, SELECTs from and DROPs a temporary table, so it needs write privileges on the database -- even for SESSION_READ_ONLY. A least-privilege, read-only database user therefore cannot open the book at all: the temporary-table create fails and session_begin returns ERR_SQL_DBI_UNTESTABLE. The defect the probe guards against is on the write side of libdbi, so it can be neither triggered nor detected by a read-only session, which never writes. Skip the probe when the session is opened SESSION_READ_ONLY, at the two call sites a read-only open reaches (the SQLite session_begin and the shared MySQL/PostgreSQL session_begin); the third call site is inside the create branch, which read-only never enters. The write-capable modes (NORMAL_OPEN, NEW_STORE, NEW_OVERWRITE, BREAK_LOCK) still run the probe unchanged. This lets a SELECT-only database user open a book read-only through the API.

  • Christopher Lam (10 Jul 26)

    [gnc-euro.cpp] store euro rates as GncNumeric this increases euro conversion rounding accuracy

  • Noah R (09 Jul 26)

    [engine] qof_session_end: release the lock via the session's backend qof_session_end() is documented to release the session lock and shut the backend connection but it does not release the session lock in all scenarios (BUG). qof_session_end() looked the backend up via qof_book_get_backend(). The book's backend pointer is only set by load() or a data-changing save() (an empty book's save() early-returns before attaching it); begin() sets only the session's own m_backend. So a session that creates a store and ends it without loading or making a real change had a backend on the session but not on the book: end() found none, skipped session_end(), and never released the lock -- it was only released later at destroy(). Because the fault is in backend-agnostic engine code it affects every backend that locks at begin(): the SQL/DBI backends leave a stale row in the gnclock table, and the XML/file backend leaves an abandoned <file>.LCK sentinel (with no data file, since XML data is only written at save). The store then appears locked to the next opener. End the session's own backend (m_backend, always set at begin()) instead. It already equals the book's backend whenever the latter is set, so the change is a no-op for loaded/saved sessions and additionally covers the created-but-not-attached case. Add regression tests for both backends, each of which begins a create-mode session, ends it without a data-changing save, and checks the lock is gone: - test-backend-dbi-basic.cpp (test_dbi_new_store_end_releases_lock): reopens the store and asserts it is not ERR_BACKEND_LOCKED. - test-load-backend.cpp (test_new_store_end_releases_lock): asserts the XML <file>.LCK lockfile has been removed.

  • John Ralls (09 Jul 26)

    Merge Thomas Teixeira's 'bug799774' into stable.

  • Thomas Teixeira (29 Jun 26)

    Bug 799774 - Import transaction from CSV skips fields if CSV file has backslash just before final quote in a quoted field https://bugs.gnucash.org/show_bug.cgi?id=799774 Added a checkbox to the "File Format" section of the "Import Preview" step of the CSV Import Assistant. This checkbox is labeled "Enable escape character" and is enabled by default. If this checkbox is not enabled, GncCsvTokenizer will insert an escape character (backslash) before any escape found in the input which will prevent boost::tokenizer with escaped_list_separator from processing this backslash as part of an escape sequence. Ensured that saved import settings that have no current value for the new "EnableEscape" field will set the "Enable escape character" checkbox. Changed the test framework in GncTokenizerTest to specify whether escape characters are enabled, and added test cases for escape characters disabled.

  • John Ralls (09 Jul 26)

    Merge Copy String's 'aqbanking-noted-transactions' into stable.

  • John Ralls (09 Jul 26)

    Update to the latest translations from Weblate.

  • Szia Tomi (09 Jul 26)

    Translation update by Szia Tomi <[email protected]> using Weblate po/hu.po: 91.4% (5209 of 5699 strings; 115 fuzzy) 1 failing checks (0.1%) Translation: GnuCash/Program (Hungarian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

  • Szia Tomi (09 Jul 26)

    Translation update by Szia Tomi <[email protected]> using Weblate po/hu.po: 91.4% (5209 of 5699 strings; 115 fuzzy) 1 failing checks (0.1%) Translation: GnuCash/Program (Hungarian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

  • Szia Tomi (09 Jul 26)

    Translation update by Szia Tomi <[email protected]> using Weblate po/hu.po: 91.2% (5202 of 5699 strings; 121 fuzzy) 1 failing checks (0.1%) Translation: GnuCash/Program (Hungarian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

  • Alonso González Chaves (08 Jul 26)

    Translation update by Alonso González Chaves <[email protected]> using Weblate po/es.po: 99.8% (5691 of 5699 strings; 8 fuzzy) 0 failing checks (0.0%) Translation: GnuCash/Program (Spanish) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/es/

  • copystring (07 Jul 26)

    L10N:de: Translate AqBanking noted transaction option

  • copystring (07 Jul 26)

    Add option to import AqBanking noted transactions

  • Szia Tomi (07 Jul 26)

    Translation update by Szia Tomi <[email protected]> using Weblate po/hu.po: 91.2% (5202 of 5699 strings; 121 fuzzy) 1 failing checks (0.1%) Translation: GnuCash/Program (Hungarian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

  • Szia Tomi (06 Jul 26)

    Translation update by Szia Tomi <[email protected]> using Weblate po/hu.po: 91.2% (5202 of 5699 strings; 121 fuzzy) 1 failing checks (0.1%) Translation: GnuCash/Program (Hungarian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

  • Szia Tomi (06 Jul 26)

    Translation update by Szia Tomi <[email protected]> using Weblate po/hu.po: 91.2% (5200 of 5699 strings; 123 fuzzy) 1 failing checks (0.1%) Translation: GnuCash/Program (Hungarian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

  • ales-ro (01 Jul 26)

    Translation update by ales-ro <[email protected]> using Weblate po/it.po: 97.3% (5546 of 5699 strings; 99 fuzzy) 28 failing checks (0.4%) Translation: GnuCash/Program (Italian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/it/

  • ales-ro (30 Jun 26)

    Translation update by ales-ro <[email protected]> using Weblate po/it.po: 97.2% (5545 of 5699 strings; 100 fuzzy) 28 failing checks (0.4%) Translation: GnuCash/Program (Italian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/it/

  • ales-ro (30 Jun 26)

    Translation update by ales-ro <[email protected]> using Weblate po/it.po: 96.9% (5526 of 5699 strings; 113 fuzzy) 32 failing checks (0.5%) Translation: GnuCash/Program (Italian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/it/

  • ales-ro (30 Jun 26)

    Translation update by ales-ro <[email protected]> using Weblate po/it.po: 96.7% (5512 of 5699 strings; 124 fuzzy) 39 failing checks (0.6%) Translation: GnuCash/Program (Italian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/it/

  • ales-ro (29 Jun 26)

    Translation update by ales-ro <[email protected]> using Weblate po/it.po: 96.3% (5490 of 5699 strings; 146 fuzzy) 41 failing checks (0.7%) Translation: GnuCash/Program (Italian) Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/it/

  • John Ralls (07 Jul 26)

    Merge Sherlock's 'bug799753' into stable.

  • Sherlock (07 Jul 26)

    Bug 799753 - Reconciliation error when reconciling transactions posted after the reconcile date When we change the original "Statement Date" and set the "Ending Balance" to the original "Ending Balance", the "Reconcile" window will inappropriately reset the "Ending Balance" to the balance at the new "Statement Date".

  • Christopher Lam (02 Jul 26)

    [html-acct-table] bugfix last commit - scan accounts once If the acct list had duplicates, previous impl would include their splits only once. if we scan account splits manually we must avoid scanning the same account multiple times.

  • Christopher Lam (29 Jun 26)

    [html-acct-table.scm] avoid gnc:account-get-trans-type-splits-interval replace with faster split accumulator

  • Christopher Lam (30 Jun 26)

    [report-utilities.scm] upgrade hash-ref! to report-utilities.scm

  • Christopher Lam (28 Jun 26)

    [investment-lots] use faster gnc-account-foreach-split-between-dates to generate list of splits

  • Christopher Lam (27 Jun 26)

    [report-utilities.scm] convert account value accumulator to c++

GnuCash Security

4.8/10

Repo Security Summary

Updated 29 Jun 26

  • Maintained 10/10
  • Code-Review 5/10
  • Packaging N/A
  • Dangerous-Workflow 10/10
  • Token-Permissions 10/10
  • CII-Best-Practices 0/10
  • Binary-Artifacts 10/10
  • Security-Policy 0/10
  • License 9/10
  • Pinned-Dependencies 0/10
  • Fuzzing 0/10
  • Signed-Releases 0/10
  • SAST 0/10
  • Branch-Protection 0/10

GnuCash Website

Website

Free Accounting Software | GnuCash

GnuCash is personal and small-business financial-accounting software, freely licensed under the GNU GPL and available for GNU/Linux, BSD, Solaris, Mac OS X and Microsoft Windows.

Redirects

Does not redirect

Security Checks

All 65 security checks passed

Server Details

  • IP Address 24.199.76.112
  • Location Santa Clara, California, United States of America, NA
  • ISP DigitalOcean LLC
  • ASN AS14061

Associated Countries

  • US US

Safety Score

Website marked as safe

100%

Blacklist Check

www.gnucash.org was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

GnuCash Reviews

More Secure Budgeting

About the Data: GnuCash

API

You can access GnuCash's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/gnucash

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share GnuCash

Help your friends compare Secure Budgeting, and pick privacy-respecting software and services.
Share GnuCash and Awesome Privacy with your network!

View Secure Budgeting (7)