[GNC] Finance::Quote on Mac M1

John Ralls jralls at ceridwen.us
Thu Aug 19 23:36:28 EDT 2021


You didn't read my letter very carefully: You should be able to get quotes now if you do `sudo cpan -i Test2; sudo cpan -f -i B::keywords; sudo cpan -i Finance::Quote`. The system perl is a universal binary and works in both native and Rosetta2 environments. Perl from other sources may or may not work and will regardless require modifying Gnucash.app/Contents/Resources/etc/gnucash/environment to set the perl path and @INC so that GnuCash can find the right F::Q. If you insist on that you're on your own.

As for a native M1 build, I haven't decided yet whether to do that before the next major nettle release. I really don't like pushing development software at ordinary users, it tends to make for unpleasant surprises. Meanwhile GnuCash seems to work well under Rosetta2 so there's not a strong argument for doing a native build until nettle's ARM64 implementation is in a stable release.

Regards,
John Ralls


> On Aug 19, 2021, at 3:12 PM, davelist--- via gnucash-user <gnucash-user at gnucash.org> wrote:
> 
> So does this mean a future official build of gnucash will have an ARM version and we'll be able to get quotes again? That would be great!
> 
> Thanks,
> Dave
> 
>> On Aug 19, 2021, at 5:43 PM, John Ralls <jralls at ceridwen.us> wrote:
>> 
>> You can't escape the problems. ;-)
>> 
>> FWIW I just completed building on an M1 with Monterey. Amazingly, there were only a few minor problems, one of which has nothing to do with M1 or Monterey: Boost's download site changed.
>> 
>> Libdbi and libdbi-drivers last release tarballs were made in 2013 and include linker arguments that aren't supported. I switched the build to git clones so that the build can be regenerated from scratch. Both that and the Boost change are committed to gnucash-on-osx.
>> 
>> The other problem, and perhaps the one that stopped you on MacPorts, is that even the latest release of Nettle from last month doesn't support ARM64. It tries to compile ARM32 and fails noisily for hundreds of unrecognized assembler instructions. The solution is to clone the master branch from http://git.lysator.liu.se/nettle/nettle and build that instead.
>> 
>> BTW, on Finance::Quote I force-installed B::Keywords and installed Test2, after which everything else built correctly. Once F::Q was installed in /Library/Perl GnuCash was able to recognize it and enable the Get Quotes button.
>> 
>> Regards,
>> John Ralls
>> 
>> 
>> 
>> 
>>> On Aug 19, 2021, at 1:40 AM, Peter West <pbw at pbw.id.au> wrote:
>>> 
>>> Hi John,
>>> 
>>> I had already run into problems trying to build GnuCash on MacPorts. I was encouraged to try to build by reading <https://wiki.gnucash.org/wiki/MacOS/Quartz>.
>>> 
>>> Peter
>>>>>> Peter West
>>> pbw at ehealth.id.au
>>> “For behold, when the sound of your greeting came to my ears, the baby in my womb leaped for joy.”
>>> 
>>>> On 17 Aug 2021, at 1:02 am, John Ralls <jralls at ceridwen.us> wrote:
>>>> 
>>>> 
>>>> Support for gtk-osx is on its mailing list, https://mail.gnome.org/mailman/listinfo/gtk-osx-users-list, but before you go there I'll remind you that one of gtk-osx's basic requirements is that you must not have Homebrew or MacPorts visible to it.
>>>> 
>>>> Since you have MacPorts installed already the simplest way forward is to use that to build GnuCash. 
>>>> 
>>>> That said there's no shared code between anything to do with GnuCash and perl or any CPAN modules beyond the macOS SDK. Building GnuCash from source won't help you get Finance::Quote going.
>>>> 
>>>> Regards,
>>>> John Ralls
>>>> 
>>>>> On Aug 16, 2021, at 7:18 AM, Peter West <pbw at pbw.id.au> wrote:
>>>>> 
>>>>> I removed the offending PREFIX line from jhbuildrc-custom, and immediately ran into a similar problem.
>>>>> 
>>>>> File "/Users/gtkdev/Source/jhbuild/jhbuild/config.py", line 194, in load
>>>>> execfile(filename, config)
>>>>> File "/Users/gtkdev/Source/jhbuild/jhbuild/utils/compat.py", line 67, in execfile
>>>>> exec(code, globals, locals)
>>>>> File "/Users/gtkdev/.config/jhbuildrc", line 470, in <module>
>>>>> exec(compile(open(_user_rc, "rb").read(), _user_rc, 'exec'))
>>>>> File "/Users/gtkdev/.config/jhbuildrc-custom", line 26, in <module>
>>>>> module_extra_env['icu'] = {'CXXFLAGS':os.environ['CXXFLAGS'] + ' -std=c++17'}
>>>>> File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/os.py", line 675, in __getitem__
>>>>> raise KeyError(key) from None
>>>>> KeyError: 'CXXFLAGS'
>>>>> jhbuild: could not load config file
>>>>> 
>>>>> In this one, there is obviously a default value, but the Error is propagating all the way up.
>>>>> 
>>>>> Peter
>>>>> 
>>>>> 
>>>>>>>>>> Peter West
>>>>> pbw at ehealth.id.au
>>>>> “For behold, when the sound of your greeting came to my ears, the baby in my womb leaped for joy.”
>>>>> 
>>>>>> On 16 Aug 2021, at 8:21 pm, Peter West <pbw at pbw.id.au> wrote:
>>>>>> 
>>>>>> I’ve decided to go the whole hog and build GNC. Hopefully, I can get M1-specific GNC and Finance::Quote working together without any mysterious issues.
>>>>>> 
>>>>>> After gtk-osx-setup.sh, I try to run jhbuild bootstrap-gtk-osx, and it fails immediately.
>>>>>> 
>>>>>> ~ 20:14:24$ jhbuild bootstrap-gtk-osx
>>>>>> Loading .env environment variables...
>>>>>> Traceback (most recent call last):
>>>>>> File "/Users/gtkdev/Source/jhbuild/jhbuild/config.py", line 194, in load
>>>>>> execfile(filename, config)
>>>>>> File "/Users/gtkdev/Source/jhbuild/jhbuild/utils/compat.py", line 67, in execfile
>>>>>> exec(code, globals, locals)
>>>>>> File "/Users/gtkdev/.config/jhbuildrc", line 470, in <module>
>>>>>> exec(compile(open(_user_rc, "rb").read(), _user_rc, 'exec'))
>>>>>> File "/Users/gtkdev/.config/jhbuildrc-custom", line 3, in <module>
>>>>>> prefix = os.environ['PREFIX']
>>>>>> File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/os.py", line 675, in __getitem__
>>>>>> raise KeyError(key) from None
>>>>>> KeyError: 'PREFIX'
>>>>>> jhbuild: could not load config file
>>>>>> 
>>>>>> 
>>>>>> I'
>>>>>> 
>>>>>> The first thing in .config/jhbuildrc-custom is
>>>>>> prefix = os.environ['PREFIX’]
>>>>>> 
>>>>>> So there is no envar PREFIX defined in my environment. That’s easy enough to fix, but what is it supposed to be? Should this Error jusst be caught and defaulted?
>>>>>> 
>>>>>> I don’t do python, so I don’t know how the error/exception process works.
>>>>>> 
>>>>>> Peter
>>>>>> 
>>>>>>>>>>>> Peter West
>>>>>> pbw at ehealth.id.au <mailto:pbw at ehealth.id.au>
>>>>>> “For behold, when the sound of your greeting came to my ears, the baby in my womb leaped for joy.”
>>>>>> 
>>>>>>> On 4 Aug 2021, at 7:39 pm, Geoff <cleanoutmyshed at gmail.com <mailto:cleanoutmyshed at gmail.com>> wrote:
>>>>>>> 
>>>>>>> Yes, I don't like doing forced installations either, but this particular module isn't very important in the overall Finance::Quote scheme of events.
>>>>>>> 
>>>>>>> Here are two suggestions.
>>>>>>> 
>>>>>>> (1) Hack.  I'm not familiar with MAC directory structures, but I had a look at the particular test that is failing, and I reckon that if you create an empty file here it might just trick it into passing:
>>>>>>> 
>>>>>>> /System/Library/Perl/5.30/darwin-thread-multi-2level/CORE/keywords.h
>>>>>>> 
>>>>>>> 
>>>>>>> (2) Manual install of B::Keywords without using CPAN:
>>>>>>> (a) Download B-Keywords-1.22.tar.gz from here:
>>>>>>> https://metacpan.org/pod/B::Keywords <https://metacpan.org/pod/B::Keywords>
>>>>>>> 
>>>>>>> (b) Unzip and untar it to a temp directory.
>>>>>>> 
>>>>>>> (c) From the command line in that directory:
>>>>>>> perl Makefile.pl
>>>>>>> gmake
>>>>>>> gmake test
>>>>>>> gmake install
>>>>>>> 
>>>>>>> [Excuse my MAC ignorance - hopefully you have gmake or an equivalent make command that will do the job.]
>>>>>>> 
>>>>>>> If either of those work, go back to CPAN and try to install Finance::Quote normally.
>>>>>>> 
>>>>>>> 
>>>>>>> Good luck.
>>>>>>> 
>>>>>>> Geoff
>>>>>>> =====
>>>>>>> 
>>>>>>> On 4/08/2021 6:38 pm, Peter West wrote:
>>>>>>>> It sill reports the same failure, even though I run
>>>>>>>> sudo cpan -f -i B::Keywords
>>>>>>>>>>>>>>>> Peter West
>>>>>>>> pbw at ehealth.id.au <mailto:pbw at ehealth.id.au>
>>>>>>>> But immediately Jesus spoke to them, saying, “Take heart; it is I. Do not be afraid.”
>>>>>>>>> On 4 Aug 2021, at 5:53 pm, Geoff <cleanoutmyshed at gmail.com <mailto:cleanoutmyshed at gmail.com>> wrote:
>>>>>>>>> 
>>>>>>>>> Try and force the installation of B::Keywords:
>>>>>>>>> 
>>>>>>>>> cpan> force install B::Keywords
>>>>>>>>> 
>>>>>>>>> From: https://www.thegeekstuff.com/2013/06/cpan-force-install-perl-module/ <https://www.thegeekstuff.com/2013/06/cpan-force-install-perl-module/>
>>>>>>>>> 
>>>>>>>>> If that works, try to reinstall Finance::Quote normally.
>>>>>>>>> 
>>>>>>>>> Fingers crossed.
>>>>>>>>> 
>>>>>>>>> Geoff
>>>>>>>>> =====
>>>>>>>>> 
>>>>>>>>> On 4/08/2021 5:24 pm, Peter West wrote:
>>>>>>>>>> Here’s the output.
>>>>>>>>>> Rosie:.30/darwin-thread-multi-2level 16:53:50$ sudo cpan -i Finance::Quote
>>>>>>>>>> Password:
>>>>>>>>>> Loading internal logger. Log::Log4perl recommended for better logging
>>>>>>>>>> CPAN::SQLite not installed, trying to work without
>>>>>>>>>> Reading '/Users/pbw/.cpan/sources/authors/01mailrc.txt.gz'
>>>>>>>>>> ............................................................................DONE
>>>>>>>>>> Reading '/Users/pbw/.cpan/sources/modules/02packages.details.txt.gz'
>>>>>>>>>> Database was generated on Wed, 04 Aug 2021 04:17:03 GMT
>>>>>>>>>> .............
>>>>>>>>>> New CPAN.pm version (v2.28) available.
>>>>>>>>>> [Currently running version is v2.22]
>>>>>>>>>> You might want to try
>>>>>>>>>> install CPAN
>>>>>>>>>> reload cpan
>>>>>>>>>> to both upgrade CPAN.pm and run the new version without leaving
>>>>>>>>>> the current session.
>>>>>>>>>> ...............................................................DONE
>>>>>>>>>> Reading '/Users/pbw/.cpan/sources/modules/03modlist.data.gz'
>>>>>>>>>> DONE
>>>>>>>>>> Running install for module 'Finance::Quote'
>>>>>>>>>> CPAN: Module::Signature security checks disabled because Module::Signature
>>>>>>>>>> not installed.  Please consider installing the Module::Signature module.
>>>>>>>>>> You may also need to be able to connect over the Internet to the public
>>>>>>>>>> key servers like pool.sks-keyservers.net <http://pool.sks-keyservers.net> or pgp.mit.edu <http://pgp.mit.edu>.
>>>>>>>>>> Checksum for /Users/pbw/.cpan/sources/authors/id/B/BP/BPSCHUCK/Finance-Quote-1.51.tar.gz ok
>>>>>>>>>> Configuring B/BP/BPSCHUCK/Finance-Quote-1.51.tar.gz with Makefile.PL
>>>>>>>>>> CPAN::Reporter not installed.  No reports will be sent.
>>>>>>>>>> Checking if your kit is complete...
>>>>>>>>>> Looks good
>>>>>>>>>> Warning: prerequisite Test::Perl::Critic 0 not found.
>>>>>>>>>> Generating a Unix-style Makefile
>>>>>>>>>> Writing Makefile for Finance::Quote
>>>>>>>>>> Writing MYMETA.yml and MYMETA.json
>>>>>>>>>> BPSCHUCK/Finance-Quote-1.51.tar.gz
>>>>>>>>>> /usr/bin/perl Makefile.PL -- OK
>>>>>>>>>> Running make for B/BP/BPSCHUCK/Finance-Quote-1.51.tar.gz
>>>>>>>>>> ---- Unsatisfied dependencies detected during ----
>>>>>>>>>> ----    BPSCHUCK/Finance-Quote-1.51.tar.gz    ----
>>>>>>>>>> Test::Perl::Critic [build_requires]
>>>>>>>>>> Running install for module 'Test::Perl::Critic'
>>>>>>>>>> Checksum for /Users/pbw/.cpan/sources/authors/id/P/PE/PETDANCE/Test-Perl-Critic-1.04.tar.gz ok
>>>>>>>>>> Configuring P/PE/PETDANCE/Test-Perl-Critic-1.04.tar.gz with Build.PL
>>>>>>>>>> Checking prerequisites...
>>>>>>>>>> requires:
>>>>>>>>>> !  Perl::Critic is not installed
>>>>>>>>>> !  Perl::Critic::Utils is not installed
>>>>>>>>>> !  Perl::Critic::Violation is not installed
>>>>>>>>>> ERRORS/WARNINGS FOUND IN PREREQUISITES.  You may wish to install the versions
>>>>>>>>>> of the modules indicated above before proceeding with this installation
>>>>>>>>>> Created MYMETA.yml and MYMETA.json
>>>>>>>>>> Creating new 'Build' script for 'Test-Perl-Critic' version '1.04'
>>>>>>>>>> PETDANCE/Test-Perl-Critic-1.04.tar.gz
>>>>>>>>>> /usr/bin/perl Build.PL -- OK
>>>>>>>>>> Running Build for P/PE/PETDANCE/Test-Perl-Critic-1.04.tar.gz
>>>>>>>>>> ---- Unsatisfied dependencies detected during ----
>>>>>>>>>> ----   PETDANCE/Test-Perl-Critic-1.04.tar.gz  ----
>>>>>>>>>> Perl::Critic [requires]
>>>>>>>>>> Perl::Critic::Utils [requires]
>>>>>>>>>> Perl::Critic::Violation [requires]
>>>>>>>>>> Running install for module 'Perl::Critic'
>>>>>>>>>> Checksum for /Users/pbw/.cpan/sources/authors/id/P/PE/PETDANCE/Perl-Critic-1.140.tar.gz ok
>>>>>>>>>> Configuring P/PE/PETDANCE/Perl-Critic-1.140.tar.gz with Build.PL
>>>>>>>>>> Checking prerequisites...
>>>>>>>>>> requires:
>>>>>>>>>> !  B::Keywords is not installed
>>>>>>>>>> ERRORS/WARNINGS FOUND IN PREREQUISITES.  You may wish to install the versions
>>>>>>>>>> of the modules indicated above before proceeding with this installation
>>>>>>>>>> Created MYMETA.yml and MYMETA.json
>>>>>>>>>> Creating new 'Build' script for 'Perl-Critic' version '1.140'
>>>>>>>>>> PETDANCE/Perl-Critic-1.140.tar.gz
>>>>>>>>>> /usr/bin/perl Build.PL -- OK
>>>>>>>>>> Running Build for P/PE/PETDANCE/Perl-Critic-1.140.tar.gz
>>>>>>>>>> ---- Unsatisfied dependencies detected during ----
>>>>>>>>>> ----     PETDANCE/Perl-Critic-1.140.tar.gz    ----
>>>>>>>>>> B::Keywords [requires]
>>>>>>>>>> Running install for module 'B::Keywords'
>>>>>>>>>> Checksum for /Users/pbw/.cpan/sources/authors/id/R/RU/RURBAN/B-Keywords-1.22.tar.gz ok
>>>>>>>>>> Configuring R/RU/RURBAN/B-Keywords-1.22.tar.gz with Makefile.PL
>>>>>>>>>> Checking if your kit is complete...
>>>>>>>>>> Looks good
>>>>>>>>>> Generating a Unix-style Makefile
>>>>>>>>>> Writing Makefile for B::Keywords
>>>>>>>>>> Writing MYMETA.yml and MYMETA.json
>>>>>>>>>> RURBAN/B-Keywords-1.22.tar.gz
>>>>>>>>>> /usr/bin/perl Makefile.PL -- OK
>>>>>>>>>> Running make for R/RU/RURBAN/B-Keywords-1.22.tar.gz
>>>>>>>>>> cp lib/B/Keywords.pm blib/lib/B/Keywords.pm
>>>>>>>>>> Manifying 1 pod document
>>>>>>>>>> RURBAN/B-Keywords-1.22.tar.gz
>>>>>>>>>> /usr/bin/make -- OK
>>>>>>>>>> Running make test for RURBAN/B-Keywords-1.22.tar.gz
>>>>>>>>>> PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
>>>>>>>>>> t/10basic.t ................. ok
>>>>>>>>>> t/11keywords.t .............. Can't open /System/Library/Perl/5.30/darwin-thread-multi-2level/CORE/keywords.h: No such file or directory at t/11keywords.t line 25.
>>>>>>>>>> t/11keywords.t .............. skipped: (no reason given)
>>>>>>>>>> t/export.t .................. ok
>>>>>>>>>> t/z_kwalitee.t .............. skipped: This test is only run for the module author
>>>>>>>>>> t/z_meta.t .................. skipped: This test is only run for the module author
>>>>>>>>>> t/z_perl_minimum_version.t .. skipped: Author tests not required for installation
>>>>>>>>>> t/z_pod-coverage.t .......... skipped: This test is only run for the module author
>>>>>>>>>> t/z_pod.t ................... ok
>>>>>>>>>> Test Summary Report
>>>>>>>>>> -------------------
>>>>>>>>>> t/11keywords.t            (Wstat: 512 Tests: 0 Failed: 0)
>>>>>>>>>> Non-zero exit status: 2
>>>>>>>>>> Files=8, Tests=15,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.18 cusr  0.04 csys =  0.25 CPU)
>>>>>>>>>> Result: FAIL
>>>>>>>>>> Failed 1/8 test programs. 0/15 subtests failed.
>>>>>>>>>> make: *** [test_dynamic] Error 255
>>>>>>>>>> RURBAN/B-Keywords-1.22.tar.gz
>>>>>>>>>> /usr/bin/make test -- NOT OK
>>>>>>>>>> //hint// to see the cpan-testers results for installing this module, try:
>>>>>>>>>> reports RURBAN/B-Keywords-1.22.tar.gz
>>>>>>>>>> Stopping: 'install' failed for 'B::Keywords'.
>>>>>>>>>>> On 4 Aug 2021, at 5:06 pm, Geoff <cleanoutmyshed at gmail.com <mailto:cleanoutmyshed at gmail.com>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Hi Peter
>>>>>>>>>>> 
>>>>>>>>>>> How about sending through some diagnostics please?  Screenshot or error log.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks
>>>>>>>>>>> 
>>>>>>>>>>> Geoff
>>>>>>>>>>> =====
>>>>>>>>>>> 
>>>>>>>>>>> On 4/08/2021 5:03 pm, Peter West wrote:
>>>>>>>>>>>> I have been trying to get Finance::Quote installed on my Mac M1, without success. I have tried installing using
>>>>>>>>>>>> cpan -i Date::Manip
>>>>>>>>>>>> cpan -i Finance::Quote
>>>>>>>>>>>> Installing Date::Manip works, but Finance::Quote fails installing B::Keywords.
>>>>>>>>>>>> Any ideas?
>>>>>>>>>>>>>>>>>>>>>>>> Peter West
>>>>>>>>>>>> pbw at ehealth.id.au <mailto:pbw at ehealth.id.au>
>>>>>>>>>>>> But immediately Jesus spoke to them, saying, “Take heart; it is I. Do not be afraid.”
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> gnucash-user mailing list
>>>>>>>>>>>> gnucash-user at gnucash.org
>>>>>>>>>>>> To update your subscription preferences or to unsubscribe:
>>>>>>>>>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>>>>>>>>>>> If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>>>>>>>>>>> -----
>>>>>>>>>>>> Please remember to CC this list on all your replies.
>>>>>>>>>>>> You can do this by using Reply-To-List or Reply-All.
>>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> gnucash-user mailing list
>>>>> gnucash-user at gnucash.org
>>>>> To update your subscription preferences or to unsubscribe:
>>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>>>> If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>>>> -----
>>>>> Please remember to CC this list on all your replies.
>>>>> You can do this by using Reply-To-List or Reply-All.
>>> 
>> 
>> _______________________________________________
>> gnucash-user mailing list
>> gnucash-user at gnucash.org
>> To update your subscription preferences or to unsubscribe:
>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>> If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>> -----
>> Please remember to CC this list on all your replies.
>> You can do this by using Reply-To-List or Reply-All.
> 
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> To update your subscription preferences or to unsubscribe:
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.



More information about the gnucash-user mailing list