Commit Graph
30459 Commits
Author SHA1 Message Date
John Ralls d37f4b49a5 Update supported platforms in README. 2026-07-14 12:44:46 -07:00
John Ralls f9db8320d2 CMakeLists.txt: Fix function-name typo.
Thanks to S. Kriesch in https://github.com/Gnucash/gnucash/pull/2271.
2026-07-14 12:29:00 -07:00
John Ralls 453a4fe886 Merge Noah Noerr's 'fix-qofsession-end-releases-lock' into stable. 2026-07-11 11:03:53 -07:00
John Ralls 13d8da3116 Merge Noah Noerr's 'readonly-skip-dbi-library-test' into stable. 2026-07-11 11:00:35 -07:00
Noah R f056be140c [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.
2026-07-10 17:52:55 -07:00
Christopher Lam b3e8074890 [gnc-euro.cpp] store euro rates as GncNumeric
this increases euro conversion rounding accuracy
2026-07-10 17:00:48 +04:00
Noah R 5dc53303b5 [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.
2026-07-09 20:24:45 -07:00
John Ralls 9db7b4439c Merge Thomas Teixeira's 'bug799774' into stable. 2026-07-09 16:16:06 -07:00
Thomas Teixeira f737847af2 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.
2026-07-09 16:13:15 -07:00
John Ralls 88670f2298 Merge Copy String's 'aqbanking-noted-transactions' into stable. 2026-07-09 16:03:50 -07:00
John Ralls 1c9d51a804 Update to the latest translations from Weblate. 2026-07-09 15:59:27 -07:00
Szia Tomi d0af7d39cd Translation update by Szia Tomi <sziatomi01@gmail.com> 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/
2026-07-09 17:01:22 +02:00
Szia Tomi 19d336ee9a Translation update by Szia Tomi <sziatomi01@gmail.com> 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/
2026-07-09 06:01:21 +02:00
Szia Tomi 04e6e89438 Translation update by Szia Tomi <sziatomi01@gmail.com> 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/
2026-07-09 02:01:20 +00:00
Alonso González Chaves 2015a7cc1e Translation update by Alonso González Chaves <algonza@live.com> 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/
2026-07-08 09:08:30 +02:00
copystring 604473bd6f L10N🇩🇪 Translate AqBanking noted transaction option 2026-07-08 01:37:41 +02:00
copystring 51753bf5f9 Add option to import AqBanking noted transactions 2026-07-08 01:37:26 +02:00
Szia Tomi bf07564885 Translation update by Szia Tomi <sziatomi01@gmail.com> 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/
2026-07-07 20:12:31 +00:00
Szia Tomi 4f2094d4f1 Translation update by Szia Tomi <sziatomi01@gmail.com> 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/
2026-07-07 20:12:30 +00:00
Szia Tomi f8d90e12e9 Translation update by Szia Tomi <sziatomi01@gmail.com> 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/
2026-07-07 20:12:29 +00:00
ales-ro f1ae978a83 Translation update by ales-ro <bianaless6@gmail.com> 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/
2026-07-07 20:12:29 +00:00
ales-ro 044b3bc1e6 Translation update by ales-ro <bianaless6@gmail.com> 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/
2026-07-07 20:12:28 +00:00
ales-ro f03c9d6d50 Translation update by ales-ro <bianaless6@gmail.com> 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/
2026-07-07 20:12:28 +00:00
ales-ro 4b64394256 Translation update by ales-ro <bianaless6@gmail.com> 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/
2026-07-07 20:12:28 +00:00
ales-ro 3148ec08aa Translation update by ales-ro <bianaless6@gmail.com> 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/
2026-07-07 20:12:27 +00:00
John Ralls 3fbde665a6 Merge Sherlock's 'bug799753' into stable. 2026-07-07 11:40:47 -07:00
Sherlock d7cf06673c 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".
2026-07-06 17:53:48 -07:00
Christopher Lam 29eb2b28b6 [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.
2026-07-04 03:13:34 +04:00
Christopher Lam d548b801de [html-acct-table.scm] avoid gnc:account-get-trans-type-splits-interval
replace with faster split accumulator
2026-06-30 09:49:03 +08:00
Christopher Lam 732ad466ee [report-utilities.scm] upgrade hash-ref! to report-utilities.scm 2026-06-30 09:49:03 +08:00
Christopher Lam c3a74e6a80 [investment-lots] use faster gnc-account-foreach-split-between-dates
to generate list of splits
2026-06-29 10:39:11 +08:00
Christopher Lam 6070bac87b [report-utilities.scm] convert account value accumulator to c++ 2026-06-29 10:21:11 +08:00
Christopher Lam b6e4672ab6 [test-report-utilities.scm] add test at date boundaries
there are txns at the query dates
2026-06-29 10:20:30 +08:00
John Ralls f958430429 Release GnuCash 5.16 5.16 2026-06-27 11:35:46 -07:00
John Ralls 1d744065f1 Merge Brent McBride's 'Investment-lot-CAGR-columns' into stable. 2026-06-27 09:48:25 -07:00
John Ralls b57349e83d Fix up the translation file headers.
Rebuilding the po files after the force-push inserted a lot of
incorrect translators, set many of the Last Translator headers to
me, and set the wrong GnuCash version."
2026-06-26 13:26:50 -07:00
John Ralls 1c1ef77466 Merge latest translations from Weblate. 2026-06-26 13:23:22 -07:00
Abdulsalam Alshilash 37b7112a26 Translation update by Abdulsalam Alshilash <ashalash@msn.com> using Weblate
po/ar.po: 100.0% (5699 of 5699 strings; 0 fuzzy)
89 failing checks (1.5%)
Translation: GnuCash/Program (Arabic)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ar/
2026-06-26 19:01:21 +00:00
John Ralls 74a3748efb Merge translations from Weblate into stable. 2026-06-26 06:54:10 -07:00
Szia Tomi 5806a25646 Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/glossary/hu.po: 100.0% (213 of 213 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/hu/

Co-authored-by: Szia Tomi <sziatomi01@gmail.com>
2026-06-26 07:26:51 +02:00
Adil Ishaq 201fde4056 Translation update by Adil Ishaq <ishaqadil@aol.com> using Weblate
po/glossary/ur.po: 5.1% (11 of 213 strings; 1 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Urdu)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/ur/

Co-authored-by: Adil Ishaq <ishaqadil@aol.com>
2026-06-26 07:26:50 +02:00
iceberg edc4530b04 Translation update by iceberg <usurprisedme@gmail.com> using Weblate
po/glossary/te.po: 4.2% (9 of 213 strings; 1 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Telugu)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/te/

Co-authored-by: iceberg <usurprisedme@gmail.com>
2026-06-26 07:26:49 +02:00
TheRealOne78 6080b43894 Translation update by TheRealOne78 <bajcsielias78@gmail.com> using Weblate
po/glossary/ro.po: 5.1% (11 of 213 strings; 2 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Romanian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/ro/

Co-authored-by: TheRealOne78 <bajcsielias78@gmail.com>
2026-06-26 07:26:48 +02:00
Hemant More eb6cbcfa0c Translation update by Hemant More <foil-pastor-omen@duck.com> using Weblate
po/glossary/mr.po: 4.2% (9 of 213 strings; 1 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Marathi)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/mr/

Co-authored-by: Hemant More <foil-pastor-omen@duck.com>
2026-06-26 07:26:46 +02:00
YOSHINO Yoshihito b02b8d4970 Translation update by YOSHINO Yoshihito <yy.y.ja.jp@gmail.com> using Weblate
po/glossary/ja.po: 6.5% (14 of 213 strings; 1 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Japanese)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/ja/

Co-authored-by: YOSHINO Yoshihito <yy.y.ja.jp@gmail.com>
2026-06-26 07:26:45 +02:00
soramikan 00b79f18b1 Translation update by soramikan <sora_yana@icloud.com> using Weblate
po/glossary/ja.po: 6.5% (14 of 213 strings; 1 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Japanese)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/ja/

Co-authored-by: soramikan <sora_yana@icloud.com>
2026-06-26 07:26:44 +02:00
Simon Arlott 34cf0ddb05 Translation update by Simon Arlott <nomis@users.noreply.hosted.weblate.org> using Weblate
po/glossary/en_NZ.po: 100.0% (213 of 213 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (English (New Zealand))
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/en_NZ/

Co-authored-by: Simon Arlott <nomis@users.noreply.hosted.weblate.org>
2026-06-26 07:26:43 +02:00
Andi Chandler f91ddc2907 Translation update by Andi Chandler <andi@gowling.com> using Weblate
po/glossary/en_GB.po: 100.0% (213 of 213 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (English (United Kingdom))
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/en_GB/

Co-authored-by: Andi Chandler <andi@gowling.com>
2026-06-26 07:26:42 +02:00
Raynition d96f2388f2 Translation update by Raynition <raynition@users.noreply.hosted.weblate.org> using Weblate
po/glossary/en_AU.po: 100.0% (213 of 213 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (English (Australia))
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/en_AU/

Co-authored-by: Raynition <raynition@users.noreply.hosted.weblate.org>
2026-06-26 07:26:40 +02:00
Itsmechinmoy 4eab3ce771 Translation update by Itsmechinmoy <167056923+itsmechinmoy@users.noreply.github.com> using Weblate
po/glossary/as.po: 31.4% (67 of 213 strings; 1 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Assamese)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/as/

Co-authored-by: Itsmechinmoy <167056923+itsmechinmoy@users.noreply.github.com>
2026-06-26 07:26:39 +02:00