[GNC] Cannot build GNUCash 5.10 for GNU/Linux
Shiftag
shiftag at nanotek.info
Thu Apr 24 13:17:54 EDT 2025
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