Gnucash 2.3.12 released
Phil Longstaff
plongstaff at rogers.com
Wed Apr 21 18:54:46 EDT 2010
Announcement: GnuCash 2.3.12 (Unstable) Release 2010-04-21
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
* 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 install and packaging rules. Running "make
package" will produce a binary package. Running "make
package_source" will produce a source package.
* Win/MSVC compatibility: Replace g_* file operations by
the direct calls into the MSVC runtime. This tries to
avoid a collision between glib's C runtime vs. the one
that is used by MSVC (and hence also Qt) by using file
access only through MSVC's one.
* Win32: Add mingw cutecash build to the install.sh
script, enabled by WITH_CUTECASH=yes.
* Cutecash: Slightly decrease debug output verbosity.
* MSVC: Add creation of MSVC import library of libdbi.
* Fix CMake for building the dbi backend.
* Cutecash: Fix missing #ifdefs for dbi calls.
* Cutecash: Compile & link SQL backend as well (but there
is no GUI for this yet)
* Cutecash: Fix memory leak of missing cleanup of
RecentFileMenu object.
* MSVC compatibility: MSVC must not use g_fopen because it
uses a different C runtime than the rest of (MSVC)
file-handling functions.
* MSVC compatibility: Always initialize all members of the
QofObject struct.
* Cutecash: Add more event handler to the account windows
so that they will be deleted upon book closing.
* Cutecash: Code cleanup. Avoid crashes when undoing
adding of new transactions by not deleting the tmp
transaction object. Also, correctly set the document
state to "clean" after saving.
* Cutecash: Implement account selection in new transaction
correctly.
* Cutecash: Implement entering new transactions in the
register. Only the account selection is still missing.
* Cutecash: Add empty line for entering a new transaction
in the register. Doesn't yet store data, though.
* Cutecash: Introduce separate base class GncInstance for
QofInstance methods. This is the base class for Account,
Book, Commodity, Split, Transaction.
* Cutecash: Add deletion of rows/transactions (through
"Cut"). With Undo. Hee Hee.
* Cutecash: Fix file loading, saving, and save-as. Works
fine now. Also, use the new GDate setter/getter for the
transaction time.
* Cutecash: Add separate Cmd class for setting the
amount/value. Setting the amount in the register now
works.
* Enable editing of the "other" account of a transaction.
Register Account and our other types in the QMetaType
system so that QVariant can hold it and pass it between
the model, view, and delegate. Implement
AccountSelectionDelegate that presents a QComboBox
editor widget for account selection.
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.
More information about the gnucash-devel
mailing list