marker Information
marker Documentation
marker Downloads
    marker Developer Information

    Welcome to GnuCash.org

    Download GnuCash 2.2.9

    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.

    Designed to be easy to use, yet powerful and flexible, GnuCash allows you to track bank accounts, stocks, income and expenses. As quick and intuitive to use as a checkbook register, it is based on professional accounting principles to ensure balanced books and accurate reports.

    Feature Highlights

    • QIF/OFX/HBCI Import, Transaction Matching
    • Reports, Graphs
    • Scheduled Transactions
    • Financial Calculations
    • Double-Entry Accounting
    • Stock/Bond/Mutual Fund Accounts
    • Small-Business Accounting
    • Customers, Vendors, Jobs,
      Invoices, A/P, A/R

    News

    GnuCash 2.3.15 (Unstable) released

    The GnuCash development team proudly announces GnuCash 2.3.15, the sixteenth of several unstable 2.3.x releases of the GnuCash Free Accounting Software which will eventually lead to the stable version 2.4.0. With this new release series, GnuCash can use an SQL database using SQLite3, MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft Windows and Mac OSX.

    WARNING: This is an *UNSTABLE* version of Gnucash.

    This release is intended for developers and testers who want to help tracking down all those bugs that are still in there.

    Make sure you make backups of any files used in testing versions of GnuCash in the 2.3.x series. Although the developers go to great lengths to ensure that no data will be lost we cannot guarantee that your data will not be affected if for some reason GnuCash crashes in testing these releases.

    WARNING: You should uninstall any earlier GnuCash version from your system prior to installing 2.3.15.

    Failing to do so may result in startup errors. In particular on Windows this may cause "Parse error: entry point not found" errors.

    NOTE: The latest stable version is 2.2.9.

    PLEASE TEST TEST AND TEST SOME MORE any and all features important to you. Then post any bugs you find to bugzilla

    Major changes in the 2.3.x release include;

    • In addition to the XML backend, Gnucash can now use a SQLite3, MySQL or PostgreSQL database to store the data. This is a new implementation using libdbi. It supports all features including the business features. In order to build with this, add --enable-dbi to the configure command. In addition to the libdbi-dev package for your distribution, you will also need the appropriate DBD (libdbi driver) package for sqlite3, mysql or postgresql.
    • As a replacement for the current GtkHTML HTML engine used to display reports and graphs, Gnucash can use WebKit. WebKit is the engine used by Google Chrome on Windows and Safari on Apple. In order to build with this, add --enable-webkit to the configure command. You will need an appropriate webkit-dev package. On win32, you will need to download the webkit-1.1.5-win32.zip file from the source repository and put it into the downloads directory of your gnucash build area.
    • Updated to AqBanking 3 on Win32.

    Strings are frozen. This means no new changes will be introduced which change any text displayed by Gnucash. Therefore, final translations for 2.4.0 release may begin.

    Changes between 2.3.14 and 2.3.15 include:

    • Bugs fixed
      • Bug #626459: Change Transaction Report default account selection to none I think in the specific case of the "Transaction Report" this is the better choice. The error message will be clear enough ("No accounts selected. Click here to Edit report options"), and it will probably meet the user expectation that some account needs to be selected anyway before something can be seen.
      • Bug #625193: Added 'search by ID' in python binding for invoices, customers and bills. Patch by Mike E and Mark Jenkins: When creating or appending to invoices, customers and bills, searching by ID is likely more useful than by GUID. I've added this functionality to the Python bindings. Search by ID using the python code: tmp = gnucash.gnucash_core_c.search_invoice_on_id(ID,book.instance) if tmp: invoice = gnucash.gnucash_business.Invoice(instance=tmp) Use the invoice object as in sample_scripts/simple_invoice_insert.py I support this patch, but I've made a few improvments of my own. I switched up the arguments in search_customer_on_id, search_invoice_on_id, search_bill_on_id to have Book first and ID second. The reason for this was to make these functions more consistent with the other functions where a search is done through a book on a particular attribute. Also added some specific python bindings support to allow this to be used as methods of Book: Book.CustomerLookupByID, Book.InvoiceLookupByID, Book.BillLoookupByID.
      • Bug #624721: Show backtrace for errors in eguile templates Patch by Matthijs Kooijman: The current eguile template implementation catches errors that occur while evaluating an eguile template. However, only the error is shown, not a backtrace (so no location of the error either). The attached patch modifies the error handling to also capture the stack backtrace, using a lazy exception handler (e.g., capture the stack before unwinding the stack to the real exception handler). To extract only the relevant part of the stack (e.g., the part inside the eguile template, not the tens of stack frames leading up to the report rendering), a stack dump is made just before evaluating the eguile template (so a sort of "diff" can be made). For more details, see the extensive comments in the patch itself.
      • Bug #616613: Automatically append the extension if user forgot append them. Patch by "Bob": The enclosed patch simply tests for a period in the file name, if one exists it leaves it alone, if not, it adds one plus a default extension.
      • Bug #626403: Fix inconsistent formatting between stylesheets (Webkit vs. gtkhtml) Patch by Alex Aycinena: The 'default' stylesheet formats the balance sheet, cash flow, income statement and transaction reports properly under webkit but not under gtkhtml. The 'easy', 'footer', and 'technicolor' stylesheets are the reverse; that is, they format the balance sheet, cash flow, income statement and transaction reports properly under gtkhtml but not under webkit, except that the 'footer' stylesheet also has some formatting problems with gtkhtml as well. The attached patch file corrects these problems. Specifically: - styles that are missing in the 'footer' stylesheet (compared to 'easy') are added - the function 'gnc-html-engine-supports-css' is used in the 'default', 'easy', 'footer' and 'technicolor' stylesheets to provide styles for either webkit or gtkhtml - the taxtxf.scm report file is simplified to take advantage of these changes
      • Bug #625697: Prior patch, Changeset 19376, broke reports for non-default stylesheets Patch by Frank Ellenberger
      • Bug 623801 - gnucash file is not saved
      • Bug 625845 - Exporting Accounts results in 0 byte file.
      • Bug 625977 - Python Bindings, enhanced examples showing the use of Transaction.BeginEdit(), patch by Mark Jenkins
      • Bug 625976 - Python Bindings Patch for Transaction.GetImbalance(), patch by Mark Jenkins
      • FIx bug 596124: don't crash if someone adds a split to a capital gains transaction created by the lot scrubber.
      • Double clicking on the balance column in a register doesn't resize the column because there is a zero width column to the right of it. This may fix all or part of bugs 563588, 345711, or 506261.
      • Bug 612337: Add file save to hierarchy druid when the new file druid completes. Patch by "Bob": I thought I would give this a try and come up with a patch to use the file save as function after the after pressing the apply button. Not sure if it is the best way but seems to work on my linux box and on windows without any errors. I have changed the text in the account.glade file to reflect the firing of the save as and also increased the size of the window to give more room for the 'Category Description' to stop scroll bars.
      • Bug #624623 - Patch: US Tax Report for webkit and gtkhtml
      • Bug #556713 - inconsistency in report options Use "Reset defaults" instead of "Use defaults, as suggested by Derek.
      • Bug #556713 - inconsistency in report options Final additions to this bug.
      • Bug #621016: Print multiple checks at the same time The print checks operation should be able to print more than one check with a single invocation of the "Print Check..." command. The attached patch does this. If the active register is an account register, then the selected transaction is printed (as before). If it is a search results register where all the splits are from the same account, then it prints a check for each of them. Anything else is an error. Patch by Mike Alexander.
      • Bug #118391: This patch add isocodes support for Windows build. It automatically download, build, install and packaging the isocodes. Currently, the patch will not make Windows build show the locale long currencies name. But it make the isocode available on Windows. Since the long currencies names are already shown on Linux, I think it should not far to make it happen on Windows too, especially the isocode will be available after this patch.
      • Bug #620763: Fix permuted "Retained Earnings/Losses" in balsheet-eg.eguile.scm
      • Bug #620763: remove trailing whitespace from balsheet-eg*
      • Bug #556713: Fix inconsistency in report options The attached patch should fix the remaining outstanding issues of this bug. Applying this patch now would break string freeze.
      • #616606 - Get default report font from top level widget Patch by Tao Wang
      • Bug #623844 - CRITICAL gnc.backend Error message in trace file.
      • Bug #623842 - Reseting of Color Tabs to default color wrong.
      • Bug #556713 - inconsistency in report options, partial fix This commit aligns all occurences of "Current/Previous Year Start/End" to "Start/End of this year"
      • Bug #556713 - inconsistency in report options, partial fix This commit aligns all occurences of "Report Accounts" and "Accounts to include" to "Accounts"
      • Bug #447339 - custom reports with similar names misbehaving
      • Bug #556713 - inconsistency in report options, partial fix This commit aligns all occurences of "Report Currency" and variants to "Report's currency"
      • Bug #556713 - inconsistency in report options, partial fix This commit replaces "From/To" with "Start Date/End Date" in all standard reports.
      • Bug #389841: Wrong translation of Tax Amount and update of Italian translation by Cristian Marchi
      • Bug #622953 - Enable comment for date format string again in gnucash.pot, patch by Frank H. Ellenberger.
      • Bug #622637 - The classical invoices should use the more specific strings from taxinvoice, part 2, by Frank H. Ellenberger
      • Bug #622637 - The classical invoices should use the more specific strings from taxinvoice, part 1: whitespace cleanups, patch by Frank H. Ellenberger.
      • Bug #617797 - Win32 need to downgrade to gtk-2.16 (Default theme not working under Windows), second patch adding custom themes, by Tao Wang
      • Bug #622523 - Python bindings are crash prone when linked to guile
      • Bug #622520 - gnucash business objects disapear on save, patch by Mark Jenkins
      • Bug #622271 - Category 'Gas' under 'Auto' should be translated to Petrol in en_GB and en_AU
      • Bug #617797 - Win32 need to downgrade to gtk-2.16 (Default theme not working under Windows), patch by Tao Wang
      • Bug #616606: Add gnc-get-default-report-font-family function callable from scm. Currently returns "Arial" but can be modified to get default GtkWindow font.
      • Bug #600574 - Would like to disable creation of log files and backup files entirely
      • Bug #621744 - Prompt for password is not hidden
      • Bug #619709 - Upgrade Inno Setup to 5.3.x to use utf-8 in .iss script, patch by Tao Wang
      • Bug #621602 - Upgrade svn on Windows building environment to 1.6.x, patch by Tao Wang.
      • Bug #378638 - log replay creates two transactions from a single logged transaction
      • Bug #615347 - Use enforced, consistent data file extension across supported platforms The choice has fallen on ".gnucash". This extension will be added to all filenames that don't have it already when a user chooses "Save As...". Obviously this is only done for files, not for database storage. The backup files will from now on also end in ".gnucash" instead of the previous ".xac". The code that removes old backup files scans for both extensions to ensure that backup files still available with the ".xac" extension are rotated as well.
    • Updated translations or translation-related changes
      • Update po files with up-to-date pot template.
      • Remove unused file from both SVN and POTFILES.in.
      • de.po: correction of "Income Tax Identity" This term is used in the first dialog of "Ta_x Report Options".
      • Updated Italian translation by Cristian Marchi.
      • Updated Japanese translation by Yasuaki Taniguchi, copied from the Translation Project.
      • Updated Latvian translation by Valdis Vītoliņš.
      • New Latvian translation of the business account chart, thanks to Valdis Vītoliņš <valdis.vitolins@odo.lv>
      • Updated simplified Chinese translation by Tao Wang.
      • Updated Dutch translation by Mark Haanen, copied from the TP.
      • Updated German translation.
      • Add initial Bulgarian translation, by Rosi Dimova, by Bulgarian Gnome translation team.
      • Fix missing translation of buttons in invoice reminder dialog.
      • Updated Dutch translation, copied from the Translation Project
      • Update of Italian translation by Cristian Marchi
      • Merge most recent pot template into all language po files.
      • Update German translation.
      • Merge most recent translation template into de.po.
      • Update POTFILES.in after recent file move.
      • I18n improvements in invoice reports: Mark last untranslated strings for translation.
      • Update de.po after invoice review. There were some equivocalnesses between invoice and balance. After using the strings from tax-invoice in the other invoice forms, the de translations should switch back. Patch by Frank H. Ellenberger.
      • Improve i18n comments: Comment for gnucash.pot must appear immediately before the marked string.
      • Improve name consistency. Use "GnuCash" (or more precisely PACKAGE_NAME), wherever the name is visible to the user, and "gnucash" (or more precisely PACKAGE) everywhere else.
      • Add utf-8 prefix, so the Windows installer interprets the file properly
      • Fix Latvian language support for Windows installer (should have used lv instead of lv_LV)
      • Add Latvian translation for the Windows Installer, patch by Valdis Vītoliņš
      • Fix encoding issues in Windows README file and translate last sentence.
      • Add Latvian readme file for Windows
      • Update Dutch translation from the TP
      • Update Chinese (simplified) translation, from the TP
      • Set user visible application name as part of the gui initialization. This defines which name is used in the about dialog and is used by gnome-keyring to determine where to store passwords.
      • Add simple checkbook account chart in Dutch, by Mark Haanen.
      • Move language dependent files lv_LV to lv
      • Move language dependent files lv_LV to lv, one more change
      • Move language dependent files lv_LV to lv
      • Updated Italian translation by Cristian Marchi.
    • Other user-visible changes
      • Allow negative tax percentages. This allows to model some tax rules for trade between European countries.
      • Add error message if the unimplemented aqbanking setup button is pressed. Please see http://lists.gnucash.org/pipermail/gnucash-devel/2010-August/029188.html and http://lists.gnucash.org/pipermail/gnucash-devel/2010-August/029189.html
      • Bug 616612 - Remember last location of File Open/Save dialog, partial solution This commit remembers the last directory for * Open * Save * Export chart of accounts * Save Report This only stores file based paths, not db based paths.
      • Modify the osx_accel_map to reflect the different keybinding in Gtk+-2.20
      • Fix crash when run with the --add-price-quotes parameter.
      • Follow-up of r19358: Need to use AB_SetupDialog_new instead as replacement of the previous wizard.
      • Adapt to newest (unstable) aqbanking: No external application needed anymore for user setup.
      • Re-enable colored tabs on Windows. This works fine with gtk+2.16.
      • Add averaging option (but currently deactivated) for monthly or weekly average in account piechart. Will be activated once we're out of string freeze in order not to have untranslated strings show up for the user.
      • Explain proximo concept.
    • Other code/build changes
      • Get library from correct directory - fixes "make check"
      • Dummy commit to test mailing list hooks.
      • Fix typo in comment.
      • Convert glade files to gtk+2.10, last batch.
      • Fix stupid compiler error. (Should compile first, then commit, not the other way round.)
      • Copy OpenOffice.org python macro for import of the gnucash file to here because its original download location is hard to reach.
      • Fix compiler warning
      • Fix compiler error reported by Herbert Thoma
      • Replace a gkt+2.18 function to be gtk+2.10 compatible
      • Fix gtk critical warning, patch by Bob.
      • Fix problem with "t" unbound in cond expression. Use "else" instead.
      • Add missing return value specification of lookup_by_code() in python bindings. Patch by Daniele Varrazzo.
      • Remove now empty business directories
      • Fix r19364: Remove last reference to removed business-backend-sql.
      • Merge the sql parsers of the business objects into the main sql module. Also, completely remove the business-core/sql module because it is no longer needed. The tests of this module have been moved into backend/dbi because they depend on sql+dbi, but not more than that.
      • Completely remove the business-core/xml module as it is no longer needed.
      • Remove the separate business xml backend from cutecash and python as well.
      • Merge the xml parsers of business objects into the main xml backend module.
      • Remove separate object initialization in engine/gncBusiness.c and move this into one common initialization function cashobjects_register in <engine/cashobjects.h>.
      • Convert glade files to Gtk+2.10: remaining business dialogs
      • Convert glade files to Gtk+2.10: business dialogs except customer/vendor/invoice
      • Convert glade files to Gtk+2.10, next batch: gnome-utils
      • Convert dialogs to Gtk+2.10 Removed one unused dialog as well, as it contained many deprecated widgets causing trouble.
      • Remove unused dialog
      • Fix GtkSpinButton with non-zero page_size warnings.
      • Move the business object implementations from separate module into the main gnucash engine.
      • Move initialization of business objects into gncBusiness.c so that this fits to the header where the function was declared.
      • Remove header gncBusinessP.h which is unused anyway.
      • Convert glade files to glade3/gtk+2.10, next batch.
      • Remove obsolete code.
      • Some changes to align the README files with the current state of gnucash.
      • Convert glade files to gtk+2.10, next batch.
      • Convert to glade-3 target gtk+2.10
      • Fix binary test.
      • More path fixes.
      • Fix paths. On Mandriva the original code resulted in two absolute path being appended, resulting in file not found errors.
      • Python bindings, gncnumeric and accounttype constants, patch by Mark Jenkins.
      • Nice example python scripts, patch by Mark Jenkins.
      • Future default file extension is .gnucash, so - rename example files to this extension - replace references to the old extension where appropriate
      • Fix erroneous quotation in scheme string of last commit
      • Improve the initial report loading code so that it loads only files ending with .scm. This should avoid accidentally loading .scm~ backup files etc. The code matches the filenames against the regexp "\.scm$", so the previous hand- written comparison against "." and ".." is no longer necessary as those don't match that regexp anyway.
      • Fix build failure introduced by r19285 on systems with guile 1.6.
      • Properly check for SWIG version 2.0.0 and later.
      • Revert part of R19263. DYLD_LIBRARY_PATH must be set on MacOSX (running under X11, not Quartz) in order for GnuCash to find its dynamic libraries.
      • Change gnucash-bin to gnucash on OS X (the other platforms had been changed already)
      • After learning the scheme case syntax, implement it correctly this time. Fixes r19281, r19280, r19253, r19252.
      • Add missing UTF-8 BOM
      • Some more disabling of the new deactivated option in the piechart. Forgotten in r19280, sorry for that.
      • Disable new option of piechart report even more.
      • Check properly for svn availability
      • Re-indentation of source code. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
      • Document what to do if svn isn't found. This only applies to the scripts used to setup an automated build system
      • Cleanup use of constants
      • Finish direct binary execution on Windows and linux and cleanup bin Makefile/targets - Windows * binary name becomes GnuCash.exe * gnucash.cmd is renamed to gnucash-launcer.cmd (consistent with OS X). This file is only needed to run GnuCash straight from the source installation. It is not used (or distributed) with the Windows Installer version. * gnucash-valgrind, gnucash-gdb and the override extra's have been removed as they are meant for a UNIX like environment - Linux/others * binary name becomes gnucash * the gnucash launch script has been removed together with gnucash-gdb. They no longer add value on linux. * gnucash-valgrind has been retained because it contains useful presets - OS X (Quartz) * binary name remains gnucash-bin for now (requires synchronous changes in the externally hosted OS X build system) * gnucash launcher script has been renamed to gnucash-launcher. This file is only needed to run GnuCash straight from the source installation. It is not used (or distributed) in the OS X bundle version. * gnucash-gdb and gnucash-valgrind remain and can be used for debugging the source installation.
      • Undo debug modification introduced in r19100. It bypassed the Abort and was never intended to be committed.
      • Use enum value QOF_LOG_MESSAGE (newly defined in r19257) instead of the generic G_LOG_LEVEL_MESSAGE
      • OSX: Use the language list instead of the locale Language list is better than locale: * Locale is only one choice, language list gives user several chances before defaulting to english. * Locale is set on the Formats page in System Preferences>Language & Text and labelled "Region", which makes one think that it's separate from language choices. * This new code looks at only the first two letters, so any time (e.g.) German is selected as the language it will use the de_DE localization. This will have to be elaborated if we ever get regional language translations.
      • OSX: Set locale and languages from User Defaults. This was handled in the bundle launcher script and completely ignored when gnucash is launched from the command line. Should offer better performance than the scripted version, which had some odd workarounds.
      • Add missing enum value
      • Fix report error in piechart due to the temporary deactivation of the new option.
      • Make business sql backend initialization functions accessible when statically linking. Same change as what r18841 added in business-core/xml.
      • Delegate transaction log enabling/disabling to the backends. Let only the xml backend enable logging.
      • Add getter function for mapping a {year,month,day} symbol to the conversion function of a date to a fractional number.
      • Fix a comment to reflect the actual code.
      • Remove command line parameter that is ignored anyway.
      • Fix typo in commodity.glade which broke creating new commodities
      • Improve handling of unknown access methods (protocols). Avoid mangling of such urls, so that a clean error message can be displayed.
      • Disable enviroment_overide() when MAC_INTEGRATION is defined: It doesn't play well with App Bundles.
      • Don't look for dbi drivers if dbi_initialize failed.
      • Fix dbi drivers not found when --with-dbi-dbd-dir is set at configure time.
      • Default key accelerator map for OSX, using Command instead of Control

    Caveats for Testers

    Any 2.3.x version might crash unexpectedly at any point during runtime. If you test some serious work in a 2.3.x release and are using the XML file backend for data storage, make sure you hit "Save" after every non-trivial workstep. If you are using the SQL backend, this is not required as every change is saved immediately to the database.

    The documentation has had screenshots updated, however, many help texts usually only refers to the 1.8.x series. Everyone is invited to help improve the documentation; see http://wiki.gnucash.org/wiki/Development on how to get involved.

    How can you help?

    Testing: Test it and help us discover all bugs that might show up in there. Please enter each and every bug into bugzilla.

    Translating: The new release comes with some new translation strings. If you consider contributing a translation, we invite you to test this release already. A string freeze will be announced in one of the later 2.3.x releases. Please check http://wiki.gnucash.org/wiki/Translation_Status for updates on this.

    We would like to encourage people to test this and any further releases as much as possible and submit bug reports in order that we can polish GnuCash to be as stable as possible for the 2.4.0 release in a few weeks. Then post any bugs you find to bugzilla

    Getting GnuCash

    Source code for GnuCash 2.3.15 can be downloaded from multiple locations:

    • The GnuCash website
    • Sourceforge: bzip2, gzip, all files.
    • You can also checkout the sources directly from the subversion repository with this command:

      svn co http://svn.gnucash.org/repo/gnucash/trunk gnucash

    To install GnuCash, you will need Gnome 2, guile, slib. In addition you will need swig if compiling from subversion.

    Win32 binary

    The Gnucash 2.3.15 Win32 setup executable can be downloaded from Sourceforge as well.

    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, Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

    GnuCash 2.3.14 (Unstable) released

    The GnuCash development team proudly announces GnuCash 2.3.14, the fifteenth of several unstable 2.3.x releases of the GnuCash Free Accounting Software which will eventually lead to the stable version 2.4.0. With this new release series, GnuCash can use an SQL database using SQLite3, MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft Windows and Mac OSX.

    WARNING: This is an *UNSTABLE* version of Gnucash.

    This release is intended for developers and testers who want to help tracking down all those bugs that are still in there.

    Make sure you make backups of any files used in testing versions of GnuCash in the 2.3.x series. Although the developers go to great lengths to ensure that no data will be lost we cannot guarantee that your data will not be affected if for some reason GnuCash crashes in testing these releases.

    NOTE: The latest stable version is 2.2.9.

    PLEASE TEST TEST AND TEST SOME MORE any and all features important to you. Then post any bugs you find to bugzilla

    Major changes in the 2.3.x release include;

    • In addition to the XML backend, Gnucash can now use a SQLite3, MySQL or PostgreSQL database to store the data. This is a new implementation using libdbi. It supports all features including the business features. In order to build with this, add --enable-dbi to the configure command. In addition to the libdbi-dev package for your distribution, you will also need the appropriate DBD (libdbi driver) package for sqlite3, mysql or postgresql.
    • As a replacement for the current GtkHTML HTML engine used to display reports and graphs, Gnucash can use WebKit. WebKit is the engine used by Google Chrome on Windows and Safari on Apple. In order to build with this, add --enable-webkit to the configure command. You will need an appropriate webkit-dev package. On win32, you will need to download the webkit-1.1.5-win32.zip file from the source repository and put it into the downloads directory of your gnucash build area.
    • Updated to AqBanking 3 on Win32.

    Strings are frozen. This means no new changes will be introduced which change any text displayed by Gnucash. Therefore, final translations for 2.4.0 release may begin.

    Changes between 2.3.13 and 2.3.14 include:

    • Bugs fixed
      • Bug #618954: Add a column "Due" to the invoice search results list. Patch by "scar".
      • Bug #618951: Add ability to search for invoices by due date Patch by "scar".
      • Bug #118391: Resize currency dropdown list Patch by Frank H. Ellenberger. Now in the tested (european) languages one can understand the meaning without horizontal scrolling - search for MXV or UYI to see long examples. I used glade 3, which created the file in a somewhat different way - let me know, if that is a problem.
      • Bug #619984: Remove "Gnumatic, Inc." from po/Makevars Gnumatic Inc. does since a few years no longer exist. So it makes no sense, to have it as copyright holder of new GnuCash translations. I got Linas OK for this change on IRC: http://lists.gnucash.org/logs/2010/05/2010-05-28.html#T13:37:53 - #T16:12:23
      • Bug #617797: Set eol-style to CRLF for win32 files.
      • Bug #618434 - Decimal separator is always '.' when using the keypad, patch by Yasuaki Taniguchi
    • Updated translations or translation-related changes
      • fix Latvian account trees, patch by Bill Nottingham.
      • Update German translation Patch by Frank H. Ellenberger: update de.po 1. add missing translations 2. review fuzzy translations 3. correct liabilities: Passiva -> Fremdkapital/Verbindlichkeiten 4. correct discount: Skonto -> Skonto, Rabatt & Nachlass 5. typos
      • Updated Dutch translation by Mark Haanen, copied from the Translation Project.
      • Updated Japanese translation by Yasuaki Taniguchi, copied from the Translation Project.
    • Other user-visible changes
      • Fix r19227, r19228: Don't make the "Due Date" the primary search; fix erroneous parameters when inserting into list.
    • Other code/build changes
      • File convert commodity.glade in glade3-3.6.7 to ensure our gtk-2.10 requirement is sufficient.
      • Set eol-style for win32-bin.txt to CRLF because this file should view correctly on win32 systems
      • Set all shell scripts to svn:eol-style LF because they should have the same line endings.
      • Fix script that builds the release tags. Awk works differently on windows than on linux apparently.

      Caveats for Testers

      Any 2.3.x version might crash unexpectedly at any point during runtime. If you test some serious work in a 2.3.x release and are using the XML file backend for data storage, make sure you hit "Save" after every non-trivial workstep. If you are using the SQL backend, this is not required as every change is saved immediately to the database.

      The documentation has had screenshots updated, however, many help texts usually only refers to the 1.8.x series. Everyone is invited to help improve the documentation; see http://wiki.gnucash.org/wiki/Development on how to get involved.

      How can you help?

      Testing: Test it and help us discover all bugs that might show up in there. Please enter each and every bug into bugzilla.

      Translating: The new release comes with some new translation strings. If you consider contributing a translation, we invite you to test this release already. A string freeze will be announced in one of the later 2.3.x releases. Please check http://wiki.gnucash.org/wiki/Translation_Status for updates on this.

      We would like to encourage people to test this and any further releases as much as possible and submit bug reports in order that we can polish GnuCash to be as stable as possible for the 2.4.0 release in a few weeks. Then post any bugs you find to bugzilla

      Getting GnuCash

      Source code for GnuCash 2.3.14 can be downloaded from multiple locations:

      • The GnuCash website
      • Sourceforge: bzip2, gzip, all files.
      • You can also checkout the sources directly from the subversion repository with this command:

        svn co http://svn.gnucash.org/repo/gnucash/trunk gnucash

      To install GnuCash, you will need Gnome 2, guile, slib. In addition you will need swig if compiling from subversion.

      Win32 binary

      The Gnucash 2.3.14 Win32 setup executable can be downloaded from Sourceforge as well.

      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, Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

    GnuCash 2.3.13 (Unstable) released

    The GnuCash development team proudly announces GnuCash 2.3.13, the fourteenth of several unstable 2.3.x releases of the GnuCash Free Accounting Software which will eventually lead to the stable version 2.4.0. With this new release series, GnuCash can use an SQL database using SQLite3, MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft Windows and Mac OSX.

    WARNING: This is an *UNSTABLE* version of Gnucash.

    This release is intended for developers and testers who want to help tracking down all those bugs that are still in there.

    Make sure you make backups of any files used in testing versions of GnuCash in the 2.3.x series. Although the developers go to great lengths to ensure that no data will be lost we cannot guarantee that your data will not be affected if for some reason GnuCash crashes in testing these releases.

    NOTE: The latest stable version is 2.2.9.

    PLEASE TEST TEST AND TEST SOME MORE any and all features important to you. Then post any bugs you find to bugzilla

    Major changes in the 2.3.x release include;

    • In addition to the XML backend, Gnucash can now use a SQLite3, MySQL or PostgreSQL database to store the data. This is a new implementation using libdbi. It supports all features including the business features. In order to build with this, add --enable-dbi to the configure command. In addition to the libdbi-dev package for your distribution, you will also need the appropriate DBD (libdbi driver) package for sqlite3, mysql or postgresql.
    • As a replacement for the current GtkHTML HTML engine used to display reports and graphs, Gnucash can use WebKit. WebKit is the engine used by Google Chrome on Windows and Safari on Apple. In order to build with this, add --enable-webkit to the configure command. You will need an appropriate webkit-dev package. On win32, you will need to download the webkit-1.1.5-win32.zip file from the source repository and put it into the downloads directory of your gnucash build area.
    • Updated to AqBanking 3 on Win32.

    Strings are frozen. This means no new changes will be introduced which change any text displayed by Gnucash. Therefore, final translations for 2.4.0 release may begin.

    Changes between 2.3.12 and 2.3.13 include:

    • Bugs fixed
      • Change from ige-mac-menu to GtkOSXApplication for OSX integration. Fixes #600590.
      • Bug #618646 - Should be able to run gnucash-bin.exe directly, rather than gnucash.cmd Patch by Tao Wang.
      • Fix #616100 - Incorrect character set used in MySQL backend Use "SET NAMES 'utf8'" so that mysql uses utf8 for communication and all char sets.
      • Bug #618647 - Compile .ico as resource into gnucash-bin.exe, patch by Tao Wang
      • Bug #618505 - Separate shell functions files from variables and steps files, patch by Yasuaki Taniguchi
      • Bug #618341: Additional paths to reset.sh Patch by Yasuaki Taniguchi.
      • Bug #615168: Remove instances of (use-modules (ice-9 slib)) except report-system.scm There are no more instances of (require ...), so Guile's slib support is no longer needed. Patch by Andy Wingo, but except report-system.scm because saved reports still use the hash-for-each -- so we will need to continue to support the symbol.
      • Bug #615168: Remove spurious (require 'hash-table) instances except report-system.scm Patch by Andy Wingo, but except report-system.scm. There is nothing that the slib hash-table module provides that was used in any of these files; they all used Guile's stock hash tables.
      • Fix #616554 - New stylesheets based on Fancy template cause BIN to crash An interface issue between libjpeg and webkit (incorrect type used in libjpeg) causes the crash. This patch replaces the normal libjpeg with a patched one.
      • Bug #352058 - Invoice entries should default to opening date of invoice.
      • Bug #615510 - Gnucash crashes when creating new customer job
      • Bug #357696 - Billable items appear in more than one invoice
      • Bug #118391: Implement translation long currency names Adjust in iso-4217-currencies.scm fullnames to conform with iso-codes-3.3 Patch by Frank H. Ellenberger.
      • Bug #616524: Fix missing re-generating of gnucash_core.c code. The .c file gets outdated easily because the makefile doesn't contain enough of its dependencies. I would need to be regenerated each time any of the included files was changed, but currently it doesn't contain these dependencies in the makefile rules. Having it depending on config.h should at least trigger the generation at each version number change (so that the tarball contains an up-to-date version.)
      • Bug #612212: Provide a method to set the default budget Patch by Jeff Kletsky. (Cstim: Accepted even though string freeze is in effect because it was submitted before the freeze. Also, the string additions are very minor.) Summary of Changes: * Initial story related to providing default budget control * Add a "Budgeting" tab to the book-level preferences dialog * Add a "Default Budget" selector to the "Budgeting" tab * Modify gnc_budget_get_default() to * Respect the new KVP, if present * Fall back to 2.2.x behavior, if not present * Modify gnc:make-budget-option * Reformatted for readability with additional comments * Default is now "#f" so that selected value is always saved Otherwise, if selection happened to be the current default and the default was later changed, the report would change * getter, setter, and generate-restore-form all now consistent * setter now always takes a budget object * generate-restore-form does not rely on "hack" in setter that previously allowed either a budget object or a GUID string This is a different fix for 603215 -- see Known Issues * Provide translation support for "Trading Acccounts" (and "Budgeting") * Refactor #define names for consistency and extensibility * KVP_OPTION_PATH for consistency with Guile usage * OPTION_SECTION_blahblah * OPTION_NAME_blahblah * Modify qofbookslots.h to be "SWIG-aware" * Pick up qofbookslots.h in make-gnucash-potfiles.in and po/POTFILES.in Known Issues: * There is no selection (yet) for "Use default budget" so changing the default budget and reloading a report does not change the budget used * setter is no more robust to "bad" values than in previous code * Budget reports created with 2.3.x after r18528 (between 2.3.8 and 2.3.9) may not load or re-render as they relied on the setter taking either a budget object or a GUID as a string This should not impact any 2.2.x users as nothing was saved under 2.2.x related to the default budget. This can be resolved through removing the option restore code in ~/.gnucash/saved-reports-2.4 and, if affected reports were open, in ~/.gnucash/books/<name_of_book> * Budget reports prior to r18528 did not save budget selection (603215)
      • Bug #586805: Fix errorneous abs() in csv import Changes abs function to fabs in gnc-csv-model.c, to allow csv imports of values less than $1.00. Patch by James Raehl.
      • Bug #617660: Improving iso-4217-currencies Patch by Frank H. Ellenberger 1. improve the header of fieldnames with annotations 2. sort by ISO code, because a. easier for non english people b. most tables in the internet have this sort order. So maintainance becomes easier. 3. inserting a Column local_symbol, because some people like to use it, e.g. https://bugzilla.gnome.org/show_bug.cgi?id=492417#c3 But probably there is a better way to get this informations. 4. Review List: a. adding: CDF, GHS, ... b. outdated: AON->AOR->AOA, GWP->XOF, ... c. Typos like "fening". d. Alway use singular instead of a mixture. 5. add comments: a. outdated currencies prepared as in the header shown. b. for abbreviations. Background is the thread starting with https://lists.gnucash.org/pipermail/gnucash-devel/2009-October/026558.html
      • Bug #617435 - webkitgtk+ cross build script, created by Yasuaki Taniguchi
      • Bug #617558 - Header in register doesn't clear properly in double-line mode when switching from transaction to split, patch by Alex Aycinena
      • Bug #617072 - Update create_cross_mingw.sh, patch by Yasuaki Taniguchi
      • Bug #554936 - 'configure.in' files should be renamed 'configure.ac'
      • Bug #616696 - Development version warning string should not include hardcode version. Third revision. - Stable Version changed into Stable Series (easier to track automatically) - Modified motd code to deal with replacement strings - Changed DEVELOPMENT release tip to separate the Stable Series number from the translatable string.
      • Bug #615168: Don't define hash-fold for guile 2.x Patch by Andy Wingo. * src/scm/main.scm (hash-fold): Only do the conditional hash-fold dance if we don't have guile 2.0. (Definitions in expression context are actually invalid Scheme, but older Guiles are more permissive.)
      • Bug #615168: scm_c_string_length is the proper spelling now Patch by Andy Wingo. Fix up a couple uses of scm_i_string_length, and add a back-compat shim for earlier versions.
      • Bug #616696 - Development version warning string should not include hardcode version. * Improve on the previous fix: really display stable version in tooltip, not current version. * Also revert change of "What's new in GnuCash 2.0" because that's the title actually found in the help manual.
      • Bug #615317 - Windows installer requires Qt libraries
      • Bug #616696 - Development version warning string should not include hardcode version.
      • Fix #616606 - Add <meta> line indicating utf8 encoding so that non-latin chars show correctly.
      • Bug #615168: Make sure that printf is available whereever it is used So, the right thing is for each file to be in its own module. Barring that it's tough to see what the environment is in a given module. So to be safe, everywhere there's a printf, make sure the (gnucash printf) module is duly included. Patch by Andy Wingo. Conflicts: src/business/business-reports/easy-invoice.scm src/business/business-reports/fancy-invoice.scm src/business/business-reports/invoice.scm src/business/business-reports/job-report.scm src/report/standard-reports/budget-income-statement.scm src/report/standard-reports/income-statement.scm src/report/standard-reports/trial-balance.scm
      • Bug #615168: Fix a number of scheme syntax errors This kind of error is detected "eagerly" in Guile 2.0. Patch by Andy Wingo.
      • Bug #615168: Fix bogus gnc:safe-strcmp definition Patch by Andy Wingo.
      • Bug #615168: Fixup one last simple-format bit src/engine/iso-currencies-to-c did the same simple-format dance that is now unnecessary. Patch by Andy Wingo.
      • Bug #615168: Replace calls to simple-format with calls to format Guile 1.6 and up always provides simple-format, and defines it as a restricted subset of the full format, so there's no harm in using the construct's proper name. Patch by Andy Wingo.
      • Bug #615168: Pull in printf from slib, change all code to use it. There is a new module, (gnucash printf). Patch by Andy Wingo.
      • Bug #616093: Notes are not editable in scheduled transaction edit window Patch by James Raehl: The Notes field is not visible or editable. This appears to be a deliberate choice, as can be seen in line 1308 of gnome/dialog-sx-editor.c routine schedXact_editor_create_ledger. I disagree. Since Notes are not copied to the newly-created scheduled transaction, there is no way for the user to copy Notes to the model, nor to modify the Notes. This makes the partial fix in r16652 for bug 500427 kind of pointless. This patch reverses that decision.
      • Bug #615912: Update gnc_quote_source from FQ 1.11 to 1.17 and enhance user_name Patch by Frank H. Ellenberger. Because many sources were listet as unknown, I tried to sort them in. Because normal users don't know all englisch abbreviations of far continents, I tried to use better understandable descriptions and added country codes. Caveats: 1. The HU methods were not quite clear to me, so I added only one. 2. The Currencies methods seems to fetch lists of currencies, something what we don't need here; correct me, if I am wrong.
      • Bug #118391: Mark currency names for translation but using the "iso_4217" translation domain. This will make approx. 50% of the currency names show up in translated form. At least more than nothing. Eventually, we most probably must change our long name definitions to match those of iso_4217, and after this we will get 100% translations.
      • Revert r19051, "Bug #118391: Mark the currency names for translation." We better don't mark the currency names for translation inside gnucash.pot; instead, we should use the "iso_4217" translation domain.
      • Bug #616615 - Request for larger size icon (96x96, 128x128, 256x256): Properly include smaller icon sizes, remove duplicate size
      • Bug #616615 - Request for larger size icon (96x96, 128x128, 256x256)
      • Bug #118391: Mark the currency names for translation.
    • Updated translations or translation-related changes
      • Update of Latvian translation by Valdis Vitolins
      • Additional fix for Simplified Chinese translation of windows installer
      • Add Latvian account templates by Valdis Vitoliņš.
      • Reapply Simplified Chinese patches
      • Repatch Windows installer for Simplified Chinese
      • Update German translation.
      • I18n improvements: Remove colons from translatable strings. Use correct capitalization. In most cases, the changed strings already appear somewhere else in the program, so only very few are unfortunately now new strings even though we hoped we could stick to the string freeze.
      • zh_CN translation for Windows Installer, patch by Tao Wang.
      • Update zh_CN account charts, patch by Tao Wang.
      • Updated Dutch translation, copied from the Translation Project.
      • Update Chinese (simplified) Translation, copied from the Translation Project.
      • Fix help text, discovered by Nikos Charonitakis
      • Update of Brazilian Portuguese translation by Miguel A.Rozsas
      • Update of Greek translation by Nikos Charonitakis
      • Updated Danish translation by Joe Hansen, copied from the Translation Project.
      • Update zh_CN translation, patch by Tao Wang
      • Update of Italian translation by Cristian Marchi
      • zh_CN translation of gnucash glossary file, patch by Tao Wang
      • Updated zh_CN translation of accounts, patch by Tao Wang
      • I18n: Fix erroneous message. This (tooltip) string is blatantly wrong, so we need to fix it regardless of string freeze. Spotted by Mark Haanen.
      • I18n fix: Mark forgotten strings for translation. These are allowed regardless of string freeze because the strings are already in the program and are untranslated so far. So marking them for translation will only improve the situation but not introduce new strings into the program in general. Spotted by Mark Haanen.
      • Add src/gnome/gnucash.desktop.in.in to the translation input files.
      • I18n: Fix typo in user message. This breaks the string freeze, but 1. the typo really hurts one's eyes, and 2. the message is only secondarily important, so I would accept this single string freeze breakage.
    • Other user-visible changes
      • Implement help for OSX
      • Set default webkit font from system font.
      • Merge CSS and plain stylesheets, leaving the plain and remove the CSS stylesheet. Plain now has font specifications.
      • Add font support to all stylesheets
      • Add "Pay invoice" toolbar button when invoice is open.
      • When posting an invoice, propose the invoice's opened date as post date.
      • A search with no search terms set by the user should still honor the original search constraints. For example: if a user does: - Find customer - Click on Customer's invoices - Then explicitly removes the empty search term - Click Find => the user should still see only the invoices for this customer. Previously this scenario would return all bills, invoices AND vouchers in the book. The cause was an attempt to merge two queries with AND while one query had no terms. The code already partially checked for this, but there was still an unhandled case.
      • Return only bills when searching for bills, return only invoices when searching for invoices and return only vouchers when searching for vouchers
      • Change default report stylesheet from "Default" to "Default CSS"
    • Other code/build changes
      • Fix warning message of autogen.sh for python-binding. Patch by Tao Wang
      • Remove AC_PROG_OBJC from configure.ac
      • printf with %zd is not known in mingw gcc 4.4.0 and prevents gnucash from being built with that compiler. Since this is only a debug message, I chose to replace it with %d which should also do the right thing.
      • Properly check for the unavailability of windows webkit. The logic was accidentally inverted when #ifndef got replaced with if HAVE(). As a side effect, this fixes a mingw gcc-4.4 compiler warning.
      • Fix encoding issues introduced in r19204
      • Fix gnc-module test after patch from bug #618646.
      • Win32 - Fix installation location of some files, reported by Tao Wang.
      • Fix 64-bit compiler error introduced in r19206
      • Split "Arial" out from font names to make it easier to replace.
      • Update binreloc to use Cocoa-based GtkOSXApplication instead of ige-mac-bundle.
      • Fix gnc_dbd_dir foulup
      • Fix libdbi hardcoded driver directory usage Patch by Bill Nottingham, with modifications to only set GNC_DBD_DIR if --with-dbi-dbd-path is explicitly set.
      • Win32 use up-to-date configure parameters for aqbanking
      • Svn ignore built files
      • Make the keychain interface in MacOSX compile and work.
      • Fix windows build
      • Add rules to copy the necessary icons during build.
      • Fix windows tag build script, by Geert Janssens
      • Revert r19159, "Fix windows tag build script, by Geert Janssens" I thought I would get access to the build server immediately to perform the cleanup of the old tag file, but apparently the server is unreachable for me for now, so I cannot commit this change today. Maybe later.
      • Fix windows tag build script, by Geert Janssens
      • One more revert of r19148, "Bug #615168: Remove instances of (use-modules (ice-9 slib))..." Missed that one in r19154.
      • Revert r19147, "Bug #615168: Remove spurious (require 'hash-table) instances..." Apparently guile-1.6 still needs all of those.
      • Partly revert r19148, "Bug #615168: Remove instances of (use-modules (ice-9 slib))..." Apparently guile-1.6 needs this in more places than I thought at r19148.
      • Add support for upcoming libaqbanking-5 version.
      • Follow-up to r19099: Remove qof's backend loading because there is no backend anymore. Remove generated file qofla-dir.h. This is actually good progress because it gets rid of yet another compiled-in path, which are a nuisance and need to be replaced by runtime path lookup everywhere, if needed.
      • Remove qsf related code from windows installer script.
      • Rewrite assert_one_dir function to not crash on a native build machine
      • Improve the cross-compilation process. - improve create_cross_mingw.sh's integration in defaults.sh and install.sh - update README file
      • Remove some additional QSF references
      • Improve test_for_mingw - change test so that both tested programs must work, not only the exit code of the last one - make it cross-compile compatible
      • Improve assert_one_dir It now gives a different error message when no directory was found or when multiple directories were found
      • Remove QSF
      • Remove forgotten debug statement
      • Add ./ to sourced files, so that they are found when cross-compiling.
      • Add (optional) destination file name parameter to wget_unpacked and smart_wget functions. This parameter can be used to override the filename to be used for the downloaded package. If empty, the functions continue to work as before. This new option will be used for cross compilation.
      • Windows build script improvements - make sure pexports is available before guile is built - test for pexports availability when compiling libdbi (to fix crosscompilation)
      • Fix some typos
      • Add .log extension to qof_log filename while creating the temporary file. This will only be visible on Windows. On all other platforms the logfile is successfully renamed to the requested name.
      • Add missing libmysql.def to tarball
      • Enable environment file on Windows (only direct install, not via ISS installer)
      • Write makefile rule to create gnucash-icon.ico. This rule isn't called by default though. It uses image-magick to add several png images of different size and bitdepth together. Current ico has: 16x16,8-bit 22x22,8-bit 24x24,8-bit 32x32,32-bit 48x48,32-bit 64x64,32-bit 96x96,32-bit 128x128,32-bit 256x256,32-bit
      • Remove redundant test for ENOSYS The error code was checked twice against ENOSYS, once in all situations, and once if ENOSYS is defined. This makes no sense. Since we never had bug reports for compilation errors on ENOSYS undefined, we can assume ENOSYS is always defined.
      • Replace directory mv's with cp -r when the move potentially crosses filesystem borders. Apparently, Msys' mv command fails to move directories across filesystem borders (like from a directory on the c drive to a mounted samba share). I hit this issue because my tmp dir is on a different filesystem from my base dir.
      • Enable keychain functionality on OS X after fixing compiler bugs.
      • * Make sure wget downloads are stored with filenames not containing any html garbage (& and = signs as a result of http_get parameters). * Have wget_unpacked return the actual path where the files were unpacked via the _EXTRACT_UDIR env variable. In most cases this is simply the path that was requested, but sometimes, a tarball or zip file adds its own relative path. The _EXTRACT_UDIR variable will take this into account by analysing the contents of the tarball/zip file. These changes will be used in the revived cross-compile script.
      • Makefile fixes for setup-gnucash-env on OS X

      Caveats for Testers

      Any 2.3.x version might crash unexpectedly at any point during runtime. If you test some serious work in a 2.3.x release and are using the XML file backend for data storage, make sure you hit "Save" after every non-trivial workstep. If you are using the SQL backend, this is not required as every change is saved immediately to the database.

      The documentation has had screenshots updated, however, many help texts usually only refers to the 1.8.x series. Everyone is invited to help improve the documentation; see http://wiki.gnucash.org/wiki/Development on how to get involved.

      How can you help?

      Testing: Test it and help us discover all bugs that might show up in there. Please enter each and every bug into bugzilla.

      Translating: The new release comes with some new translation strings. If you consider contributing a translation, we invite you to test this release already. A string freeze will be announced in one of the later 2.3.x releases. Please check http://wiki.gnucash.org/wiki/Translation_Status for updates on this.

      We would like to encourage people to test this and any further releases as much as possible and submit bug reports in order that we can polish GnuCash to be as stable as possible for the 2.4.0 release in a few weeks. Then post any bugs you find to bugzilla

      Getting GnuCash

      Source code for GnuCash 2.3.13 can be downloaded from multiple locations:

      • The GnuCash website
      • Sourceforge: bzip2, gzip, all files.
      • You can also checkout the sources directly from the subversion repository with this command:

        svn co http://svn.gnucash.org/repo/gnucash/trunk gnucash

      To install GnuCash, you will need Gnome 2, guile, slib. In addition you will need swig if compiling from subversion.

      Win32 binary

      The Gnucash 2.3.13 Win32 setup executable can be downloaded from Sourceforge as well.

      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, Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

    GnuCash 2.3.12 (Unstable) released

    The GnuCash development team proudly announces GnuCash 2.3.12, the thirteenth of several unstable 2.3.x releases of the GnuCash Free Accounting Software which will eventually lead to the stable version 2.4.0. With this new release series, GnuCash can use an SQL database using SQLite3, MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft Windows and Mac OSX.

    WARNING: This is an *UNSTABLE* version of Gnucash.

    This release is intended for developers and testers who want to help tracking down all those bugs that are still in there.

    Make sure you make backups of any files used in testing versions of GnuCash in the 2.3.x series. Although the developers go to great lengths to ensure that no data will be lost we cannot guarantee that your data will not be affected if for some reason GnuCash crashes in testing these releases.

    NOTE: The latest stable version is 2.2.9.

    PLEASE TEST TEST AND TEST SOME MORE any and all features important to you. Then post any bugs you find to bugzilla

    Major changes in the 2.3.x release include

    • In addition to the XML backend, Gnucash can now use a SQLite3, MySQL or PostgreSQL database to store the data. This is a new implementation using libdbi. It supports all features including the business features. In order to build with this, add --enable-dbi to the configure command. In addition to the libdbi-dev package for your distribution, you will also need the appropriate DBD (libdbi driver) package for sqlite3, mysql or postgresql.
    • As a replacement for the current GtkHTML HTML engine used to display reports and graphs, Gnucash can use WebKit. WebKit is the engine used by Google Chrome on Windows and Safari on Apple. In order to build with this, add --enable-webkit to the configure command. You will need an appropriate webkit-dev package. On win32, you will need to download the webkit-1.1.5-win32.zip file from the source repository and put it into the downloads directory of your gnucash build area.
    • Updated to AqBanking 3 on Win32.

    Strings are frozen. This means no new changes will be introduced which change any text displayed by Gnucash. Therefore, final translations for 2.4.0 release may begin.

    Changes between 2.3.11 and 2.3.12 include:

    Bugs fixed

    • Fix #588816 - Heading Banner Image does not display or print on invoice reports Along with a new version of webkit which properly handles local image files, a change was needed so that instead of creating an html string and feeding it directly to webkit, it is exported to a temp file which is then loaded as a file:// URI. On Linux, if this is not done, any embedded images do not appear, and there is a console message that local resources can't be loaded. On Windows, the embedded images don't appear, possibly for the same reason, but I'm not sure where the console messages go.
    • Bug #525821 - new or edited account names should be checked for reserved chars like ":" Addendum: Fix compatibility with older Gtk versions.
    • Bug #525821 - new or edited account names should be checked for reserved chars like ":" This patch checks if the separator character is used in account names when loading a data file, or when changing the separator character in the preferences. If the separator character is incompatible with some account names, a warning dialog box is popped up explaining the situation. This dialog also lists the violating account names. Additionally, the preferences dialog will show a warning sign as long as the separator clashes with some account names. The tooltip for this sign will also display the violating account names.
    • Bug #613963 - GnuCash opens empty window when no state file is found
    • Bug #612566 - Build failure with glib 2.10 - undefined gdk_color_to_string - part 2 Create the necessary HAVE_GTK_2_12 check in configure.in
    • Bug #612566 - Build failure with glib 2.10 - undefined gdk_color_to_string From modified patch by Bob
    • Bug #605802 - Can't input Japanese characters at an account register window on windows with SCIM, IIIMF and XIM This patch by Yasuaki Taniguchi fixes the business register.
    • Bug #613655 - Cannot load MYsql data, fix invalid state file name
    • Fix #613574 - Cannot create/save new employees using MySQL backend Wrong gobject property name used when creating "username" property - sql backend couldn't read it.
    • Fix bug #613375 Odd that this affected only OSX, as the fix is clearly consistent with the GtkLabel "ellipsize" property documentation. (I.e., the packing "expand" property must be TRUE on notebook labels.)
    • Bug #610675: Re-apply r18918, and now with the account color.
    • Bug #610675: Re-apply r18918, but only the tooltip fixing.
    • Bug #610675: Re-apply r18918 but with the relevant event_box not visible on Windows. This patch contains only the changed widget order (no color yet).
    • Make sure we include glade headers (#613326)

    Updated translations or translation-related changes

    • Update Japanese names of accounts. And remove empty ja_JP.EUC directory. Patch by Yasuaki Taniguchi.
    • Update of Brazilian Portuguese translation by Miguel Rozsas
    • Updated Dutch translation, copied from the Translation Project.
    • Update German translation.
    • Updated Danish translation, copied from the Translation Project.
    • Merge po templates with latest string changes (mostly the removal of taxtxf.scm from translation)
    • I18n: Remove strings of the US tax report from translation because this report makes sense only in English.
    • I18n: Mark forgotten string for translation. Pointed out by Yasuaki Taniguch.
    • Updated Japanese translation, copied from the Translation Project.

    Other user-visible changes

    • Enable the use of gnome-keyring during loading and saving of data. - The database passwords will no longer be stored in history - During save as, the user-entered password will be stored in gnome-keyring - During open, the user-entered password will be stored in gnome-keyring - When a file is opened from history (no file specified at startup or user selects an entry in the File menu's history) the password is fetched from the gnome-keyring. This currently works on linux. On Mac OS X or Windows no passwords are stored and the user is asked for a password when a file is loaded from history. Adding keyring/keychain capability on these systems is tbd.
    • When printing WebKit based reports respect the Page Setup settings. If webkit_web_frame_print_full exists in the version of WebKit being used then use it with a GtkPrintOperation which has been initialized from the Page Setup data.
    • Make the calculations more nearly the same as the older balance sheet report Calculate retained earnings or loss from income and expense accounts and label the amount needed to balance the books as the imbalance amount instead of retained earnings or loss.
    • Update eguile based balance sheet report to work with current GnuCash.
    • Add the eguile based balance sheet report. This version is directly from the wiki at <http://wiki.gnucash.org/wiki/Custom_Reports_Using_Eguile> and won't work in the current version of GnuCash. It is included for reference purposes.
    • Can't add or update currencies in 2.3.11 Reported by Markus Scheffler on Apr 2 via gnucash-user ML
    • Open/Save As...: configure enter/double click to run the default action.

    Other code/build changes

    • Add functions to compare 2 business objects for equality, and use them in 'make check' tests. Adds functions to compare 2 business objects for equality. The 'make check' tests can then use these functions to store and reload objects and compare them for equality. This allows the sql backend to be tested.
    • Check for webkit_web_view_load_uri() function, and if not available, fall back to webkit_web_view_load_html_string(). This change also changes the config #define name from HAVE_WEBKIT_PRINT_FULL to HAVE_WEBKIT_WEB_FRAME_PRINT_FULL to be a bit more descriptive.
    • Change default from --disable-dbi to --enable-dbi. This is needed so that 'make distcheck' will work with the business sql backend tests.
    • Disable transaction log in backend test so that there aren't log files left lying around to make 'distcheck' fail.
    • Add .h files to EXTRA_DIST to ensure they are put into tarball
    • Fix test dependencies
    • Ensure necessary .h files are included in EXTRA_DIST
    • Remove reference to GNC_TEST_SRFI_LOAD_CMD since we no longer support local srfi's.
    • Assume webkit functions exist on win32
    • Small corrections in the comments of gnc-commodity.h 1 typo 1 moved file 1 complement Patch by Frank H. Ellenberger
    • When updating book counters for business objects (in book slots), ensure they're saved.
    • Allow QTDIR to be defined either in pure windows format (c:\xyz\def) or unix format (/c/xyz/def) without ISS bailing out. Previously, only unix format worked.
    • pexports is only available if MSVC is installed. Encapsulate it in a conditional.
    • Move one more MSVC-only line inside the MSVC test
    • Fix gnucash-gdb.in to use gdb from the right place
    • Change the iso-4217 generator script to accept the srcdir as cmdline argument instead of an env variable.
    • Insert missing "format:" - otherwise it didn't build for me. Additional simplifying git expressions. Patch by Frank H. Ellenberger
    • Remove unneeded path conversion on Windows
    • Add note about required Qt for dist.sh + some typo fixes
    • Fix crash when trying to unset a parameter via the environment config file
    • Fix Windows build after introduction of the environment config file.
    • Revive gnucash-setup-env on OSX/Quartz. This fixes the OSX issues caused by the introduction of the environment config file.
    • Fix MacOSX keyring test in configure to work and make gnc-keyring.c compile if it does.
    • Initialize new_val in environment_override to avoid a compiler warning.
    • G_PATH_SEPARATOR is not used in the environment config file. Remove it from the make script.
    • Make sure only the quartz build uses environment-osx.in
    • Remove local srfi's and require guile 1.6.7 or better. All now supported versions of guile come bundled with these srfi's, so there's no need to keep our own copies.
    • Have the gnucash binary setup its required environment by itself - New "environment" config file that holds the environment modifications to make - Added a parser for this file that does the actual modification of the environment (in gnucash-bin.c) - Eliminate the old gnucash-setup-env script
    • Configure: fix password store test
    • Upgrade win32 version of webkit from 1.1.5 to 1.1.90. This version contains changes required to fix #588816 (Heading Banner Image does not display or print on invoice reports). Note that this bug won't be fixed until some gnucash changes are checked in as well.
    • Configure: group platform dependent tests
    • Fix missing printf format string
    • Fix indentation with astyle The indentation was mixed up due to the unusual IF_TYPE macro, now removed.
    • Replace IF_TYPE macro with a validation function The macro is quite ugly: it's not a complete if condition (missing closing bracket) which makes the code using it difficult to read and error-prone. Even astyle got confused by it. The replacement code is slightly longer (two lines per replaced IF_TYPE invocation) but clean and readable.
    • Remove redundant page tab setting code. The tab is set again some time later in the gnc_main_window_connect function.
    • Add svn:ignore properties
    • Code cleanup in binreloc: Remove unused init_lib function. Add possibility to set the looked-up exe path from somewhere else. Remove symbol mangling because r18940 already added the gnc_* prefix, hence the symbol names are unique to gnucash anyway.
    • Re-indentation of source code (sql parts). This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix
    • Re-indentation of source code. This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
    • Rename the type GUID into GncGUID because on Windows, the system headers have a type GUID which clashes with ours. Note that only the type was renamed, but not any enums or function names. Hence, the scheme wrappers should be unchanged completely (hopefully). Discussed at http://lists.gnucash.org/pipermail/gnucash-devel/2010-March/027679.html
    • Add business backend sql test infrastructure. At this point, the test creates a customer, saves it to an sqlite3 db, loads it and compares the original and the loaded customer. Will be expanded to test other business objects.
    • Add deep comparison routines for test purposes 1) Add routine gncCustomerEqual() which will do a deep comparison between two customers 2) Add routine gncAddressEqual() which will do a deep comparison between two addresses 3) Add more GncAddress gobject parameters for the remaining data items
    • Changes in dbi test infrastructure 1) Now that the various objects .c files can compare objects in different books, remove the duplicate copies. 2) Create a .la so that the business sql test code can use some common test infrastructure.
    • Extend xaccXXXXXEqual() routines so that they can compare objects in different books to see if they have the same contents.
    • Set some more line-ending style properties.
    • Set the desired line-ending style to the correct value on the server side. Without the svn:eol-style property, SVN checkouts on windows tend to appear with varying line endings. The only possible way around this in svn is to set the expected line endings as svn properties.
    • Update dbi tests - more object types are now saved and loaded
    • Add new CPP macros which make it cleaner to have conditional compilation based on compiler/system and options selected during config Examples: #if COMPILER(MSVC) #if COMPILER(GCC) #if ENABLE(NLS) #if HAVE(PUTENV) This platform.h file includes config.h, so that doesn't need to be included any more. PLATFORM(X) is based on the definition of GNC_PLATFORM_X COMPILER(X) is based on the definition of GNC_COMPILER_X. At this point, only COMPILER(GCC), COMPILER(MSVC), COMPILER(MSVC7) and COMPILER(MINGW) are determined. HAVE(X) is based on HAVE_X from config.h ENABLE(X) is based on ENABLE_X from config.h USE(X) is based on GNC_USE_X from config.h Having these determinations at a central point makes it easier to add new platforms and easier to conditionally compile based on them.
    • Create splits->accounts sql index and tx->post_date index when creating new databases
    • Cleanup cruft and an error from r18945
    • Whitespace cleanup
    • Forgot to delete a diagnostic in 18941
    • Fixup binreloc, which wasn't working correctly on OSX Most changes are to rename the functions named gbr_* to gnc_gbr_*, so that our modified binreloc (to provide mac bundle support) doesn't collide with binreloc implementations in other libraries. (The instant case was in libenchant.) Also moved the IGE_MAC_CFLAGS and IGE_MAC_LIBS lines from engine/Makefile.am to core-utils/Makefile.am. This was missed when binreloc was moved. And last, there was a minor error in the original OSX binreloc patch: At line 68, #elif MAC_INTEGRATION should be (and now is) #elif defined MAC_INTEGRATION.
    • Add getter/setter for transaction posted-date as a GDate. In addition to the known timespec, the date is also stored as a kvp_value of TYPE_GDATE so that we know afterwards this date has really been set as a date.
    • Add a GDate kvp_value type including conversions from and to all sorts of thingys. Also, removed the default: switch clauses when handling a kvp_value so that the compiler will already complain about unhandled enum values.
    • Fix Windows installer doc to have perl >= 5.8 instead of 5.10

    Caveats for Testers

    Any 2.3.x version might crash unexpectedly at any point during runtime. If you test some serious work in a 2.3.x release and are using the XML file backend for data storage, make sure you hit "Save" after every non-trivial workstep. If you are using the SQL backend, this is not required as every change is saved immediately to the database.

    The documentation has had screenshots updated, however, many help texts usually only refers to the 1.8.x series. Everyone is invited to help improve the documentation; see http://wiki.gnucash.org/wiki/Development on how to get involved.

    How can you help?

    Testing: Test it and help us discover all bugs that might show up in there. Please enter each and every bug into bugzilla.

    Translating: The new release comes with some new translation strings. If you consider contributing a translation, we invite you to test this release already. A string freeze will be announced in one of the later 2.3.x releases. Please check http://wiki.gnucash.org/wiki/Translation_Status for updates on this.

    We would like to encourage people to test this and any further releases as much as possible and submit bug reports in order that we can polish GnuCash to be as stable as possible for the 2.4.0 release in a few weeks. Then post any bugs you find to bugzilla

    Getting GnuCash

    Source code for GnuCash 2.3.12 can be downloaded from multiple locations:

    • The GnuCash website
    • Sourceforge: bzip2, gzip, all files.
    • You can also checkout the sources directly from the subversion repository with this command:

      svn co http://svn.gnucash.org/repo/gnucash/trunk gnucash

    To install GnuCash, you will need Gnome 2, guile, slib. In addition you will need swig if compiling from subversion.

    Win32 binary

    The Gnucash 2.3.12 Win32 setup executable can be downloaded from Sourceforge as well.

    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, Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

    GnuCash 2.3.11 (Unstable) released

    The GnuCash development team proudly announces GnuCash 2.3.11, the twelfth of several unstable 2.3.x releases of the GnuCash Free Accounting Software which will eventually lead to the stable version 2.4.0. With this new release series, GnuCash can use an SQL database using SQLite3, MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft Windows and Mac OSX.

    WARNING: This is an *UNSTABLE* version of Gnucash.

    This release is intended for developers and testers who want to help tracking down all those bugs that are still in there.

    Make sure you make backups of any files used in testing versions of GnuCash in the 2.3.x series. Although the developers go to great lengths to ensure that no data will be lost we cannot guarantee that your data will not be affected if for some reason GnuCash crashes in testing these releases.

    NOTE: The latest stable version is 2.2.9.

    PLEASE TEST TEST AND TEST SOME MORE any and all features important to you. Then post any bugs you find to bugzilla

    Major changes in the 2.3.x release include;

    • In addition to the XML backend, Gnucash can now use a SQLite3, MySQL or PostgreSQL database to store the data. This is a new implementation using libdbi. It supports all features including the business features. In order to build with this, add --enable-dbi to the configure command. In addition to the libdbi-dev package for your distribution, you will also need the appropriate DBD (libdbi driver) package for sqlite3, mysql or postgresql.
    • As a replacement for the current GtkHTML HTML engine used to display reports and graphs, Gnucash can use WebKit. WebKit is the engine used by Google Chrome on Windows and Safari on Apple. In order to build with this, add --enable-webkit to the configure command. You will need an appropriate webkit-dev package. On win32, you will need to download the webkit-1.1.5-win32.zip file from the source repository and put it into the downloads directory of your gnucash build area.
    • Updated to AqBanking 3 on Win32.

    Changes between 2.3.10 and 2.3.11 include:

    • Bugs fixed
      • Partial fix for #611014 - CSV import crashes Bug #611014 mentions a problem where after setting the columns, clicking OK and selecting a target account, the Date column is lost. This is because of a difference in behaviour on windows and linux. The code attaches to the "edited" signal of the renderer. On linux, this signal is emitted when a new combo box item is selected. On windows, the combo box needs to be selected and focus lost before the signal is emitted. This is changed to the "changed" signal of the renderer which acts as expected on both platforms.
      • Bug #140400 - Crash when deleting an account that is still in use by the business features Add a dialog which contains a list of objects referring to the account and an explanation that these need to be deleted or have the account reference modified. Note: I'm no UI designer. This is functional, but if anybody wants to pretty it up, go ahead.
      • Bug #536108 - After cancelling "save as", user is not prompted 2nd time
      • Bug #507351 Terms not defined prior to use This commit changes the text in the accounts druid to explain what a placeholder account is, together with some additional improvements in the wording of that page. Since this increases the amount of text, the width of the label has been modified as well.
      • Fix Bug 590570 - When deleting more than one report in sequence the program crashes Delete the custom report backup file before renaming the current custom report file.
      • Fix Bug 611346 - Crash in Saved Reports dialog if you select Delete button with no report selected Test for no report selected before trying to use the selected report guid.
      • Bug #364358 - Import dialog unreadable with dark colored gtk theme (with solution)
      • Bug #525821 new or edited account names should be checked for reserved chars like ":"
      • Bug #610675 Register Tabs Do Not Display Since Nightly Build r18685 Apply Bob's patch after fixing the whitespace. This patch may cause issues on Windows (a previous version of the patch did). If the next Windows nightly build exhibits the missing register tab names again, it will have to be reverted again and improved upon.
      • Bug #611645 gnc-svnversion returns "too long" a string for git users, patch by Jeff Kletsky
      • Bug#325436 creating income account for invoice doesn't restrict account type
      • Fix Bug 611810 - GC crashes when I click on File -> Properties SCM files still refered to gnc-book-get-slots which had been removed. gnc-book-get-slots was replaced everywhere by qof-book-get-slots.
      • Fix bug 611885 - Crash when opening postgresql file Previous work setting Timespec values via gobject properties missed the case where the timespec loaded from the database was NULL.
      • Bug #611140: Fix crash on Open Subaccounts (hopefully).
      • Bug #610321 - Compile errors with gtk-2.10.4: GTK_BUTTONBOX_CENTER undeclared This commit applies a reworked version of the patch to remove the use of GHashTableIter by Cristian Klein. Cristian's patch didn't apply cleanly to the current trunk. I have made the necessary changes to make it apply (and hopefully do what Cristian intended).
      • Bug #611470 Add Japanese concepts guide into GnuCash installer, patch by Yasuaki Taniguchi
      • Bug 605802: Can't input Japanese characters at an account register window on windows with SCIM, IIIMF and XIM Latest patch by Yasuaki Taniguchi to fix two problems 1) Can't use account separator char when entering account name in a split, and 2) Can't use <SHIFT>+ and <SHIFT>- to go forward/backward a week.
      • Fix bug 591177: Printer font is too small to read with webkit as html renderer. From comment 23: "The PDF in comment 2 is about 8 times smaller than it should be. One possible cause of this bug is if gtk_print_operation_set_unit (op, GTK_UNIT_POINTS) is not called. gtkprint defaults to GTK_UNIT_PIXEL - a useless unit to be using with printers. On Linux GTK_UNIT_PIXEL units are 1 unit = 1/72 inch (the same as GTK_UNIT_POINTS as well as PostScript and PDF units). On Windows GTK_UNIT_PIXEL units are the GDI device units which for printers is the dpi resolution. So for a 600dpi printer 1 unit is 1/600". If the application was developed on Linux and assumes the default gtkprint units are always 1/72" inch the output on Windows using a 600dpi printer will be 72/600 = 0.12 of the size (or approximately 1/8 of the size)." Solution was to use webkit_web_frame_print_full() which allows us to provide our own GtkPrintOperation object with units set to GTK_UNIT_POINTS. Tested on both Linux and Windows.
      • Bug #610675: Revert the gnc-main-window parts of r18637 because it makes the tab names disappear under Windows. This disables the enhancement of bug#608329 again, but the disappearing of the tab names is a rather major bug. Note that we either need to fix the enhancement again, or revert the rest of r18637 as well so that the account properties don't show the color chooser without any effects.
      • Bug #605802: Fix input of Japanese characters in register with SCIM, IIIMF and XIM Patch by Yasuaki Taniguchi. Revised and extended version of r18638. The main functions are as follows: (1) synchronization of preedit string between the register window and sheet->entry, (2) application to pango attributes to preedit string in the register window, (3) include scroll offset patch (id=153514), (4) include preedit string rollback patch (id=153518), (5) fix formula and account cells input problem which Christian pointed out, (6) surpress quick-fill when preedit string exists, (7) fix Windows IME problem. (8) Fix quick-fill problem.
      • Redo of the dot-gnucash fix (so that GNC_DOT_DIR actually works) fixing bug 610707, adding Doxygen comments for all functions in gnc-filepath-utils, and adding testing for xaccResolveURI and more tests for xaccResolveFilePath.
      • Revert r18713 (reopen 605802 "Input of Japanese characters". This commit had 2 problems: 1) when entering an account name, the account separator would no longer accept at the current level of the account tree and move to the next level 2) <SHIFT>+ and <SHIFT>- in a date field would not change the field by 1 week.
      • Bug #610348: Add compiling our own binary of libbonoboui because the ftp.gnome.org binary still depends on the obsolete libxml2.dll. However, we still download the erroneous binary and unpack it into $GNOME_DIR because libgnomeui depends on libbonoboui which in turn depends on libgnome. Hence, libbonoboui cannot be compiled before libgnome-dev is unpacked, but libgnomeui won't report to be installed correctly before libbonoboui is available as well. Theoretically, we would have to split the inst_gnome step so that it first unpacks libgnome et al., then we run the inst_libbonoboui step, then we run the second part of inst_gnome which would be something like inst_gnomeui. I'm lazy, so I silently overwrite the libbonoboui DLL with our hand-compiled version and that's it.
      • Bug #608032 - MySQL timeout and no attempt reconnect, second version This version builds on Phil's implementation of the dbi error callback functions to test for a timeout and to do the reconnect. The same error handling is equally implemented for postgres and sqlite. Unlike MySQL these two database types don't actually generate timeouts, but the functionality can be used later on for other error types as well.
      • Bug #610051 - Crash when using GktHtml whenever a report is opened
      • Bug #610348 missing dependencies in windows build Update gnome-vfs to 2.24.1 Note that this means Windows 2000 is no longer supported.
      • Partial fix for bug #610321 Compile errors with gtk-2.10.4: GTK_BUTTONBOX_CENTER undeclared GTK_BUTTONBOX_CENTER is replaced with GTK_BUTTONBOX_START
      • Fix bug #564380 additionally for easy invoice and fancy invoice. Patch by Mike Evans.
      • Bug #610047 - Dutch accounts template doesn't work Add missing closing brackets
      • Bug #609044: Improve UI strings for tax report options Patch by Frank H. Ellenberger: As we currently have a nice US income and a partial german VAT tax report, I feel uncomfortable with the change of r18413, which renamed Edit->Tax options to Income Tax options. So here is another approach, to clarify the tax report and business tax menu points.
      • Bug #609043: Improve (mostly german) translation of txf Patch by Frank H. Ellenberger: This patch is a first extract of so an approach, which I have here, which will probably lead to a german income tax declaration ESt-A1. But this extract is more general and based on r18413 changes. Changes: 1. Header Comments: adding Contributors 2. Most strings in de_DE translated to german.
      • Bug #608032: Handle MySQL connection timeouts with reconnect Patch by Tom van Braeckel: For the full discussion, see the mailing list: https://lists.gnucash.org/pipermail/gnucash-devel/2010-February/027323.html Rationale: When we try to open a database transaction, and the database reports that the "server has gone away", we try to reconnect before failing hard.
      • Bug #609005: Add recipient name on invoices Patch by Mike E: Having set up a client/customer including the name of a recipient when I print an invoice the recipients name ("Account Dept" say) is not printed in the invoice. I think this is a bug rather than a feature. I have attached a patch to fix. It still prints the company name above the recipient name however. I could submit an additional patch to provide an invoice option to toggle printing of the company name if users/developers feel they want this option, as I do.
      • Bug #609603: Windows packing/win32/install.sh PATH fix Patch by Yasuaki Taniguchi: When I run /c/soft/gnucash/inst/bin/gnucash or gnucash.cmd after I finish building win32 binary, DLL missing dialog boxes pop up. Missing DLLs are - libgcrypto.dll, - libPQ.dll, - mysql.dll, and - ssleay32.dll. This patch add search path to them to fix this problem.
      • Bug #564380 Payment on bills doubles bill Patch by Mike Evans
    • Updated translations or translation-related changes
      • Updated Japanese translation, copied from the Translation Project.
      • Updated Persian (Farsi) translation by Mehdi Alidoost.
      • Add dutch translation to the Windows installer.
      • Updated Slovak translation, copied from the Translation Project.
      • Updated Dutch translation, copied from the Translation Project.
      • Update German translation.
      • Add implementation of Gregorian - Jalali converter code. Copied from http://www.farsiweb.ir/wiki/Iranian_calendar
    • Other user-visible changes
      • Change file loading message to "Loading user data..." Reading file is technically only correct for files not for databases.
      • Display the SX variables in the "Since Last Run..." dialog in ASCII order rather than ordering by hashvalue (i.e. no order at all) as was done previously. Patch by Jesse Weinstein.
      • Add bzr support to gnc-svnversion. Patch by Jesse Weinstein
      • Fix crash on opening the tax report, introduced by r18673. Patch by Alex Aycinena.
      • Revert r18881/18884/18885 (bug #610675 - Register Tabs Do Not Display Since Nightly Build r18685)
      • Fix missing color in qif-import account copy, patch by Tom Van Braeckel
      • Replace Income Tax Options with Tax Report Options. Patch by J. Alex Aycinena.
      • Patch my patch in r18884. Spotted by Herbert Thoma.
      • Regression fix: patch for colored tabs segfault in trunk, patch by Tom Van Braeckel
    • Other code/build changes
      • Remove test-load-module from tests
      • Fix Makefile.am handling of gncla-dir.h so that it will be removed so that 'make distcheck' will pass
      • Fix guint32 vs gint32 in gnc-uri-utils test.
      • Update POTFILES.in based on new source files
      • Complete unit tests for gnc-uri-utils api and fix bug found by running the tests.
      • More doxygen.log-prompted typo fixes, patch by Jesse Weinstein
      • Fix typo in previous commit
      • Add first test for the gnc-uri-utils api. This test verifies gnc_uri_get_components.
      • Implement the object reference infrastructure routines to allow a list of business objects referring to a specific other object (e.g. an account) to be determined. This will help fix bug 140400 because the account delete code can now determine a list of business (or other) objects which have references to that account, and prevent the account from being deleted while references still exist.
      • Add some new gobject-related infrastructure so that when deleting an object, it can be determined if there are other objects with references to that object (bug 140400). Some routines are normal routines, and some routines use the gobject structure to allow different implementations by different object types. Per-instance routine: gboolean qof_instance_refers_to_object(QofInstance* A, QofInstance* B) - returns TRUE/FALSE whether object A contains a reference to object B. Normal routine: GList* qof_instance_get_referring_object_list_from_collection(QofCollection* c, QofInstance* B) - Calls qof_instance_refers_to_object() for each object in the collection, and returns a list of the objects which contain a reference to B. Per-instance routine: GList* qof_instance_get_typed_referring_object_list(QofInstance* A, QofInstance* B) - returns a list of all objects of the same type as A which contain a reference to B. Being per-instance allows an object to use knowledge to avoid scanning cases where there are no references (e.g. billterms do not contain references to splits), or a scan is not needed (references from splits to an account can be determined using xaccAccountGetSplitList()). This routine can do a scan by calling qof_instnace_get_referring_object_list_from_collection(). Normal routine: qof_instance_get_referring_object_list(QofInstance* A) - For all collections in the book, gets an instance and calls its qof_instance_get_typed_referring_object_list() routine, concatenating all of the returned lists. This is the routine that external code can call to get a list of all objects with references to an object A. The list must be freed by the caller but the contents must not. Per-instance routine: gchar* qof_instance_get_display_name(QofInstance* A) - returns a string which can identify object A to the user. This could be used to display a list of the objects returned by qof_instance_get_referring_object_list() ("Invoice 0004 for customer C") so that the user can modify those objects to remove the references. Note that this is going to require internationalization, which has not been implemented yet. If not overridden by the object class, the default string is "Object <type> <address>" e.g. "Object gncCustomer 0x12345678".
      • Add event registration and handling from the qof_event_handlers. This way, the split view is updated correctly even on undo/redo.
      • Revert r18869, "Move gnc-ui-util.[hc] and gnc-euro.[hc] from app-utils to engine" Those files indeed belong better into app-utils; the app-utils defines several not-yet-GUI parts of gnucash, like many conversions from and to strings (more than those in these two files), so these files are well suited in here.
      • MSVC compatiblity: Fix include files in MSVC. Replace QSTRCMP by g_strcmp0 on MSVC.
      • Improve non-gnome UI compatiblity: app-utils can compile without gtk as well.
      • Add src/calculation and src/app-utils to cmake build system. app-utils is needed for the conversion from and to string for gnc_numeric, date, and other values.
      • Fix failing core-utils tests I simply removed the obsolete test cases. More work is still needed to add new valid tests.
      • Remove some unused variables.
      • Win32/MSVC compatiblity - Replace trunc() by floor() - Provide a round() workaround implementation for MSVC - Use g_strcasecmp instead of the libc one - Add include for libc replacements
      • Some more const-correctness in engine functions.
      • Update POTFILES.in for the moved dialog-userpass.c and the newely added gnc-jalali.c
      • Move gnc-ui-util.[hc] and gnc-euro.[hc] from app-utils to engine because they don't depend on gtk but are important additions for the engine types. In particular, the formatting of a gnc_numeric is defined there.
      • Fix circular dependency between gnome and gnome-utils introduced in r18842
      • MSVC compatiblity: snprintf is required to have a prefixing underscore. Also, more symbols of libguile/gc.h need explicit declspec on MSVC.
      • Add variant of gnc_engine_init which is suitable for statically the linked-in library.
      • Only use long long format specifiers if available - avoids error message when compiler thinks they're not available.
      • Fix parent/child relationships in billterms in case the parent hasn't been loaded yet. Remove child column from billterm table because it duplicates info in the parent column and just complicates loading objects.
      • Fix parent/child links for tax tables. If a tax table's parent table has not been loaded yet, remember the relationship, and after all tables have been loaded, fix up the rest of the parent/child links.
      • Handle NULL string pointer as a NULL guid
      • Add a mechanism so that the business sql backend module can provide the main sql backend with the order in which objects should be loaded. This will allow billterms and taxtables to be loaded before objects which contain references to those objects.
      • MSVC compatiblity: Replace QOF_BOOK_LOOKUP_ENTITY macro by a RETURN_ENTITY macro and add inline functions for lookup. MSVC doesn't accept the syntax with an inlined block, x = ({ foo; bar; value;}). Hence, this is being replaced by actual function definitions, and the body of those functions is defined by the new macro.
      • Delete unused variables.
      • Use a normalized uri format internally to refer to data stores. Data stores for GC can be a file (xml or sqlite3) or a database one some server (mysql or postgres). Wherever it makes sense internally, data stores will be referred to via a normalized uri: protocol://user:password@host:port/path Depending on the context and story type some of these parts are optional or unused. To achieve this, a new utility interface has been setup: gnc_uri_<xxx>_<yyy> that can be used to manipulate the uris or convert from non-normalized formats to normalized and back. For example, when the user selects a file in the Open or Save As dialog, gnc_uri_get_normalized_uri will convert the file into a normalized uri. Or when the actual filename is needed this can be extracted with gnc_uri_get_path. You can also test if a uri defines a file or something else with gnc_uri_is_file_uri. For the complete documentation, see src/core-utils/gnc-uri-uitls.h This commit installs gnc-uri-utils and modifies the source where it makes sense to use its convenience functions. This concerns all functions that had to deal with file access in some way or another, the history module and the functions that generate the history menu list and the window titles. Note that gnc-uri-utils replaces xaccResolveFilePath and xaccResolveUrl in all cases. xaccResolveUrl has been removed, because gnc-uri-utils fully replaces its functionality. xaccResolveFilePath is used internally in gnc-uri-utils to ensure an absolute path is always returned (in case of a file uri, not for db uris). But it has been renamed to gnc_resolve_file_path to be more consistent with the other functions. Lastly, this commit also adds a first implementation to work with a keyring to store and retrieve passwords, althoug
      • Make business backend initialization functions accessible when statically linking
      • MSVC compatibility: Disable "C99 designated initializers" by a compiler-dependent macro Same as r18755.
      • Make the backend initialization functions accessible when statically linking
      • Change the definition of QOF_STDOUT The old definition file: conflicts with normal uris that can start with file: as well. I have chosen > instead, which is never a valid filename and on unixlike systems associated with standard out operations.
      • Use proper qof CFLAGS/LDFLAGS since core-utils now uses qof
      • The webkit used on win32 has webkit_web_frame_print_full() defined in include files, so we don't need a potentially conflicting extern declaration.
      • If gmtime_r is defined as a macro, undef it
      • Add svn:ignore to src/core-utils/test
      • Remove invalid target (got copied from src/engine/test)
      • Build test-core before core-utils
      • Add the core-utils tests in the automake system
      • Move filepath related tests to core-utils/test
      • Undefine localtime_r as a macro (new mingw pthreads package defines it)
      • Add braces to make if-if-then-else structure clear and avoid GCC 4.4.0 error message
      • Remove gncmod-test from test-core It's not used and prevents test-core from being included in core-utils tests
      • Add missing NULL sentinel at end of g_strconcat() function call
      • Removed erroneously re-created src/engine/gnc-filepath-utils.c
      • Move binreloc library include
      • Note the moved files in POTFILES.in.
      • Remove C executable from cmake as it is no longer necessary.
      • Add missing link library after r18811.
      • Adapt cmake to the file move in r18811.
      • Add src/engine/test/test-resolve-url
      • Win32: Add download of cmake, disabled by default.
      • MSVC compatibility: strftime() doesn't know "%T" here. Also, g_fopen doesn't work, but fopen does.
      • Move gnc-filepath-utils and dependencies from engine to core-utils
      • Typo fixes, as found by doxygen.log, patch by Jesse Weinstein
      • Tweak to gnc-svnversion's bzr section, patch by Jesse Weinstein
      • Use "template-account" property to get/set template account.
      • Add "template-account" to schedxaction as a gobject property.
      • Simplify handling of sx template_acct column.
      • Rename GNCBook into QofBook everywhere and remove separate header gnc-book.h. The former was already #define'd on the latter, so its removal gets rid of one level of indirection which makes function lookup easier. Also, the macro (!) qof_book_get_slots was turned into a normal function again because that's what functions are for (and otherwise the additional declaration in engine.i would break).
      • Decrease compiler warnings by removing unused variables.
      • Reduce compiler warnings by replacing strerror() with g_strerror() and similar glib replacements.
      • Win32: Add more header includes where necessary to avoid using undeclared functions.
      • Comment out unimplemented function. Improve const-correctness.
      • Include gtk/gtk.h instead of gtk/gtkclist.h as recommended by Gtk
      • Fix make dist r18765 introduced test target test-resolve-url, but no source file test-resolve-url.c Removed the target.
      • Re-indentation of source code, next batch: src/gnome-utils/* This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
      • Re-indentation of source code, next batch: src/register/* This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
      • Re-indentation of source code, next batch: src/business/* This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
      • Re-indentation of source code, next batch: src/engine/* This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
      • Re-indentation of source code, next batch. This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
      • Replace and-let* in scheme script so that srfi-2 isn't needed.
      • Replace one more g_list_append by g_list_prepend.
      • MSVC compatibility: Somehow fdopen() doesn't work during the trace file initialization. Use fopen() instead.
      • Win32 build: libguile needs minor tweaking for MSVC compatibility.
      • MSVC compatibility: Fix r18748, r18761 by replacing strncasecmp() with strnicmp().
      • MSVC C++ compatibility: Rename the internal name of union _GUID because _GUID is a builtin keyword here. This does not concern the typedef name, only the internal union name, so it doesn't harm us.
      • C++ compatibility: namespace is a keyword, so don't use it as variable name.
      • C++ compatibility: export is a keyword, so don't use it as a member name.
      • Add support for passing a Timespec as a boxed GValue
      • Fix test makefiles. Many tests now need to include other libraries because files have changed directories.
      • Add more gobject property definitions to GNCPrice, Transaction, SchedXaction and Split.
      • Win32: Create the MSVC import library for libguile during install.sh.
      • Remove static current_session variable of libqof - we keep one in gnc-session.c already.
      • Doxygen improvements, patch by Jesse Weinstein
      • More changes where SQL backend uses gobject properties to load/save objects.
      • More conversion to read/write objects from sql backend using gobject parameters
      • Start to add properties to business objects. Currently only 1 property per object, but this infrastructure will allow more generic importing of objects.
      • Take advantage of the initial property definition for Transaction, Split, GNCPrice and SchedXaction by replacing custom access routines with gobject properties.
      • Add a few gobject properties to some engine object types. This adds more of the gobject infrastructure to Transaction, Split, SchedXaction and GNCPrice. Gobject properties provides a standardized interface to the engine objects which should allow standard and simplified read/write mechanisms. For the sql backend, for example, db columns can be mapped to properties. In a generalized csv importer, csv columns can be mapped to properties.
      • Partly revert r18748, "Win32 compatibility": lib/libc directory doesn't have glib available.
      • Add a "make indent" target, but watch out with using its result. The "astyle" indent tool unfortunately behaves significantly different in its different versions (1.22, 1.23, 1.24) even with identical options. That is, the basic indentation is the same, but in a large project such as ours, there are just too many special cases which astyle doesn't get identical due to its bugfixes and new features. Hence, please use the result of this target with great care, and if in doubt, just use it for your own amusement but don't commit the resulting changes. Thanks!
      • Fix up some doxygen comments
      • Don't include gnc-lot-p.h where not needed
      • Win32: Fix libbonoboui compiling.
      • MSVC compatibility: Microsoft doesn't have C99 "designated initializers". Those were introduced in r17724, bug#539957, but apparently this C99 is not supported by MSVC and won't be for some time to come. Hence, for MSVC we need the workaround to define a macro that will shadow the member names. However, the initialization itself works fine and non-MSVC code is unchanged, so I think we can live with that.
      • MSVC compatiblity: Struct initialization doesn't work as expected. Somehow, the struct initialization containing a gnc_numeric doesn't work. As an exception, we hand-initialize that member afterwards.
      • MSVC compatiblity: open() flags and S_ISDIR doesn't exist on MSVC.
      • MSVC compatiblity: Use a char* pointer for the memcpy() input argument. This is required by MSVC because we do some pointer arithmetic in the memcpy() argument, but in order to do this, MSVC wants to know the pointed-to type of the pointer because pointer arithmetic increases the pointer not by a number a bytes but a number of sizeof(type). MSVC thinks for void* it doesn't count bytes. We achieve the desired effect by using a char* pointer so that bytes are counted.
      • MSVC compatiblity: Add defines for functions/types which are available under different names in MSVC.
      • MSVC compatiblity: Array initialization in MSVC requires a constant, not a variable. That is, gcc accepts a constant variable in many cases now, but MSVC doesn't accept it. So it must be turned into an old preprocessor define.
      • MSVC compatibility: Remove forward declaration of static array by reordering the function that uses it.
      • Win32 compatibility: Use glib wrappers of non-usual POSIX functions.
      • More header include compatibility: Watch out for HAVE_UNISTD_H.
      • Re-indentation of source code, next batch. This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header --suffix=none
      • Convert GNCLot to use more gobject features. Removes all direct access to lot object fields, which are now accessed through functions or property names (for backend sql load).
      • Modify POTFILES.in to handle source files moved to a new directory
      • Also build backend/xml in cmake.
      • Reverted 18699
      • Clarify required steps to setup windows build environment. The mingw website has changed quite a lot since the README was written and some of the url's used in it were confusing. I have changed the url's to point to the actual packages on sourceforge (current at the time of this writing) and added some extra details where I had trouble understanding the actions to perform.
      • Doxygen fixes - Have this file show up under module "Utility Functions" - Normalize the function descriptions (some were not in doxygen format) - Add a global file description - rename parameter 'file' to 'filename' for better consistency (note this required an internal parameter to be renamed from filename to new_filename)
      • More minor MSVC code fixes. However, this code doesn't compile with MSVC9.0 for a few reasons: 1. libguile.h comes with its own scmconfig.h which contains HAVE_STDINT_H whereas MSVC doesn't have that. This is stupid guile which doesn't accept the fact that the user uses a different compiler than how they compiled guile. 2. Some initializations are not supported: Account.c:3312 etc. 3. The C99 "designated initializers" of e.g. Account.c:4661 ff. (r17724, bug#539957) are not supported by MSVC9.0 - this is the hardest problem of these all.
      • Make CMake system more complete so that it builds on win32/mingw. Also, add a test executable to check that we got all the library dependencies.
      • More CMake work: Build swig wrappers correctly. Build gnc-module.
      • Cosmetic: Remove duplicate include of gnc-engine.h
      • Remove trailing whitespace
      • Minor doxygen change and lots or trailing whitespace removed
      • Remove GNOME_PRINT_{CFLAGS,LIBS} from the Makefile templates
      • Spelling errors and trailing whitespace removal
      • Remove reference to gnome print in the comments GnuCash no longer uses gnome print. It has been replaced with gtk print.
      • Remove two more popt references in support files.
      • Remove popt requirement from configure GnuCash doesn't use it. At the same time, I removed a check that has been commented out since the beginning of the revision history (somewhere in 2007). This check tested for the presence of popt.h to then run some libtool changes. As I said this whole block has been commented out since the beginning of time, so I considered it to be obsolete, more even so now that the popt requirement has been removed.
      • Remove popt references - popt has been replaced with the GOption infrastructure. So there's no need to include the popt.h file. - Also rewritten the comment that was elaborating on popt vs GOption - Finally removed the loglevel option (which was excluded from the compile anyway) that still referred to popt.
      • Fix minor spelling errors
      • When creating lists of database objects, use g_list_prepend() rather than g_list_append(). There may be cases where the list order is significant and thus needs to be reversed, but that is not true in these cases. This provides a large improvement in database loading performance. Analysis and basis patch supplied by Donald Allen.
      • Update documentation references to Active Perl (5.8->5.10)
      • Remove redundant entries in EXTRA_DIST
      • More experimental cmake building. Except for the scheme wrappers this seems to work until at least the engine module. However, I didn't tackle the issue with the generated headers which contain some installation paths - but those we should get rid of anyway.
      • Move two gtk-dependent files from src/core-utils to src/gnome-utils. core-utils depends on glib and additionally guile and gconf, but not (yet) gtk. Those two files which do are moved to the next module which already depends on gtk, which is gnome-utils.
      • Add some experimental CMakeLists.txt which can compile the libqof part, on Linux, Windows/mingw and (no joke) Windows/MSVC. I'm interested in some tests with the cmake build system, but if it doesn't prove useful I will remove it again within a few weeks.
      • Make libqof compatible for MSVC9.0 compiler (no joke). The main change is that the syntax for variadic macros is slightly different in MSVC compared to gcc. But they exist, so offering the log macros in the different syntax is sufficient.
      • Make more header inclusions conditional on whether they exist.
      • Update .gitignore, proposed by Jeff Kletsky
      • Make sure file urls actually contain path information or are NULL
      • Remove redundant GLIB check.
      • Bump minimum required versions of gtk+, goffice and gtkhtml gtk+: 2.10 goffice: 0.5.1 gtkhtml: 3.14
      • Add a starter script for gnucash under ddd (a gui frontend for gdb)
      • Build fixes for EL5 after glib 2.12 requirement
      • Ensure that GNC_DOT_PATH and other gnc_dotgnucash_dir() logic is used for all cases, remove hard-coded references to /usr/etc, /usr/share, /usr/local/etc, and /usr/local/share while providing for xaccResolveFilePath to actually search the data and sysconfdir directories used in the build. (gnc_build_data_path): New function, just a copy of gnc_build_book_path. Needed for rewrite of xaccResolveFilePath. (xaccResolveFilePath): Cleaned out the hard-coded paths and weird file path contruction functions and rewrote the function to use gnc_path_get_foo and gnc_build_data_path without all of the silly indirection. Removed superfluous URI checks (which are correctly perfomed by xaccResolveURL()). (MakeHomeDir, xaccPathGenerator, xaccDataPathGenerator) (xaccUserPathGenerator): Deleted; their functionality is replaced as noted above. (check_file_return_if_true): Renamed check_file_return_if_valid, a more descriptive name.
      • Bump glib2 minimum requirement to 2.12. At the same time, remove all the conditional code and workarounds that were in the code to cater for glib < 2.12. Note: this commit will require a rerun of autogen.sh and configure.
      • README referred to a non-existent file So per a suggestion on IRC, I took the reference out. Patch by Jesse Weinstein.
      • Win32: Update libxslt version, but it needs its own copy of libxml2.dll. Apparently the gnome-provided libxml2 has the DLL filename libxml2-2.dll, but the binary from xmlsoft.org still has the filename libxml2.dll.
      • Win32: And one more dependency upgrade (causes missing libxml2.dll complaints otherwise)
      • More win32 dependency version updates.
      • Update libpng package dependency for win32 to 1.4.0
      • Small spelling fixes in the comments
      • Re-indentation of source code, next batch. This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.24 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper --pad-header Discussed at http://lists.gnucash.org/pipermail/gnucash-devel/2009-August/026121.html
      • Update gnome package versions.
      • GDate values weren't being properly fetched from objects to be saved in a database column if they were fetched as a gobject property.
      • Clean up account column in the lot table to specify that the guid is an account reference. Simplifies the code a bit, and makes future use of foreign keys easier.
      • If building for WIN32, use webkit_web_frame_print_full() so that a GtkPrintOperation object with the correct units can be used to prevent font size problems (see bug 591177). On other platforms, use webkit_web_frame_print() because some distros seem not to have webkit_web_frame_print_full() (and also don't have the font size problem so on those distros, we don't need to create our own GtkPrintOperation object).
    • Cutecash
    • Some of the GnuCash developers have decided to rewrite the UI for the cross-platform Qt toolkit from TrollTech. The goal is a simpler UI which is more powerful and easier to develop. This project has gotten the name "Cutecash". It uses the same back-ends and engine as gnucash. Only the UI is different. The source for the Cutecash UI is in the same tree (and therefore, the tarballs) as GnuCash, but at this point, no MAC or Win32 builds are being produced.
      • Cutecash: Add Commodity wrapper. Use gnc-exp-parser for numbers. - Allow amounts to be edited. - Let the date column be handled by the QDate delegate with a QDateEdit widget
      • Cutecash: Enable entering of more cells in register. Some code cleanup. Add class documentation.
      • Enable editing of the "Description" column in the split list view - WITH UNDO! The Qt Undo framework is almost like magic. We just have to create a command object instead of directly manipulating the value, and suddenly the undo/redo just works. This is fun!
      • Cutecash: Add QUndoStack to implement all editing through the Command pattern and make it undoable.
      • Cutecash: Enable closing and re-opening the different tab views. Also, change many main window slots to make use of the auto-connection feature because it makes the slot intention much easier to read. Also, note how we store the Tab position, title, isEnabled state in dynamically allocated properties in the Tab widget itself - this is a rather cool feature of QObject here (see reallyRemoveTab() and viewOrHideTab()).
      • Cutecash: Add Recent-File menu.
      • Cutecash: Enable tab moving and other UI features of Qt.
      • Cutecash: Add Timespec conversion to QDateTime. Add display of transaction date in register tabs.
      • Cutecash: Display account balance in tree and split amount in account register.
      • Cutecash: Add gnc::Numeric wrapper for gnc_numeric.
      • Implement a table widget with the list of the splits of one account, and open this if an account in the tree is double-clicked. Date and values/amounts can follow next, once those types are suitably wrapped into C++ as well.
      • Cutecash: Add progress bar during loading the file.
      • Implement the account list data model as a specialization of the account tree model. This is helpful in order to understand Qt's Model/View structure, so both (list and tree) are still available.
      • Cutecash: Fix guile version number query. Patch by Herbert Thoma.
      • Cutecash: Add a tree view of the accounts.
      • Cutecash: Fix CMakeLists for change in guile lookup, r18846
      • Cutecash: Remove QSharedPointer because manual delete is sufficient. Also, the QSharedPointer cannot be used for bookkeeping of a C pointer to any gnucash object because it refuses to work if it doesn't know the actual struct definition, which in gnucash is always private. The boost::shared_ptr would work without (by the custom deleter argument in the constructor), but QSharedPointer doesn't (the custom deleter is accepted only in addition to the known storage size, not alternatively), so it is pointless here.
      • Cutecash: Add version check for guile and define HAVE_GUILE18 if appropriate.
      • Adapt cutecash to r18842.
      • Cutecash: Fix extern "C" usage: Must not enclose system includes, supposedly.
      • Cutecash: Allow older glib versions as well.
      • Cutecash: Add business-core including business-core/xml into the executable.
      • Add copyright notices in cutecash source code files.
      • Cutecash: Copy some more icons into the program. Add a clickable hyperlink.
      • More C++/Qt4 frontend work.
      • Add example main window in C++ and Qt that links against gnucash-engine. The example was based on Qt4's "application" example, but the main window layout is done through the .ui file already.
      • Finish cmake build system for the C++ experiment. To build this: mkdir build-cpp cd build-cpp cmake .. make ./src/gnc/cutecash
      • C++ experiment: Extend the AccountModel into a table with name and description. Use QString everywhere as well.
      • C++ experiment: Add first simple model/view widget for the loaded account list.
      • Some more C++ work. Opening an existing file works, even though nothing is visible so far. The implementation of a scoped_ptr wrapper around a C object uses the boost library, though, because writing our own implementation of a scoped_ptr with custom deletion function is too non-trivial and I rather re-use the boost::shared_ptr here instead of making our own mistakes.

      Caveats for Testers

      Any 2.3.x version might crash unexpectedly at any point during runtime. If you test some serious work in a 2.3.x release and are using the XML file backend for data storage, make sure you hit "Save" after every non-trivial workstep. If you are using the SQL backend, this is not required as every change is saved immediately to the database.

      The documentation has had screenshots updated, however, many help texts usually only refers to the 1.8.x series. Everyone is invited to help improve the documentation; see http://wiki.gnucash.org/wiki/Development on how to get involved.

      How can you help?

      Testing: Test it and help us discover all bugs that might show up in there. Please enter each and every bug into bugzilla.

      Translating: The new release comes with some new translation strings. If you consider contributing a translation, we invite you to test this release already. A string freeze will be announced in one of the later 2.3.x releases. Please check http://wiki.gnucash.org/wiki/Translation_Status for updates on this.

      We would like to encourage people to test this and any further releases as much as possible and submit bug reports in order that we can polish GnuCash to be as stable as possible for the 2.4.0 release in a few weeks. Then post any bugs you find to bugzilla

      Getting GnuCash

      Source code for GnuCash 2.3.11 can be downloaded from multiple locations:

      • The GnuCash website
      • Sourceforge: bzip2, gzip, all files.
      • You can also checkout the sources directly from the subversion repository with this command:

        svn co http://svn.gnucash.org/repo/gnucash/trunk gnucash

      To install GnuCash, you will need Gnome 2, guile, slib. In addition you will need swig if compiling from subversion.

      Win32 binary

      The Gnucash 2.3.11 Win32 setup executable can be downloaded from Sourceforge as well.

      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, Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

    GnuCash 2.3.10 (Unstable) released

    The GnuCash development team proudly announces GnuCash 2.3.10, the tenth of several unstable 2.3.x releases of the GnuCash Free Accounting Software which will eventually lead to the stable version 2.4.0. With this new release series, GnuCash can use an SQL database using SQLite3, MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft Windows and Mac OSX.

    WARNING: This is an *UNSTABLE* version of Gnucash.

    This release is intended for developers and testers who want to help tracking down all those bugs that are still in there.

    Make sure you make backups of any files used in testing versions of GnuCash in the 2.3.x series. Although the developers go to great lengths to ensure that no data will be lost we cannot guarantee that your data will not be affected if for some reason GnuCash crashes in testing these releases.

    NOTE: The latest stable version is 2.2.9.

    PLEASE TEST TEST AND TEST SOME MORE any and all features important to you. Then post any bugs you find to bugzilla

    Major changes in the 2.3.x release include;

    • In addition to the XML backend, Gnucash can now use a SQLite3, MySQL or PostgreSQL database to store the data. This is a new implementation using libdbi. It supports all features including the business features. In order to build with this, add --enable-dbi to the configure command. In addition to the libdbi-dev package for your distribution, you will also need the appropriate DBD (libdbi driver) package for sqlite3, mysql or postgresql.
    • In addition to the current GtkHTML HTML engine used to display reports and graphs, Gnucash can use WebKit. WebKit is the engine used by Google Chrome on Windows and Safari on Apple. In order to build with this, add --enable-webkit to the configure command. You will need an appropriate webkit-dev package. On win32, you will need to download the webkit-1.1.5-win32.zip file from the source repository and put it into the downloads directory of your gnucash build area. Note that there are serious bugs when using webkit on win32, so it is advised that win32 builds continue to use gtkhtml
    • Updated to AqBanking 3 on Win32.

    Changes between 2.3.9 and 2.3.10 include:

    • Revert r18654. Current GtkHtml implementation crashes the windows build whenever a report is opened.
    • Better fix for segfault at startup caused by bug 608329's patch and a renamed Accounts tab. Patch by Tom Van Braeckel
    • Fix crash at startup on renamed Accounts tab, bug#608329. Patch by Tom Van Braeckel.

    Caveats for Testers

    Any 2.3.x version might crash unexpectedly at any point during runtime. If you test some serious work in a 2.3.x release and are using the XML file backend for data storage, make sure you hit "Save" after every non-trivial workstep. If you are using the SQL backend, this is not required as every change is saved immediately to the database.

    The documentation has had screenshots updated, however, many help texts usually only refers to the 1.8.x series. Everyone is invited to help improve the documentation; see http://wiki.gnucash.org/wiki/Development on how to get involved.

    How can you help?

    Testing: Test it and help us discover all bugs that might show up in there. Please enter each and every bug into bugzilla.

    Translating: The new release comes with some new translation strings. If you consider contributing a translation, we invite you to test this release already. A string freeze will be announced in one of the later 2.3.x releases. Please check http://wiki.gnucash.org/wiki/Translation_Status for updates on this.

    We would like to encourage people to test this and any further releases as much as possible and submit bug reports in order that we can polish GnuCash to be as stable as possible for the 2.4.0 release in a few weeks. Then post any bugs you find to bugzilla

    Getting GnuCash

    Source code for GnuCash 2.3.10 can be downloaded from multiple locations:

    • The GnuCash website
    • Sourceforge: bzip2, gzip, all files.
    • You can also checkout the sources directly from the subversion repository with this command:

      svn co http://svn.gnucash.org/repo/gnucash/trunk gnucash

    To install GnuCash, you will need Gnome 2, guile, slib. In addition you will need swig if compiling from subversion.

    Win32 binary

    The Gnucash 2.3.10 Win32 setup executable can be downloaded from Sourceforge as well.

    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, Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

    GnuCash Services Back Online

    As of 2am EST on Thursday, February 18 all GnuCash services should be up and running normally. Over the next few days there may be brief outages as equipment is rearranged or routing preferences are fixed. But the services themselves (Email, Subversion, Wiki, etc) should be accessible.

    Thank you for your patience

    Scheduled GnuCash Server Downtime

    The GnuCash "everything" server will be down on Wednesday, February 17th, 2010, in order to move the hardware to a new location. The shutdown will start around 8am US/EST on Feb 17 and will hopefully last only 12 hours. It may last longer in the event that the network move does not happen on schedule.

    This outage will affect all GnuCash services except for www.gnucash.org. Affected services include Email, Email Archives, Subversion, Wiki, Trac, GNCbot, IRC Logs, and all Build Services run on lists, code, and svn.gnucash.org.

    Please stay tuned to this location for further updates.

    GnuCash 2.3.9 (Unstable) released

    The GnuCash development team proudly announces GnuCash 2.3.9, the tenth of several unstable 2.3.x releases of the GnuCash Free Accounting Software which will eventually lead to the stable version 2.4.0. With this new release series, GnuCash can use an SQL database using SQLite3, MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft Windows and Mac OSX.

    WARNING: This is an *UNSTABLE* version of Gnucash.

    This release is intended for developers and testers who want to help tracking down all those bugs that are still in there.

    Make sure you make backups of any files used in testing versions of GnuCash in the 2.3.x series. Although the developers go to great lengths to ensure that no data will be lost we cannot guarantee that your data will not be affected if for some reason GnuCash crashes in testing these releases.

    NOTE: The latest stable version is 2.2.9.

    PLEASE TEST TEST AND TEST SOME MORE any and all features important to you. Then post any bugs you find to bugzilla

    Major changes in the 2.3.x release include;

    • In addition to the XML backend, Gnucash can now use a SQLite3, MySQL or PostgreSQL database to store the data. This is a new implementation using libdbi. It supports all features including the business features. In order to build with this, add --enable-dbi to the configure command. In addition to the libdbi-dev package for your distribution, you will also need the appropriate DBD (libdbi driver) package for sqlite3, mysql or postgresql.
    • In addition to the current GtkHTML HTML engine used to display reports and graphs, Gnucash can use WebKit. WebKit is the engine used by Google Chrome on Windows and Safari on Apple. In order to build with this, add --enable-webkit to the configure command. You will need an appropriate webkit-dev package. On win32, you will need to download the webkit-1.1.5-win32.zip file from the source repository and put it into the downloads directory of your gnucash build area. Note that there are serious bugs when using webkit on win32, so it is advised that win32 builds continue to use gtkhtml
    • Updated to AqBanking 3 on Win32.

    Changes between 2.3.8 and 2.3.9 include:

    • Bugs fixed
      • Bug #608436: Add auto-clear feature Patch by Cristian KLEIN: = Usage scenario = John keeps his personal accounting in GnuCash and writes all credit card expenses therein. On weekends, we checks his Internet Banking and sees that some transactions have been recorded. He would like to clear those transactions in GnuCash, but it is tiresome to go through each Internet Banking transaction and do manual comparison with GnuCash records, especially since Internet Banking transactions might be in a different order than in GnuCash. John would prefer having an "auto-clear" feature. Given the "current amount" from the Internet Banking, he would like GnuCash to clear the transactions for him, if and only if, there is a unique combination of transactions that could achieve this. If there is no solution, or if the solution is not unique, GnuCash should warn him and John must manually clear the transactions.
      • Bug #590332: New eguile-based Tax Invoice report Patch by Chris Dennis.
      • Bug #606053: Add stylesheet with footer Patch by edodd@billiau.net and Frank H. Ellenberger.
      • Bug 586122 - The AqBanking Wizard can't be loaded: plugins\20 folder to be renamed into plugins\16 The patch evaluates and configures the proper paths at build time, retrieving the required info directly from the aqbanking source
      • Bug #608329: Add Color to Account tabs Patch by "Bob": I wanted a way to select an account easily when I have several accounts open in the main window. I decided to add a color option to the account so that the tab can be set to a specific color and so easily identifiable. This could also be used to link like minded accounts together. This patch also fixes the account tooltip not being updated when the name changes.
      • Bug #534210: Add individual check item types. Patch by Thomas Troesch: The proposed patch does: 1. Changes the chk file key to Blocking_Chars as described in 607522 ( this had been dropped by mistake ). 2. Add several fields to the Custom tab in the print check dialog. Locations for: a. split memos fields. b. split accounts ( e.g. Expenses:Auto ) c. split amounts ( e.g. GBP 21.40 ) The splits do not include the last split in the transaction. The keys in the chk format file are: SPLITS_AMOUNT SPLITS_MEMO SPLITS_ACCOUNTS 3. Memo was added to the custom tab. This is the memo from the split that matches the account from the register.
      • Bug #608306: check amount_word should print the fraction correctly. Patch by Thomas Troesch: Checks printed the wrong string for the amount_words. The utility number_to_words had produced e.g. from 100.04 -> One Hundred and 4/100. The word string should be One Hundred and 04/100.
      • Bug #608874: Spelling fix for Emoluments Patch by Adrian Bridgett.
      • Bug #589320 Price Editor - Currency Namespace does not show up This bug was introduced by r18062 (applying a patch from bug #580281 Entering multiple pices with price editor is tedious) For some unknown reason, r18062 assumed exchange rates are not supposed to be edited via the Price Editor dialog.
      • Bug #105669: Improve error handling in gz_thread_func. Honor errors when reading/writing from/to a compressed file or the pipe to the main thread.
      • Bug #606728: Catch errors when opening saved-reports-2.4 for write.
      • Bug #105669: Add checks to detect errors on write, especially if there no space left on the disk. Check the return value of fprintf and use ferror where libraries as libxml do the write. The change may not be perfect yet and a review would be nice. Still, it detects quite a few errors that, without it, slip through and may destroy valuable data.
      • Bug #607522: Add ADDRESS to check printing Patch by Thomas Troesch: The patch does three things: 1. Adds the ability to print an address on checks. The Print Check dialog is changed to have 5 address lines. The first field is filled in with the same data as the PAYEE check item. The other lines are blank. The check format keys have a new check-item type 'ADDRESS'. It behaves like other text check-item types. The address fields on the dialog are set 'not-sensitive' if the current format does not have an ADDRESS check item defined. The Custom Field tab has a new line for the address location. 2. Added new check format key - Blocking_Chars. This is to put the blocking character feature into the check format file. It is currently only in the preferences dialog in the printing tab, and therefore currently applies (or not) to all text fields in th_e check format. By adding the key Blocking_Chars_n to the check format, the blocking characters can be applied to text type check-items individually. Its really useful when printing stubs and so on. (NOTE: blocking characters are printed around a field to protect against alteration e.g. ***$100.00*** vs $100.00) 3. Included a Voucher check template. This is a full page check with the check on top and which has two stubs below. There are other voucher formats ( middle and bottom ) , but the check printing functionality would require separate templates for the different formats. Also changed the Quicken/Quickbooks US-Letter check format to include the ADDRESS check item and blocking around the AMOUNT_NUMBER field. I made a change to the Quicken-wallet check to add blocking characters around the AMOUNT_NUMBER field, and I added a clipping rectangle definition to the NOTES and PAYEE fields the were placed in the check stub area ( if the fields were too long, they would print into the check area ).
      • Bug #607517: Migrate print.glade from glade-2 to glade-3 format. Patch by Thomas Troesch.
      • Bug #607246: In qof_string_number_compare_func, use base 10 and do not allow octals to sneak in. Otherwise, transaction number 0108 (octal 010=8) will sort before 0107 (octal 0107=71).
      • Bug #607255: Repair Hungarian report main menu, by Attila Nagy.
      • Bug #607185: Add f-q workaround for missing date. Patch by "meo": If for whatever reason finance-quote is unable to get a date for a quote or to convert it to the standardized form, gnucash is unable to use the otherwise correct quote. With web pages being updated definitively more frequently than finance-quote, this is quite a nuisance. Up to now, gnc-fq-helper emits an error message + the quote, a combination gnucash is unable to process. This patch presents a workaround. I would prefer using the current date + 12 hours rather than current date + time, but this is open for discussion.
      • Bug #606077: Fix uncommon configure option --program-suffix. Patch by Peter Selinger: OK, the attached patch fixes part of this problem. Specifically, it applies the specified transform (from ./configure option --program-suffix, --program-prefix, or --program-transform-name) to the files src/bin/gnucash-valgrind src/bin/gnucash-gdb src/bin/gnucash This is done in the Makefile at compile time. In the end, I am not sure why the GnuCash configure.in provides the --program-suffix mechanism at all, since apparently it hasn't been used in 10 years. According to info autoconf, these are supposed to be enabled by the macro AC_ARG_PROGRAM, but I don't see this in configure.in. So perhaps it has been enabled by accident and shouldn't really be there.
      • Bug #511606: Fix ipmt() and ppmt() functions in scheduled transactions. Patch by Jean-Baptiste: " The instance counter is now incremented into increment_sx_state function."
      • Bug #538902: Moves the "New Accounts Page" menu option to the "View" menu Patch by Steven N. Severinghaus.
      • Bug #348701 Wrong currency symbol when currency is set to DKK This fix reverts changeset r7200, which caused some currency symbols to be replaced with the EURO sign. This replacement was a workaround for gtkhtml1 and no longer needed.
      • Bug #606626: Change wording from Druid to Assistant
      • Bug #589032: Replace some strcmp() by safe_strcmp() to fix crashes on NULL strings.
      • Bug #602051: Replace the word "string" in GUI messages by non-developer wordings. Same for dialog -> window.
      • Bug #602091: Fix broken Due Bill Reminder in all non-C locales The Due Bill Reminder used the translated form of "Invoice" as query string predicate, which can't work because the untranslated string must be searched for.
      • Bug #582325: Refactor some deprecated guile functions: SCM_BOOLP -> scm_is_bool SCM_NULLP -> scm_is_null SCM_FALSEP -> scm_is_false SCM_NFALSEP -> scm_is_true SCM_VECTORP -> scm_is_vector SCM_NUMBERP -> scm_is_number SCM_CONSP -> scm_is_pair SCM_STRING_CHARS -> scm_to_locale_string Specifically the replacement of SCM_STRING_CHARS with scm_to_locale_string fixes Bug #582325 Additionally, I have renamed these internal functions for global consistency: SCM_PROCEDUREP -> scm_is_procedure SCM_LISTP -> scm_is_list SCM_EXACTP -> scm_is_exact SCM_EQUALP -> scm_is_equal
      • Bug #605414: Clarify Quick-fill tip of the day Patch by James Raehl: Patch adds Tab key step to the Quick Fill tip. New users do not know about this step.
      • Bug #605415: Relax limit on scheduled days in the future Patch by James Raehl: Expand scheduled transaction date limit by 366 days Usually, scheduled transactions are limited to 365 days in the future. This patch doubles that limit plus adds a day for leap years. The patch supports a method for separating transactions that are not yet posted at the bank, by assigning an initial date one year in the future. Under this method, scheduled transactions and their reminders are one year in the future, since they have not happened yet.
      • Fix bug #603215 - Custom report from Budget Report does not save selected Budget Problem was how budget option tried to create the lambda function to restore the value.
      • Bug #479581 gnucash --nofile hasn't application name in window title When no file is selected, the title now becomes "Unsaved Book - GnuCash". The first part is following Gnome HIG guidelines, the latter part is a preference of several GnuCash developers. Furthermore, the "- GnuCash" suffix will always be appended, not only when no file is open.
      • Fix #586122 (follow-up to r18488) by using aqbanking/version.h from its installation path. Also look up the gwenhywfar so-name accordingly.
      • Bug #609402 Add Japanese resource to Windows (inno) setup
    • Updated translations or translation-related changes
      • Updated Dutch translation, by Mark Haanen and Jos, copied from the Translation Project.
      • Updated Japanese translation, by Yasuaki Taniguchi, copied from the Translation Project.
      • I18n fix of concatenated expression. We must not concatenate a word expression from different strings. Instead, we must translate each expression separately. Pointed out by Mark Haanen.
      • I18n improvement: Translate plural-dependent string correctly by ngettext().
      • Minor updates to British English translation by Mike Evans. Copied from bug#602051.
      • Fix translation issues caused by r18474.
      • Update Chinese (simplified) translation, copied from the Translation Project.
      • Update British English translation by Mike E.
      • Remove de_CH translation because it ceased to be maintained. The normal German translation will appear for de_CH locales, just as in 2.2.x.
      • Fix typo: accouting -> accounting
      • Update German translation
      • Add initial Persian translation (Farsi) by Mehdi Alidoost.
      • Fix translation error in r18550, bug#602051.
      • Update Japanese translation, copied from the Translation Project.
      • Fix missing header information about Farsi plural forms in fa.po, according to what has been explained to me.
      • Add disambiguation prefix to the word Split where it is the action of a Stock Split.
      • Add new source files to POTFILES.in
      • Updated Dutch translation, copied from the Translation Project.
      • Update German translation.
      • Update the translations with the latest string template.
      • I18n improvement: The account name of the other account in multi-split transaction is extended to conform to the name in the register. Otherwise, the string Split from here has the ambiguity with the button labeles Split, which is the verb, whereas here we need the noun.
      • I18n improvement: Add disambiguation prefix to the account code of the other account in a multi-split txn. Without the disambiguation, the string here is identical to the button labeled Split, but that one is for sure something different from here, namely the old verb vs. noun issue.
    • Other user-visible changes
      • Small UI string corrections related to the recent tax enhancements. Patch by J. Alex Aycinena.
      • Payment dialog layout improvements - Rearrange the frames so that the Transfer Account frame gets more space - Add tooltips to (owner), (invoice) and amount related widgets. - Properly align the invoice_label widget
      • Watch out for a missing pricing transaction when looking for price data.
      • Add a comment about GNC_COMMODITY_NS_ISO and GNC_COMMODITY_NS_CURRENCY.
      • Add new columns for the name of the lot each split is part of and for the value of the split. Both are optional and default to off.
      • Call gnc_{suspend|resume}_gui_refresh while closing accounts and scrubbing lots to make them go much faster and avoid flicker.
      • Watch out for a null account in render-corresponding-account-subheading, it happened to me once.
      • Pass the correct report name to income-statement-renderer-internal when rendering a profit and loss report.
      • Don't leak a file port when saving reports.
      • Reset found_trans_split when the transaction being considered in gnc_split_register_find_split turns out to be the wrong one.
      • Fix an off by one error in gnc_ui_sx_loan_druid_create.
      • Increase the size of the Guile stack to avoid stack overflow errors.
      • Some usability improvements to the Save As.../Open dialog (part 2) Forgot to add the changes in c code...
      • Some usability improvements to the Save As.../Open dialog * The dialog gets a proper title * Only show the File frame or the Database frame, as relevant to the chosen data format * Set a minimum width. Without it the dialog comes up too narrow. * Some minor layout changes (spacing, justification,...) to harmonize with other GnuCash dialogs.
      • Don't show hidden accounts in the transfer dialog. This should be connected to the UI, but my ubuntu has glade 3 which mucks up the .glade files.
      • Add a Select Children button to the widget used for account selection in report options dialogs.
      • Load gnc-build-url from the correct file so the accounts list option works again.
      • Speed up the balance sheet report by a factor of 5 or so by using C functions instead of Scheme functions to get account commodity balances. This idea is borrowed from the EGuile version of the balance sheet report.
      • Avoid a bunch of assertion failures when the general ledger is open. The general ledger has no account so attempts to get the balance of the register's account pass a null account pointer to functions that won't accept that. Also stop leaking a GList in the functions that get account balances.
      • Remove the "Compute unrealized gains and losses" option from the balance sheet report. Instead compute unrealized gains and losses only if the current book does not use trading accounts.
      • Change 'Int' to 'Interest' and 'Div' to 'Dividend' in action strings
      • Use string saved-reports-2.4 in the description of the save report action.
      • Use gtkhtml as html render in the Windows build
      • [Patch] Corrections to taxtxf.scm Patch by J. Alex Aycinena: I attach a patchfile that corrects two problems with taxtxf.scm: the report would not gracefully handle the cases where, 1, a datafile from an earlier version of gnucash might have tax codes assigned to accounts and no tax-entity-type code assigned to the file, and, 2, some cases where accounts had no tax code assigned and the tax-related flag not set.
      • Have the Post date widget grab the focus by default when opening the post invoice dialog.
      • Updated txf.scm for 2009 US tax form changes by J. Alex Aycinena.
      • Fix crash when copying a currently edited transaction in the register.
    • Other code/build changes
      • Remove gnucash.lsm from EXTRA_DIST
      • Fix doxygen markup
      • Small documentation improvements for better doxygen docs
      • Move splint-defs.h to src/debug. It's only used for debugging. Note that the current splint-defs.h causes compilation errors due to redefinition of function declarations. These should be fixed when splint is to be run again.
      • Win32: Fix building of libgoffice. Required libgsf to not remove the build directory, hence part of r18559 need to be reverted.
      • Fix null-pointer dereference from r18612
      • Remove Linux Software Map description. It's unmaintained for years now.
      • Move count.* to util Also I made a first attempt at improving the line count. The old script missed a number of files in the directories it counted. The script is still not in line with the current code base though. A number of directories are still not counted (like gnome, engine, ledger, ...)
      • Moved svnlog2ul from contrib to util It makes more sense in util as it is by and for the devs, not contributed by an external user for external use.
      • Add svnlog2ul.sh, and accompanying xslt sheets. svnlog2ul.sh is a script to extract the commit messages from svn between two releases and converts them into a simple html unordered list. This is a useful aid to create the news pages on the website.
      • Move valgrind suppression rules to debug subdirectory This will require a new run of configure as some makefiles have changed
      • Set svn:ignore on pl accounts like the other account directories (Meaning: ignore Makefile and Makefile.in)
      • Remove the old, obsolete postgres backend and its tools I also changed some of the documentation that referred to it, but there are still some references left in the (unmaintained ?) design documents.
      • Win32: Hopefully fix goffice installation.
      • Free sort_keys as allocated by g_utf8_collate_key in ExtensionInfos.
      • Fix script to check for > 2.8 entries to remove The minimal Gtk+ requirement has been set to 2.8 recently. This script still removed glade parameters that are valid in 2.8. This patch fixes that.
      • Corrections to r18610 to permit compiling against older versions of glib
      • Remove more executable bits from data files
      • Remove executable flag from data files
      • Fix URL of ActivePerl.
      • Minor changes to global project files 1. Fix spelling errors in HACKING - appearenet -> apparent (patch by Tom Van Braeckel) - supressions -> suppressions 2. Keep the contributer list sorted alphabetically in AUTHORS
      • Fix "make distcheck". Patch by Jan Arne Petersen
      • Reverse r18597
      • Create routines qof_book_get_string_option() and qof_book_set_string_option() to get/set a kvp string, respectively. qof_book_set_string_option() also handles saving the book so that the kvp is updated in the db. In the future, qof_book_set_<type>_option() and qof_book_get_<type>_option() should be created, where type is boolean, int, double, ... In addition, other places which handle options in the book should use these routines.
      • Create qof_book_begin_edit()/qof_book_commit_edit() routines. These need to be added around lines which set kvp values for the book, and the dirty flag does *not* need to be set.
      • Revert 18490/18491/18527 - I'm not sure it's actually deleting the objects without affecting the database.
      • Add ChangeLog.2009 for the last year.
      • Use correct routine to add a newly loaded entry to the correct bill. r18302 fixed the entry loading problem for invoices, this extends it to bills.
      • Remove build directories of dependencies after their successful installation.
      • Remove a couple of unused local variables left over from a previous iteration of the trading account changes.
      • Fix guile-1.6 compatibility of r18541 (bug#582325). We still suppport guile-1.6, hence we can use the functions introduced in guile-1.8 only by providing our own backward compatibility macro definitions in guile-mappings.h.
      • Update gwenhywfar/aqbanking version numbers for win32 build.
      • Fix gwenhywfar version lookup by tightening the RE used
      • Need to export the variables for glib to see them
      • temporarily disable the gwenhywfar version lookup - there are multiple lines matching GWENHYWFAR_SO_EFFECTIVE
      • Really fix r18495 (#586122) to look up the so-name of gwenhywfar correctly.
      • Require gtk+ >= 2.8
      • Remove unneeded information lines about "qof" - we're using our internal code always anyway.
      • Re-indentation of source code, next batch. This also strips trailing whitespaces from lines where they existed. This re-indentation was done using astyle-1.23 using the following options: astyle --indent=spaces=4 --brackets=break --pad-oper Discussed at http://lists.gnucash.org/pipermail/gnucash-devel/2009-August/026121.html
      • Allow digits in Gtk action names created in gnc_create_extension_info. This should fix bug 447339 as long as all report names are unique considering only alphanumeric characters.
      • Free accounts/lots/splits/transactions when closing a book
      • Fix a couple of echo commands and set warnings=no-portability when running automake.
      • Make xaccSplitDump and xaccTransDump work for debugging.
      • Teach xaccSplitConvertAmount that 0*x = 0. Avoids looking up non-existant exchange rate.
      • Add some missing Leave() calls.
      • Symlink the reports to the build directory to make it easier to use them when running in place after a build without installing GnuCash.
      • Use resolve-interface instead of resolve-module when loading reports fo only the exported interface gets imported instead of everything defined in the file.
      • Make the dbi backend tests work correctly if dbd is installed in a nonstandard location. Supply a GNC_DBD_DIR environment variable to the tests so it knows where to find the database modules. This is needed if libdbi is installed via MacPorts on OS X.
      • Add flags to help with valgrind on glib
      • Free prices so that they can be deleted when the book is closed
      • Free budgets when closing a book
      • When closing the book, destroy all lots (found by valgrind)
      • Free memory leaks
      • Add qof_backend_module_finalize() routine to call dbi_shutdown() to free allocated resources.
      • Add qof_finalize_backend_libraries() which is called during shutdown. This routine checks each backend library for an exported qof_backend_module_finalize() routine, and if it exists, calls it so that the backend can free any resources which have been allocated.
      • Fix some memory leaks found by valgrinding tests
      • Remove erroneous use lib from gnc-fq-*, along with PERLINC setup in configure.in
      • Decrease verbosity during win32 packaging: Inno, gconftool-2, htmlhelp compiler (hhc) with less output.
      • Fix some incorrect ENTER() and LEAVE() calls.
      • Fix up some gnc:debug calls (and one comment).
      • Fix a couple of initialized variable warnings.
      • Add missing PORTFOLIO_LEDGER register type to switch statement in gnc_split_register_get_debcred_entry.

    Caveats for Testers

    Any 2.3.x version might crash unexpectedly at any point during runtime. If you test some serious work in a 2.3.x release and are using the XML file backend for data storage, make sure you hit "Save" after every non-trivial workstep. If you are using the SQL backend, this is not required as every change is saved immediately to the database.

    The documentation has had screenshots updated, however, many help texts usually only refers to the 1.8.x series. Everyone is invited to help improve the documentation; see http://wiki.gnucash.org/wiki/Development on how to get involved.

    How can you help?

    Testing: Test it and help us discover all bugs that might show up in there. Please enter each and every bug into bugzilla.

    Translating: The new release comes with some new translation strings. If you consider contributing a translation, we invite you to test this release already. A string freeze will be announced in one of the later 2.3.x releases. Please check http://wiki.gnucash.org/wiki/Translation_Status for updates on this.

    We would like to encourage people to test this and any further releases as much as possible and submit bug reports in order that we can polish GnuCash to be as stable as possible for the 2.4.0 release in a few weeks. Then post any bugs you find to bugzilla

    Getting GnuCash

    Source code for GnuCash 2.3.9 can be downloaded from multiple locations:

    • The GnuCash website
    • Sourceforge: bzip2, gzip, all files.
    • You can also checkout the sources directly from the subversion repository with this command:

      svn co http://svn.gnucash.org/repo/gnucash/trunk gnucash

    To install GnuCash, you will need Gnome 2, guile, slib. In addition you will need swig if compiling from subversion.

    Win32 binary

    The Gnucash 2.3.9 Win32 setup executable can be downloaded from Sourceforge as well.

    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, Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

    GnuCash 2.3.8 (Unstable) released

    The GnuCash development team proudly announces GnuCash 2.3.8, the ninth of several unstable 2.3.x releases of the GnuCash Free Accounting Software which will eventually lead to the stable version 2.4.0. With this new release series, GnuCash can use an SQL database using SQLite3, MySQL or PostgreSQL. It runs on GNU/Linux, *BSD, Solaris, Microsoft Windows and Mac OSX.

    WARNING: This is an *UNSTABLE* version of Gnucash.

    This release is intended for developers and testers who want to help tracking down all those bugs that are still in there.

    Make sure you make backups of any files used in testing versions of GnuCash in the 2.3.x series. Although the developers go to great lengths to ensure that no data will be lost we cannot guarantee that your data will not be affected if for some reason GnuCash crashes in testing these releases.

    NOTE: The latest stable version is 2.2.9.

    PLEASE TEST TEST AND TEST SOME MORE any and all features important to you. Then post any bugs you find to bugzilla

    Major changes in the 2.3.x release include;

    • In addition to the XML backend, Gnucash can now use a SQLite3, MySQL or PostgreSQL database to store the data. This is a new implementation using libdbi. It supports all features including the business features. In order to build with this, add --enable-dbi to the configure command. In addition to the libdbi-dev package for your distribution, you will also need the appropriate DBD (libdbi driver) package for sqlite3, mysql or postgresql.
    • In addition to the current GtkHTML HTML engine used to display reports and graphs, Gnucash can use WebKit. WebKit is the engine used by Google Chrome on Windows and Safari on Apple. In order to build with this, add --enable-webkit to the configure command. You will need an appropriate webkit-dev package. On win32, you will need to download the webkit-1.1.5-win32.zip file from the source repository and put it into the downloads directory of your gnucash build area.
    • Updated to AqBanking 3 on Win32.

    Changes between 2.3.7 and 2.3.8 include:

    • Disable it_IT help in the win32 binary
    • Recreate index after updating table
    • Temporarily disable currency trading accounts so that 'make check' will pass
    • Fix test-resolve-file-path - results have changed
    • Fix compilation problem in test
    • Add src/gnome-utils/gnc-tree-model-account-drag.c to po/POTFILES.in
    • Set debug level for gnc.backend.dbi automatically to DEBUG.
    • Fix memory leak: Let the pixbuf renderer for goffice plots be unreferenced
    • Add libguile CFLAGS and LIBADD to libqof build
    • Fix too-new gtk_dialog_get_content_area function of r18413: Patch by J. ...
    • Transaction post date also needs to allow NULL values.
    • Temporary workaround for crash at startup after r18429.
    • Decrease verbosity of aqbanking plugin: Debug output only if preference ...
    • In the "Save As" dialog, set XML as default, not sqlite3.
    • Fix compile error on current ubuntu by clashing symbol declarations in ...
    • When creating an account selector and a commodity list if provider, just ...
    • Remove forgotten printf in r18402 which shouldn't have been committed to ...
    • Fix amount sign of imported bank transfers (e.g. from DTAUS ...
    • Fix GCC pointer strictness compiler errors/warnings and remove duplicate ...
    • Fix compile error related to uninitialized value. Patch by Matt Lavin ...
    • Introduce disambiguation prefix for "Deposit" action to distinguish it ...
    • Make one register function more const correct to avoid compiler warnings ...
    • Fix typo: scm_catch_body_t -> scm_t_catch_body
    • gnc-module doesn't need to compile/link with guile
    • Add new option in register "Tab order includes Transfer field". Patch by Colin Law
    • Partly fix broken data file backward compatibility with SX recurrence
    • Win32: Allow m4 1.4.11 and 1.4.13 as well as 1.4.7.
    • Win32: Assert there is only one aqbanking plugin directory
    • Win32: Minor version update of aqbanking.
    • Bug #603186: Fix crash with txf.scm on win32 Patch by J. Alex ...
    • Bug #537476: Fix currency trading account preference lookup Patch by Mike ...
    • Fix the bug described in comment 19 of bug 537476, balance sheet wrong ...
    • Bug #310567: Disable newly introduced "shift txn forward" feature again ...
    • Fix bug 600486 - Unable to open sqllite file on Win7 64 bit Unposted ...
    • Fix Bug 591573 - "File|Save As" with xml option and no file name ...
    • Fix bug 602603 - State file cannot be saved with MySQL because of colon ...
    • Bug #570895: Allow reporting for single budget periods in budget income ...
    • Bug #602744: Fix broken tip_of_the_day list creation. Patch in r18417 ...
    • Fix bug 591098 - when starting Gnucash, "Present" and all other collumns ...
    • Bug #537476: Implement currency trading accounts optionally, to be enabled ...
    • Bug #554394: Income Tax Enhancements Patch by J. Alex Aycinena. Patch ...
    • Bug #600374: Add editable transaction field in the register for bank ...
    • Bug #310567: Add menu item to shift transaction forward in sorting ...
    • Bug #121695: Support account reparenting through drag and drop in the ...
    • Fix bug 492865 - Add Last Reconcile Date as an Option in the Chart of ...
    • Fix bug 593581 - 2.3.5: Save to MySQL still fails with date error After ...
    • Bug #601861: Fix mis-captioning in button labels The keyboard shortcut ...
    • Bug #602070: Fix return value in void function Patch by Halton Huo.
    • Bug #602062: Fix hard-coded gcc program name Patch by Halton Huo.
    • Bug #540452: Remove inline from function declaration/definition because it ...
    • Bug #602069: Fix build on Solaris for different gmp header ...
    • Revert r18396, "Bug #593906: Fix crash at account report" This change ...
    • Fix bug 598213 - Selecting "Account Report" causes gnucash to ...
    • Bug 600947 - Gnucash-2.3.7 crashes when doing reports with ...
    • Bug 599324 - Patch: Add double click behaviour to account list in payment ...
    • Bug 599322 - Patch: Minor gui tweak for invoice window Fix widget ...
    • Bug #599953: Let gnc:make-[complex|simple]-boolean-option store its value ...
    • Bug #593906: Fix crash at account report Patch by Mike Alexander. This ...
    • Bug #582985, #585022: Add missing currencies Armenian Dram (AMD) and ...
    • Bug #593070: Budget Report: Omit accounts with no budget and zero ...
    • Fix 598491: Remove use of guile's deprecated GH interface
    • Bug #567090: Fix erroneous password length comparison.
    • Updated Dutch translation by Mark Haanen, copied from Translation Project.
    • Add Latvian translation by Valdis Vitolins <valdis.Vitolins@odo.lv>
    • Update of Japanese translation by KUSANO Takayuki
    • Add polish account templates, contributed by Jacek Baszkiewicz ...
    • Update German translation.

    Caveats for Testers

    Any 2.3.x version might crash unexpectedly at any point during runtime. If you test some serious work in a 2.3.x release and are using the XML file backend for data storage, make sure you hit "Save" after every non-trivial workstep. If you are using the SQL backend, this is not required as every change is saved immediately to the database.

    The documentation has had screenshots updated, however, many help texts usually only refers to the 1.8.x series. Everyone is invited to help improve the documentation; see http://wiki.gnucash.org/wiki/Development on how to get involved.

    How can you help?

    Testing: Test it and help us discover all bugs that might show up in there. Please enter each and every bug into bugzilla.

    Translating: The new release comes with some new translation strings. If you consider contributing a translation, we invite you to test this release already. A string freeze will be announced in one of the later 2.3.x releases. Please check http://wiki.gnucash.org/wiki/Translation_Status for updates on this.

    We would like to encourage people to test this and any further releases as much as possible and submit bug reports in order that we can polish GnuCash to be as stable as possible for the 2.4.0 release in a few weeks. Then post any bugs you find to bugzilla

    Getting GnuCash

    Source code for GnuCash 2.3.8 can be downloaded from multiple locations:

    • The GnuCash website
    • Sourceforge: bzip2, gzip, all files.
    • You can also checkout the sources directly from the subversion repository with this command:

      svn co http://svn.gnucash.org/repo/gnucash/trunk gnucash

    To install GnuCash, you will need Gnome 2, guile, slib. In addition you will need swig if compiling from subversion.

    Win32 binary

    The Gnucash 2.3.8 Win32 setup executable can be downloaded from Sourceforge as well.

    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, Mac OSX and Microsoft Windows. Programming on GnuCash began in 1997, and its first stable release was in 1998.

    Click here for older announcements ...

    [atom syndication feed]

    Copyright © 2001-2010 The GnuCash Project

    Server & email outage reports to: gnucash-devel@gnucash.org

    Translation problems? Contact: gnucash-devel@gnucash.org