[GNC] Cannot build GNUCash 5.10 for GNU/Linux

Stephen M. Butler kg7je at arrl.net
Thu Apr 24 15:44:08 EDT 2025


What version of Linux are you on?

This is the version of boost on my Ubuntu 24.10 box:  Version: 
1.83.0.2ubuntu1


On 4/24/25 10:17, Shiftag wrote:
> Hi,
>
> So I tried to build GnuCash-5.11 and I got the exact same issue. So I 
> applied the changes for the gnc-quotes.cpp but I ended up with the 
> exact same error.
>
> Below, the patch with gnc-quotes.cpp changes.
>
> diff --color -Naur a/libgnucash/app-utils/gnc-quotes.cpp 
> b/libgnucash/app-utils/gnc-quotes.cpp
> --- a/libgnucash/app-utils/gnc-quotes.cpp    2025-04-24 
> 21:09:58.905159120 +0400
> +++ b/libgnucash/app-utils/gnc-quotes.cpp    2025-04-24 
> 21:09:48.140909606 +0400
> @@ -39,7 +39,16 @@
>  #ifdef BOOST_WINDOWS_API
>  #include <boost/process/windows.hpp>
>  #endif
> +#if BOOST_VERSION < 108800
>  #include <boost/process.hpp>
> +namespace process = boost::process;
> +#else
> +#include <boost/process/v1/child.hpp>
> +#include <boost/process/v1/io.hpp>
> +#include <boost/process/v1/pipe.hpp>
> +#include <boost/process/v1/start_dir.hpp>
> +namespace process = boost::process::v1;
> +#endif
>  #include <boost/regex.hpp>
>  #include <boost/property_tree/ptree.hpp>
>  #include <boost/property_tree/json_parser.hpp>
>
> It is maybe related to Boost version 1.88.0 but maybe on something 
> different.
>
>
> On 4/22/25 1:41 AM, Stephen M. Butler wrote:
>> I just did a successful build of v5.10 on Linux.  Ubuntu 24.10.
>>
>> I'm doing this via git and checkout of 5.10.
>>
>> Also successful was a build of the most recent set of updates via a 
>> git pull that gives me v5.11-3.
>>
>> Stephen M Butler
>> Stephen.M.Butler51 at gmail.com
>> kg7je at arrl.net
>> 253-350-0166
>> -------------------------------------------
>> GnuPG Fingerprint:  8A25 9726 D439 758D D846 E5D4 282A 5477 0385 81D8
>>
>> On 4/21/25 14:03, Brad Morrison wrote:
>>> Hi Shifttag/GNUCash users,
>>>
>>> Is there a specific reason that you are trying to build the 5.10 
>>> version
>>> of GNUCash? The current version is 5.11 -
>>> https://gnucash.org/download.phtml
>>>
>>> Also, which Linux distro are you using?
>>> https://distrowatch.com/dwres.php?resource=popularity
>>>
>>> Using the Flatpak of GNUCash
>>> (https://flathub.org/apps/org.gnucash.GnuCash) might be an option, if
>>> you are using a Linux distro that support Flatpak -
>>> https://flatpak.org/setup/ & https://flathub.org/setup
>>>
>>> ---
>>> Thanks,
>>>
>>> Brad - https://www.facebook.com/brad.morrison.12327/ &
>>> https://nextdoor.com/profile/01mP46jj8KCzj3sP4 &
>>> https://norcal.social/@BradMorrison
>>>
>>> On 2025-04-20 06:18, Shiftag wrote:
>>>
>>>> Hello,
>>>>
>>>> I have an issue building GnuCash 5.10 on Linux. I'm having the 
>>>> following error at make step:
>>>>
>>>> [ 21%] Building C object 
>>>> libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/gnc-prefs-utils.c.o
>>>> [ 21%] Building CXX object 
>>>> libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/gnc-quotes.cpp.o
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:136:9: 
>>>> error: 'environment' in namespace 'bp' does not name a type
>>>> 136 |     bp::environment m_env;
>>>> |         ^~~~~~~~~~~
>>>> In file included from 
>>>> /usr/include/boost/process/v2/environment.hpp:28,
>>>> from /usr/include/boost/process/environment.hpp:1,
>>>> from /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:23:
>>>> /usr/include/boost/process/v2/detail/environment_posix.hpp:28:11: 
>>>> note: 'boost::process::v2::environment' declared here
>>>> 28 | namespace environment
>>>> |           ^~~~~~~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp: In 
>>>> constructor 'GncFQQuoteSource::GncFQQuoteSource()':
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:155:11: 
>>>> error: 'search_path' is not a member of 'bp'
>>>> 155 | c_cmd{bp::search_path("perl")},
>>>> |           ^~~~~~~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:156:27: 
>>>> error: class 'GncFQQuoteSource' does not have any field named 'm_env'
>>>> 156 | m_version{}, m_sources{}, 
>>>> m_env{boost::this_process::environment()}
>>>> |                           ^~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:156:40: 
>>>> error: 'boost::this_process' has not been declared
>>>> 156 | m_version{}, m_sources{}, 
>>>> m_env{boost::this_process::environment()}
>>>> |                                        ^~~~~~~~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:155:1: 
>>>> error: no matching function for call to 
>>>> 'boost::filesystem::path::path(<brace-enclosed initializer list>)'
>>>> 155 | c_cmd{bp::search_path("perl")},
>>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> In file included from 
>>>> /usr/include/boost/process/v2/detail/config.hpp:65,
>>>> from /usr/include/boost/process/v2/environment.hpp:13:
>>>> /usr/include/boost/filesystem/path.hpp:452:5: note: candidate: 
>>>> 'template<class InputIterator, class> 
>>>> boost::filesystem::path::path(InputIterator, InputIterator, const 
>>>> codecvt_type&)'
>>>> 452 |     path(InputIterator begin, InputIterator end, codecvt_type 
>>>> const& cvt)
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:452:5: note: candidate 
>>>> expects 3 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:433:5: note: candidate: 
>>>> 'template<class InputIterator, class> 
>>>> boost::filesystem::path::path(InputIterator, InputIterator)'
>>>> 433 |     path(InputIterator begin, InputIterator end)
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:433:5: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:372:14: note: candidate: 
>>>> 'template<class Source, class> boost::filesystem::path::path(const 
>>>> Source&, const codecvt_type&)'
>>>> 372 |     explicit path(Source const& source, codecvt_type const& cvt)
>>>> |              ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:372:14: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:358:5: note: candidate: 
>>>> 'template<class Source, class> boost::filesystem::path::path(const 
>>>> Source&)'
>>>> 358 |     path(Source const& source)
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:358:5: note: template 
>>>> argument deduction/substitution failed:
>>>> /usr/include/boost/filesystem/path.hpp:422:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const value_type*, const 
>>>> value_type*, const codecvt_type&)'
>>>> 422 |     path(const value_type* begin, const value_type* end, 
>>>> codecvt_type const&) : m_pathname(begin, end) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:422:5: note: candidate 
>>>> expects 3 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:421:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const value_type*, const value_type*)'
>>>> 421 |     path(const value_type* begin, const value_type* end) : 
>>>> m_pathname(begin, end) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:421:5: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:402:5: note: candidate: 
>>>> 'boost::filesystem::path::path(string_type&&, const codecvt_type&)'
>>>> 402 |     path(string_type&& s, codecvt_type const&) noexcept : 
>>>> m_pathname(static_cast< string_type&& >(s))
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:402:5: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:399:5: note: candidate: 
>>>> 'boost::filesystem::path::path(string_type&&)'
>>>> 399 |     path(string_type&& s) noexcept : m_pathname(static_cast< 
>>>> string_type&& >(s))
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:399:5: note: conversion of 
>>>> argument 1 would be ill-formed:
>>>> /usr/include/boost/filesystem/path.hpp:380:5: note: candidate: 
>>>> 'boost::filesystem::path::path(boost::filesystem::path&&, const 
>>>> codecvt_type&)'
>>>> 380 |     path(path&& p, codecvt_type const&) noexcept : 
>>>> m_pathname(static_cast< string_type&& >(p.m_pathname))
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:380:5: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:377:5: note: candidate: 
>>>> 'boost::filesystem::path::path(boost::filesystem::path&&)'
>>>> 377 |     path(path&& p) noexcept : m_pathname(static_cast< 
>>>> string_type&& >(p.m_pathname))
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:377:5: note: conversion of 
>>>> argument 1 would be ill-formed:
>>>> /usr/include/boost/filesystem/path.hpp:346:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const std::basic_string_view<char>&, 
>>>> const codecvt_type&)'
>>>> 346 |     path(std::basic_string_view< value_type > const& s, 
>>>> codecvt_type const&) : m_pathname(s) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:346:5: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:345:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const std::basic_string_view<char>&)'
>>>> 345 |     path(std::basic_string_view< value_type > const& s) : 
>>>> m_pathname(s) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:345:5: note: conversion of 
>>>> argument 1 would be ill-formed:
>>>> /usr/include/boost/filesystem/path.hpp:343:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const string_type&, const 
>>>> codecvt_type&)'
>>>> 343 |     path(string_type const& s, codecvt_type const&) : 
>>>> m_pathname(s) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:343:5: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:342:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const string_type&)'
>>>> 342 |     path(string_type const& s) : m_pathname(s) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:342:5: note: conversion of 
>>>> argument 1 would be ill-formed:
>>>> /usr/include/boost/filesystem/path.hpp:341:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const value_type*, const 
>>>> codecvt_type&)'
>>>> 341 |     path(const value_type* s, codecvt_type const&) : 
>>>> m_pathname(s) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:341:5: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:340:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const value_type*)'
>>>> 340 |     path(const value_type* s) : m_pathname(s) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:340:5: note: conversion of 
>>>> argument 1 would be ill-formed:
>>>> /usr/include/boost/filesystem/path.hpp:338:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const boost::filesystem::path&, 
>>>> const codecvt_type&)'
>>>> 338 |     path(path const& p, codecvt_type const&) : 
>>>> m_pathname(p.m_pathname) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:338:5: note: candidate 
>>>> expects 2 arguments, 1 provided
>>>> /usr/include/boost/filesystem/path.hpp:337:5: note: candidate: 
>>>> 'boost::filesystem::path::path(const boost::filesystem::path&)'
>>>> 337 |     path(path const& p) : m_pathname(p.m_pathname) {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:337:5: note: conversion of 
>>>> argument 1 would be ill-formed:
>>>> /usr/include/boost/filesystem/path.hpp:336:5: note: candidate: 
>>>> 'boost::filesystem::path::path()'
>>>> 336 |     path() noexcept {}
>>>> |     ^~~~
>>>> /usr/include/boost/filesystem/path.hpp:336:5: note: candidate 
>>>> expects 0 arguments, 1 provided
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp: In 
>>>> member function 'QuoteResult GncFQQuoteSource::run_cmd(const 
>>>> StrVec&, const std::string&) const':
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:210:30: 
>>>> error: 'buffer' is not a member of 'bp'
>>>> 210 |         auto input_buf = bp::buffer (json_string);
>>>> |                              ^~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:210:30: 
>>>> note: suggested alternatives:
>>>> In file included from 
>>>> /usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:22,
>>>> from 
>>>> /usr/include/boost/asio/detail/reactive_descriptor_service.hpp:31,
>>>> from /usr/include/boost/asio/posix/basic_descriptor.hpp:37,
>>>> from /usr/include/boost/asio/posix/basic_stream_descriptor.hpp:19,
>>>> from /usr/include/boost/process/v2/detail/process_handle_fd.hpp:28,
>>>> from /usr/include/boost/process/v2/process_handle.hpp:15,
>>>> from /usr/include/boost/process/v2/ext/exe.hpp:12,
>>>> from /usr/include/boost/process/v2/process.hpp:18,
>>>> from /usr/include/boost/process/v2/execute.hpp:8,
>>>> from /usr/include/boost/process/execute.hpp:1,
>>>> from /usr/include/boost/process.hpp:19,
>>>> from /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:42:
>>>> /usr/include/boost/asio/registered_buffer.hpp:287:32: note: 
>>>> 'boost::asio::buffer'
>>>> 287 | inline const_registered_buffer buffer(
>>>> |                                ^~~~~~
>>>> In file included from 
>>>> /usr/include/boost/iostreams/detail/streambuf/indirect_streambuf.hpp:24, 
>>>>
>>>> from /usr/include/boost/iostreams/stream_buffer.hpp:22,
>>>> from /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:47:
>>>> /usr/include/boost/iostreams/detail/buffer.hpp:83:7: note: 
>>>> 'boost::iostreams::detail::buffer'
>>>> 83 | class buffer : public basic_buffer<Ch, Alloc> {
>>>> |       ^~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:211:13: 
>>>> error: 'child' is not a member of 'bp'
>>>> 211 |         bp::child process;
>>>> |             ^~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:212:9: 
>>>> error: 'process' was not declared in this scope
>>>> 212 |         process = bp::child(c_cmd, args,
>>>> |         ^~~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:212:9: 
>>>> note: suggested alternatives:
>>>> /usr/include/boost/process/v2/detail/config.hpp:85:1: note: 
>>>> 'boost::process'
>>>> 85 | BOOST_PROCESS_V2_BEGIN_NAMESPACE
>>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> /usr/include/boost/process/v2/process.hpp:393:25: note: 
>>>> 'boost::process::v2::process'
>>>> 393 | typedef basic_process<> process;
>>>> |                         ^~~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:212:23: 
>>>> error: 'child' is not a member of 'bp'
>>>> 212 |         process = bp::child(c_cmd, args,
>>>> |                       ^~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:213:33: 
>>>> error: 'std_out' is not a member of 'bp'
>>>> 213 |                             bp::std_out > out_buf,
>>>> |                                 ^~~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:214:33: 
>>>> error: 'std_err' is not a member of 'bp'
>>>> 214 |                             bp::std_err > err_buf,
>>>> |                                 ^~~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:215:33: 
>>>> error: 'std_in' is not a member of 'bp'
>>>> 215 |                             bp::std_in < input_buf,
>>>> |                                 ^~~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:219:29: 
>>>> error: 'm_env' was not declared in this scope
>>>> 219 |                             m_env,
>>>> |                             ^~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp: In 
>>>> member function 'void GncFQQuoteSource::set_api_key(const char*, 
>>>> const char*)':
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:264:9: 
>>>> error: 'm_env' was not declared in this scope
>>>> 264 |         m_env[api_env] = key;
>>>> |         ^~~~~
>>>> /tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:269:38: 
>>>> error: 'm_env' was not declared in this scope
>>>> 269 |         if (api_key == av_api_key && m_env.find(api_env) == 
>>>> m_env.end())
>>>> |                                      ^~~~~
>>>> make[2]: *** 
>>>> [libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/build.make:182: 
>>>> libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/gnc-quotes.cpp.o] 
>>>> Error 1
>>>> make[1]: *** [CMakeFiles/Makefile2:3456: 
>>>> libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/all] Error 2
>>>> make: *** [Makefile:166: all] Error 2
>>>>
>>>> I'm not having any error or warning before those issues. Do I 
>>>> missed a library ?
>>>>
>>>> _______________________________________________
>>>> 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
>>>> -----
>>>> 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
>>> -----
>>> 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
>> -----
>> 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