On Sunday 22 February 2015 19:16:31 Reinhard Tartler wrote: > BTW, > https://bugs.launchpad.net/ubuntu/+source/gnucash/+bug/1369273/commen > ts/19 is a comment from Geert Janssens, one of the gnucash developers, > who basically confirms this issue. I'm CC'ing him with this email. > Geert, maybe you can share your opinion on this? > I have said most of it in the referred lauchpad bug already but I'll try to elaborate.
Reading the launchpad bug and this one I see a lot of confusion about what is going on. Quick summary: There are two bugs reported in lp:1369273: 1. gnucash crashes on exit 2. python module exits with an uncaught exception (There was a third bug reported even, which I'll ignore here as it's unrelated.) The first one has nothing to do with python at all. It's a bug in gnucash in the way it interacts with the most recent version of libdbi. This bug has been fixed in gnucash 2.6.4 by this commit: https://github.com/Gnucash/gnucash/commit/75114b7c6273 The second is not a gnucash crash in the sense that the program stops working. Only an optional plugin fails to load. It's unfortunate this gets reported (by apport on Ubuntu?) as "gnucash crashed with..." because that is inaccurate and confusing. The confusion even continues on into the changelog (repeated in comment #20 on the lp bug): + No longer crashes on exit when python-gnucash is installed. To repeat: the crash on exit had nothing to do with python-gnucash. Another source of confusion seems to be in the definition of "the gnucash python module". In the gnucash community we talk of gnucash modules. The python bindings are one such module. A "Gnucash module" in this context is a C shared library together with any support files this library needs. The gnucash module libraries all have names starting with "libgncmod...". The module that implements the python bindings is called "libgncmod-python.so". To function it also needs some python code, which in a python context is called a module as well. This is the python module called "gnucash" which is also part of the gnucash source distribution. It's this python module that is packaged as "python-gnucash". As said before the python bindings are optional in gnucash. It will work just fine without it. The subtle but important thing to understand here is that optional refers to "libgncmod- python.so". The python module "gnucash" is not a direct dependency of the gnucash application at all. Rather it's a dependency of this optional libgncmod-python.so. And a mandatory dependency of that library even. That means gnucash is designed to work happily even if libgncmod-python.so is not available. However if available libgncmod-python.so *only* works if the accompanying "gnucash" python module is present as well. In other words you can separate libgncmod-python.so from gnucash but you can't separate the python module "gnucash" from libgncmod-python.so. The packaging in debian and ubuntu doesn't reflect this. These packages do separate the python module "gnucash" from libgncmod-python.so. In debian the net effect is an exception message in the logs, apport on ubuntu makes more of a deal out of it. That's why I suggested this to be a packaging bug and proposed a way to solve it. Again I'm not a packager myself so there may be packaging specific reasons my suggestion can't be implemented.