Subject: CVS commit: pkgsrc/finance/gnucash
From: Thomas Klausner
Date: 2019-03-31 22:46:52
Message id: 20190331204652.78C6AFB16@cvs.NetBSD.org

Log Message:
gnucash: update to 3.5.

The following bugs have been fixed:
    Bug 639049 - Asset Barchart Report includes also the first day of next month \ 
transactions
  If the original date is an end-of-month date, we take it as an
  indicator they always want monthdelta dates to be end-of-months.
  This works for monthly/quarterly/halfyearly/annual.
    Bug 748431 - Wrong average balance for transactions during DST
  Replace average-splits with custom loop, cycling through the
  balancelist and splitlist, creating interval summaries along the way.
    Bug 787401 - Test for the report system - HTML Tests.
    Bug 795729 - Advanced Portfolio Report - Percentage rates not displaying \ 
leading zeros.
    Bug 796498 - Incorrect starting balance in TXF Report calculations.
    Bug 796530 - TxnCsvImport - fix loading of saved preset with update of \ 
seperator selection. Previously this would cause all but the first column to \ 
lose its assigned types.
    Bug 796687 - Tax Entity name and type for an account won't work under \ 
"Tax Reporting Options" in Gnucash 3.2
    Bug 796826 - Report HTML - not possible to suppress the document header.
    Bug 796827 - Report HTML - it is not possible to suppress the document title.
    Bug 796829 - Report HTML - HTML table rows are prepended not as list elements
    Bug 796831 - Report-HTML - append table column correctly.
    Bug 796877 - test-stress-options fails.
    Bug 796946 - Mortgage and Loan Repayment Setup tool crashes when exiting \ 
"Loan Repayment Options" page.
  Because libstdc++ on Windows doesn't support any C++ locales besides \ 
"C" and throws an exception if you try.
    Bug 796952 - Report formatting (justify) is broken.
    Bug 796956 - Aqbanking 6 will drop DTAUS
                 Adds support for the upcoming AQBanking 6 and removes support \ 
for AQBanking earlier than 5.3.4.
    Bug 796965 - Change the default to show unused accounts.
    Bug 796989 - some date/time does not honor user locale.
    Bug 797002 - Program crashes when exporting tax data in txf format.
    Bug 797011 - GnuCash 3.4 Crashes When Printing Checks with Custom Format.
    Bug 797013 - Import Customers & Vendors: error in CMakeLists.txt - \ 
causes incomplete project in Xcode.
    Bug 797029 - Import Customer & Vendors: blank name and company in import \ 
data row crashes GnuCash
    Bug 797030 - Import Customer & Vendors: several issues with the matching \ 
of data rows.
    Bug 797031 - Import customer & Vendors: import can create customer and \ 
vendors without address data
    Bug 797041 - enum confusion in qoflog.
    Bug 797046 - Tools / Price Database / Currencies UI not working since 3.4.
    Bug 797067 - Date displayed incorrectly in register.
    Bug 797074 - Reports with averages are displaying fractions
                 Convert amounts to decimal prior to adding to html-table.  Also \ 
adds tests to make sure averages are displayed in 2 decimal places.
    Bug 797098 - Quitting Gnucash shortly after clicking Save may abort file save.
    Bug 797105 - Incorrect local-symbol for SZL currency
    Bug 797136 - Balance sheet report "Show Exchange rate" broken when \ 
foreign currency is sold completely
                 For cases where total(amount)/total(value) = 0/0, the price is \ 
reported as 0.

Other repairs or enhancements not marked as bugs:

    API: Add dedicated api to query build-time, version related compile \ 
constants and use it in several location in the code for consistent behaviour.
    Budget: Save and restore the Account filter settings.
    Build: Fix deprecation warnings for g_type_class_add_private.

    CSV Tokenizer: Add additional test to guard against quote parsing regressions.
    GUI: Replace ambiguous mnemonic for File>Export>Export Active Register...
    GUI: Rearrange menu accelerators for Actions>Online Actions menu items
    GUI: Add mnemonic for File>Import>Import Bills...
    GUI: Move Balance-Forecast report to Reports>Assets & Liabilities
    GUI: Move Void Transactions item in Report Options from the Accounts tab to \ 
