Changing standard reports

John Ralls jralls at ceridwen.us
Wed Oct 19 10:47:49 EDT 2016


> On Oct 19, 2016, at 7:31 AM, Geert Janssens <geert.gnucash at kobaltwit.be> wrote:
> 
> On Wednesday 19 October 2016 10:28:13 David T. via gnucash-devel wrote:
>> Hello,
>> 
>> Out of curiosity, how might one go about changing the contents of one
>> of the standard reports included with GnuCash? I ask because I was
>> interested in trying to change the General Ledger and General Journal
>> reports to include more meaningful names in the window heading (see
>> bugs 773168 and 773169). However, when I tried changing the text
>> value of regrptname in the scm files for these reports, the GnuCash
>> application subsequently failed to load (as in crashed on startup).
>> Moreover, restoring the original text value or even the original scm
>> file failed to restore operations; I had to reinstall the
>> application. I was under the impression that the scm files were
>> loaded at startup, but obviously I am mistaken.
>> 
>> TIA,
>> David
> 
> Hi David,
> 
> The general principle is exactly that: the scm file is loaded at 
> startup.
> 
> There are additional details depending on your platform and version of 
> guile in use.
> 
> When your installation of gnucash is built for guile 1.8.x, the scm 
> files are indeed loaded at startup and interpreted on the fly. So on 
> most platforms, replacing the scm file with a modified one in this 
> scenario should have gnucash simply read the new scm file at startup. 
> The one wrinkle I can think of in this case is on Windows: whatever in 
> installed in the Program Files* directories can't just simply be 
> modified. Windows uses some kind of virtual filesystem in that directory 
> to manage user-made changes (even if done with admin rights). This 
> virtual file system doesn't seem to play well with gnucash. I have seen 
> other reports of failures when attempting to manually edit files in 
> here. I'm not on Windows myself, so I don't know much more detail about 
> this.
> 
> Aside from Windows, most other platforms (including OS X) have switched 
> to guile 2.x for use with gnucash. In this case the load scenario is 
> slightly different because guile 2 compiles the scm files and reads the 
> compiled files at load time instead of the scm (source) files. The 
> gnucash source tree is configured such that all scm files are already 
> compiled during the build of gnucash. So when running gnucash, the 
> compiled scm files are already available and will be used. When you 
> change an scm source file (as you did), guile will detect this and 
> attempt to recompile it. It appears this part fails on your system for 
> some reason. Copying the original file back will probably still trigger 
> the attempt to recompile, because copying a file changes the modified 
> time, which is exactly what guile checks to determine if a recompile is 
> needed. That's why in your case only a reinstall fixed it.
> 
> Unfortunately this doesn't explain why the recompile failed. Perhaps 
> John has more insight in this on OS X.

I'd have to see the actual error to be sure, but two possibilities are that the bundle doesn't include everything needed to recompile scm files or System Integrity Protection (SIP) if you're got El Cap or later.

Please file a bug with the crash report attached and I'll take a look.

Regards,
John Ralls




More information about the gnucash-devel mailing list