Announcement: GnuCash 2.3.13 (Unstable) Release 2010-06-02 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.