the Filter tab.
    I18N: Fix erratic localization of dates on Windows.
      Date format selection on Windows relies on Windows National Language \ 
functions and those are unaffected by the POSIX setlocale(). We have in the past \ 
relied upon gtk initialization to handle this but it has not been reliable since \ 
the move to Gtk3. Note that this applies only when the locale is set via a \ 
Unix-style environment variable (typically LANG) or in the environment file; \ 
it's unnecessary and ignored when using the localization settings in Region \ 
& Language.
    I18N: Unify phrases to remove untranslated msgids.
    I18N: Restore the global locale after Guile munges it.
      There's no way to change the environment locale on Windows so calling \ 
setlocale(LC_ALL, ""), as guile does in its init routine, reads the \ 
user's Language and Region settings instead of the environment variables. We \ 
save the discovered environment locale and call setlocale with it again after \ 
Guile has initialized.
    Importing: Remove old (non-SEPA) online transaction code, because now in \ 
2019 the banks will only offer SEPA transactions and no others. This in turn \ 
means we don't need the old ktoblzcheck checking functions at all so also remove \ 
the dependency.
    Importing: Usability improvements for Bayes editor window
      Remove the "Are you sure" question as it is simply annoying but \ 
does not help. Fix some string wordings to be more understandable.
    Online Banking: No longer force existence of local BIC code.
    Online Banking: Entering of TAN must use normal visibility
      The visibility of the entered content was set to FALSE (=invisible) \ 
always, which was wrong for certain types of input as indicated by the \ 
GUI_INPUT_FLAGS. This should now be honored and visibility set to TRUE \ 
(=visible) for the correct flags.
    Online Banking: Fix reconcile timestamps when importing balances.
      Used to be start-of-day, but needs to be day-neutral.
    Performance: Provide a single static instance of C++ locale.
      We can't use std::locale::global because all streams imbue it by default \ 
and if it's not 'C' (aka std::locale::classic) then we must imbue all the \ 
streams that we don't want localized, and that's most of them.
    Performance: Add GncDateTime::timestamp().
      To provide a C++ implementation of gnc_date_timestamp and to avoid using \ 
the expensive and localized GncDateTime::format().
    Performance: Implement a faster date-time serialization function.
      Has the side effect of recording all date-times in XML files in UTC \ 
instead of local time with a timezone. This will help users who like to keep \ 
their files under version control because the time strings won't shift every \ 
time Daylight time begins or ends.
    Performance: >Fix XML load CPU hotspot: Scrub.c xaccTransScrubPostedDate
      The refactoring provides roughly 10% reduction in user CPU use for XML \ 
file load by moving an expensive function to within an if-clause where the \ 
result is used.
    Performance: Speed-up of txn match dialog: Suspend GUI refresh during \ 
deletion of selected lines.
    Performance: Sorting speed-up: Cache the bool value of Transaction's \ 
is_closing property.
    Register: Accept URLs or file paths for files associated with transactions. \ 
File paths can be relative or absolute. A preference is provided.
    Reports: Speed up the budget and cash flow report calculation by iterating \ 
over accounts only once.
    Reports: Heavy scrubbing for code readability and performance.
    Reports: New Report by Ryan Turner: Balance Forecast Report
      This report forecasts the combined balances of the selected accounts based \ 
on the scheduled transactions and plots them on a line graph. You can set a \ 
"reserve" amount, which will draw a red line on the graph, so you can \ 
easily see if your forecast dips below a given value. There is also a \ 
"future minimum" line which shows what the lowest future balance will \ 
be at a given point. I find this useful in conjunction with the \ 
"target" line for planning.
    Reports: Fix crash when loading saved-report with unknown choices.
      If a saved-report with e.g. relative date, multichoice option is unknown, \ 
the report would crash, and the Report-Options would segfault. This commit fixes \ 
both: report-date defaults to 'today', multichoice-options defaults to \ 
default-value. Following this commit, if a report loads a saved-report or .gcm \ 
from a future version, a gnc:warn will be emitted and the report will not crash; \ 
it will use relative-date today. Multichoice will remain the default value. \ 
Report Options will not segfault. The user will be notified via a gnc:gui-warn \ 
dialog
    Reports: Date intervals at end-of-month:
      Instead of recursing the date, we calculate the next month using an \ 
