[GNC] Debug information to sort out Finance::Quote issue on macOS Ventura

John Ralls jralls at ceridwen.us
Fri Dec 16 16:25:04 EST 2022


Vince,

Dtruss probably tells you a lot of stuff you don't need and not much that you do. Did you try `gnucash --log gnc.scm=debug --logto=stderr`?

Yes, GnuCash 5 will continue to use F::Q. Geert and I rewrote the original Scheme bridge in C++ and greatly improved the error capture and reporting in the process. We're still using the legacy methods so I guess some more work is in order.

In order for GnuCash to support passing api keys as source module parameters we need a Quote.pm function to enumerate the source modules that need an API key. The alternative of hard-coding the modules in GnuCash is too brittle because the module names sometimes change. That brittleness is evident in the Security Editor where we still list a bunch of modules that no longer exist and there are a bunch of new modules at the bottom.

Regards,
John Ralls

> On 16. Dec 2022, at 11:52, Vincent Lucarelli <vincent.lucarelli at gmail.com> wrote:
> 
> Thanks John, I did in fact forget to replace the environment.local file after a fresh GnuCash install, but still no luck.
> 
> I’m trying to sort through dtruss output, but it is a bit difficult to sort out what is going wrong. Happy to receive additional suggestions.
> 
> 
> For the API keys, I wrote several of the new F::Q modules and choose not to support environment variables because it seemed like more services were going to require API keys and the number of environment variables would grow.  So the only mechanism right now is to set the API key when instantiating an F::Q object.
> 
> I saw that you commented one F::Q/issue/200 and indicated a new major release of GnuCash is in the works.  Is F::Q going to continue to be the source for quotes in that version?  Is so, I think there are at least two options for dealing with API keys - F::Q adds environment variables for every module that needs one and then GnuCash either continues to use something like the environment file or adds a preference where users can register environment variables, or, GnuCash adds a preference for registering API keys and those get routed to wherever the F::Q instance is created.
> 
> The environment variables seem to cause users headaches to make sure they are set properly and survive GnuCash upgrades, but a separate GnuCash preference set of key/values for F::Q API keys is a lot more work for the GnuCash developers.  I haven’t been active on F::Q development, but if there are changes that will help with the next GnuCash release, I’ll find time to help.
> 
> Best,
> 
> Vince
> 
> 
> 
> 
> 
>> On Dec 16, 2022, at 12:31 PM, john <jralls at ceridwen.us> wrote:
>> 
>>> On Dec 15, 2022, at 4:37 PM, Vincent Lucarelli <vincent.lucarelli at gmail.com> wrote:
>>> 
>>> Hi,
>>> 
>>> I upgraded to macOS Ventura and am having trouble getting Finance::Quote to work.
>>> 
>>> gnc-fq-dump is working in the terminal (see shell output below), but in GnuCash I get the error “There was a system error while retrieving the price quotes.”
>>> 
>>> Is there some way to get debugging output from the GnuCash app so I can see what call is being made and what error is occurring?
>> 
>> If you're trying to use iexcloud in GnuCash and you have an Intel mac then the problem is most likely that iexcloud key. GnuCash doesn't read the environment set in the shell's .*profile so you'll have to add it as an environment variable to the environment file, see https://wiki.gnucash.org/wiki/Configuration_Locations#File_environment.local.
>> 
>> There's another problem with newer F::Q modules requiring an api key: Many of them don't have an associated environment variable and expect the api_key to be passed as a parameter and Finance::Quote doesn't expose any way to discover whether a module requires a key making it rather difficult for GnuCash to support them.
>> 
>> Regards,
>> John Ralls
> 



More information about the gnucash-user mailing list