On 2023-12-23 15:38, John Ralls wrote:

On Dec 23, 2023, at 12:29 PM, Jim DeLaHunt <list+gnuc...@jdlh.com> wrote:

Hi, folks:

I recently upgraded to GnuCash 5.5-1 on macOS, ...retrieving quotes via 
AlphaVantage for ... stopped working.
...
But the gnucash-fq-update utility thinks everything is fine:

% PATH='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin' sudo 
/Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-update
Password:

Starting with /...[elided].../ this dialog will disappear.
Reading '/Users/jdlh/.cpan/Metadata'
   Database was generated on Fri, 22 Dec 2023 23:54:07 GMT
Test2 is up to date (1.302198).
Finance::Quote is up to date (1.58).
JSON::Parse is up to date (0.62).

And CPAN seems to think that JSON::Parse is present:

% PATH='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin' sudo cpan
Password:
Loading internal logger. Log::Log4perl recommended for better logging

Starting with /...[elided].../ this dialog will disappear.
Terminal does not support /...[elided]...
/cpan shell -- CPAN exploration and modules installation (v2.36)
Enter 'h' for help.

cpan[1]> m JSON::Parse
Reading '/Users/jdlh/.cpan/Metadata'
   Database was generated on Fri, 22 Dec 2023 23:54:07 GMT
Module id = JSON::Parse
     CPAN_USERID  BKB (Ben Bullock <b...@cpan.org>)
     CPAN_VERSION 0.62
     CPAN_FILE    B/BK/BKB/JSON-Parse-0.62.tar.gz
     UPLOAD_DATE  2022-07-15
     MANPAGE      JSON::Parse - Parse JSON
     INST_FILE /Library/Perl/5.30/darwin-thread-multi-2level/JSON/Parse.pm
     INST_VERSION 0.62


cpan[2]> install JSON::Parse
JSON::Parse is up to date (0.62).

...For what it's worth, MacPorts has perl 5.34.3 installed, and the perl 5.34 
edition of JSON::Parse as well. The system has perl 5.30.3 installed. I do not 
know if this difference is significant.

...Thank you in advance for your help. And many thanks to the GnuCash 
developers for all the improvements in the 5.x versions!
Jim,

It matters which perl is invoked, because each "minor" perl version (minor in quotes 
because just like GnuCash before we truncated the version to two digits, perl's "major" 
version has been fixed since the turn of the century) gets it's own versioned directories of 
modules.

It might also matter that one of the Perls is MacPorts because MacPorts might 
install its perl modules in the MacPorts installation tree.

You can use
   perl -e 'print join("\n", @INC), "\n"`
(include the quotes) in each environment to see where that perl is looking for 
modules.

The value of $PATH is different when running from the command line in Terminal 
and when launching an app with LaunchServices, either by using the `open` 
command from a command line prompt or double-clicking the app's icon in Finder. 
...

I believe that by specifying the path before each of my invocations, I was steering the GnuCash app to the system Perl, 5.30, rather than the MacPorts Perl, 5.34.

% PATH='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin' /usr/bin/perl -e 'print join("\n", @INC), "\n"'
/Library/Perl/5.30/darwin-thread-multi-2level
/Library/Perl/5.30
/Network/Library/Perl/5.30/darwin-thread-multi-2level
/Network/Library/Perl/5.30
/Library/Perl/Updates/5.30.3/darwin-thread-multi-2level
/Library/Perl/Updates/5.30.3
/System/Library/Perl/5.30/darwin-thread-multi-2level
/System/Library/Perl/5.30
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30
%


...You can force using that system perl on the command line by using the path 
instead of just `perl`, e.g.
   sudo /usr/bin/perl 
/Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-update

will force using the system perl and its builtin @INC as long as $PERL5LIB 
isn't set in the environment.

Note that if your mac is an Apple Silicon one that you need to specify arch 
x86_64, as in
   sudo arch -arch x86_64 /usr/bin/perl 
/Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-update

(all on one line) because otherwise perl will build and install F::Q and 
friends for Apple Silicon....

My computer does indeed use Apple Silicon. Specifying the path to perl had no effect:

% sudo arch -arch x86_64 /usr/bin/perl /Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-update

Starting with /...[elided].../ this dialog will disappear.
Reading '/Users/jdlh/.cpan/Metadata'
  Database was generated on Fri, 22 Dec 2023 23:54:07 GMT
Test2 is up to date (1.302198).
Finance::Quote is up to date (1.58).
JSON::Parse is up to date (0.62).
%

Maybe my installation somehow installed JSON::Parse for Apple Silicon, and that is why the GnuCash application cannot find it.

I would try to uninstall JSON::Parse and Finance::Quote, and let cpan or gnc-fq-update reinstall them, but a brief web search seems to say that CPAN has no command to uninstall modules.

I do think I have found where the actual files might be:

% ls -ld /Library/Perl/5.30/{,darwin-thread-multi-2level/auto/}{JSON/Parse,Finance/Quote}
ls: /Library/Perl/5.30/JSON/Parse: No such file or directory
drwxr-xr-x  59 root  wheel  1888 21 Dec 00:32 /Library/Perl/5.30/Finance/Quote drwxr-xr-x   3 root  wheel    96 10 May  2022 /Library/Perl/5.30/darwin-thread-multi-2level/auto/Finance/Quote drwxr-xr-x   4 root  wheel   128 21 Dec 00:32 /Library/Perl/5.30/darwin-thread-multi-2level/auto/JSON/Parse

Is it significant that Finance::Quote has an entry in /Library/Perl/5.30/, but JSON::Parse does not?

Thank you for your help, John.
     —Jim DeLaHunt


_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to