index-based multiplier, and apply modulo/remainder as appropriate to determine \ 
the next month/year. Then we attempt to create new mktime, and if the resulting \ 
mktime's month is not as expected, reduce the mday by 1 until resulting month is \ 
correct. This fixes monthly intervals for end-of-month days. Test via \ 
monthly/quarterly deltas, and also includes leapyear calculation.
    Reports: Date-grouping must allow indenting.
      Indenting checkbox was erroneously disabled when: sortkey = date, \ 
date-subtotal = not 'none.
    Reports: Table display
      It is intuitive that if the user wishes to show the subtotal-table, and \ 
hide the transactions, then both the main (hidden) transactions and subtotals \ 
must be hidden as well.
    Reports: Update US Income Tax information for 2018.
    Scheme Deprecations:
      account-assoc
      account-hash
      account-hashtable-ref
      account-hashtable-set!
      account-in-alist
      account-in-list-pred
      account-in-list?
      account-same?
      gnc-commodity-collector-commodity-count
      gnc-commodity-collector-contains-commodity?
      gnc:commodity-collectorlist-get-merged
      gnc:exchange-by-pricedb-helper
      gnc:exhange-by-pricevalue-helper
      gnc:get-commoditylist-inst-prices
      gnc:hook-run-danglers
      gnc:make-drcr-collector
      gnc:make-stats-collector
      gnc:report-template-menu-name/name
      gnc:report-template-name-to-id
      gnc:report-template-new-options/name
      gnc:report-template-renderer/name
      gnc:restore-report
      gnc:save-options
      split-assoc
      split-hash
      split-hashtable-ref
      split-hashtable-set!
      split-in-list?
      split-same?

    Scheme: Replace account and split utility functions with SRFI-1 functions.
    Scheme: Testing (create-transaction) adds price trading commodities/currency \ 
this will modify a test which was calibrated to record purchase price only. fix \ 
transaction creation to add prices for both purchase and sales, and also fix \ 
test which was assuming no sale price was bring recorded.
    Scheme: Testing (env-create-multisplit-transaction) This is the general case \ 
for any transaction creation.  Rewrite other transaction creation routines to \ 
use it.  All tests still work unchanged, which confirms this function works \ 
well. This will allow tests to create multisplit transactions, of an arbitrary \ 
number of splits. If the list-of-split's values are not balanced (i.e. total 0), \ 
the engine will create an Imbalance-CUR split.
       The motivation is to allow creation of complex multisplit multicommodity \ 
transactions eg USD50 + GBP20 (USD25) = EUR66 (USD75) as well as their prices \ 
GBP/USD = 25/20 and EUR/USD = 75/66.
        * USD -50
        * USD -25 = GBP -20
        * USD +75 = EUR +66
       This will be useful in creating tests for stock-based reports, whereby \ 
stock sales need splits in STOCK/ASSET/INCOME accounts.
    Scheme: Redesign gnc:account-get-balances-at-dates, replacing the \ 
ignore-closing? parameter with a split->amount function parameter having a \ 
default value of xaccSplitgetAmount. (split->amount split) should return the \ 
amount of the split or #f; in the latter case the split is skipped. This allows \ 
for a more general account balance list accumulator with novel balance \ 
strategies. For example a split->amount function could test void status and \ 
return xaccSplitVoidForerAmount on void splits; test description/memo for some \ 
content and vary the returned amount accoridingly; or test the split and return \ 
1 or 0 creating a counter. To recreate the ignore-closing use case pass (lambda \ 
(s) (and not (xaccTransGetIsClosingTxn (xaccSplitGetParent s))) \ 
(xaccSplitGetAcmount s)))
    Scheme: Replace some option names. Automatically convert usage of the old \ 
names and issue a warning.

Updated Translations: Arabic, Croatian (New!), Farsi, French, German, Spanis, \ 
Ukrainian
Updated Account Templates: Belgium (French) (New!), Frsnce, Croatia (New!), \ 
Germany. Switzerland (French)

Files:
RevisionActionfile
1.275modifypkgsrc/finance/gnucash/Makefile
1.71modifypkgsrc/finance/gnucash/PLIST
1.94modifypkgsrc/finance/gnucash/distinfo
1.2removepkgsrc/finance/gnucash/patches/patch-libgnucash_engine_qoflog.cpp