[Therion] Therion fails on Fedora 41

Bill Gee bgee at campercaver.net
Sat Nov 9 13:25:41 CET 2024


This is a clean folder since it is a new version of Therion.  I did not 
try to recompile 6.2.0.

"branch master" is not a term I understand.  Does that refer to the git 
repository?

I did figure this out.  The solution is to use the git repository rather 
than the tar.gz file that is on the web site.  My revised compile 
process is this:

0) Open a bash window
1) Change to ~/Installs
2) git clone https://github.com/therion/therion
2.5) Change to ~/Installs/therion (should be a new directory)
3) mkdir build
4) perl makeconfig.pl
5) cd build
6) cmake ..
7) make -j 4
8) Become root
9) Change to the build directory.
10) make install

With this I now have working Therion on Fedora 41.

Thanks!

===============
Bill Gee

On 11/9/24 01:57, Matěj Plch wrote:
> Hello,
> 1. If you upgrade your OS, you should use a clean build folder,
> because libraries which CMake previously found are no longer there, so
> it needs to look for them again.
> 2. I think this fmt compilation error was fixed in September
> (https://github.com/therion/therion/pull/586), but since then there
> was no release, in the meantime you can try to use branch master.
> 
> Matěj
> 
> so 9. 11. 2024 v 1:56 odesílatel Bill Gee <bgee at campercaver.net> napsal:
>>
>> Hello everyone - I have upgraded one of my test machines to Fedora 41.
>> Therion 6.2.0 now fails to run with a complaint that libfmt.so.10 cannot
>> be found.  Very true!  The fmt package was upgraded to version 11 and
>> the shared library is now libfmt.so.11.
>>
>> I downloaded the latest source code for version 6.2.1 and went to
>> compile it.  The compile fails, and I think it is related to fmt.  The
>> last few lines from the compile run are listed below.
>>
>> How can I get past this?
>>
>> Thanks!
>> --
>> ===============
>> Bill Gee
>>
>>
>>
>> [ 57%] Building CXX object CMakeFiles/therion-common.dir/therion.cxx.o
>> In file included from /usr/include/fmt/format.h:41,
>>                    from /usr/include/fmt/core.h:5,
>>                    from /home/bgee/Installs/therion-6.2.1/thepsparse.cxx:42:
>> /usr/include/fmt/base.h: In instantiation of ‘static void
>> fmt::v11::detail::value<Context>::format_custom_arg(void*, typename
>> Context::parse_context_type&, Context&) [with T = thdouble; Formatter =
>> fmt::v11::formatter<thdouble>; Context = fmt::v11::context; typename
>> Context::parse_context_type = fmt::v11::basic_format_parse_context<char>]’:
>> /usr/include/fmt/base.h:1383:19:   required from
>> ‘fmt::v11::detail::value<Context>::value(T&) [with T = thdouble; Context
>> = fmt::v11::context]’
>>    1383 |     custom.format = format_custom_arg<
>>         |     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
>>    1384 |         value_type, typename Context::template
>> formatter_type<value_type>>;
>>         |
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> /usr/include/fmt/base.h:1647:41:   required from ‘constexpr
>> fmt::v11::detail::value<Context> fmt::v11::detail::make_arg(T&) [with
>> bool PACKED = true; Context = fmt::v11::context; T = thdouble; typename
>> std::enable_if<PACKED, int>::type <anonymous> = 0]’
>>    1647 |   return {arg_mapper<Context>().map(val)};
>>         |                                         ^
>> /usr/include/fmt/base.h:2018:74:   required from ‘constexpr
>> fmt::v11::detail::format_arg_store<Context, NUM_ARGS, 0, DESC>
>> fmt::v11::make_format_args(T& ...) [with Context = context; T =
>> {thdouble}; long unsigned int NUM_ARGS = 1; long unsigned int
>> NUM_NAMED_ARGS = 0; long long unsigned int DESC = 15; typename
>> std::enable_if<(NUM_NAMED_ARGS == 0), int>::type <anonymous> = 0]’
>>    2018 |   return {{detail::make_arg<NUM_ARGS <=
>> detail::max_packed_args, Context>(
>>         |
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
>>    2019 |       args)...}};
>>         |       ~~~~~
>>
>> /usr/include/fmt/format.h:4365:44:   required from ‘std::string
>> fmt::v11::format(format_string<T ...>, T&& ...) [with T = {thdouble};
>> std::string = std::__cxx11::basic_string<char>; format_string<T ...> =
>> basic_format_string<char, thdouble>]’
>>    4365 |   return vformat(fmt, fmt::make_format_args(args...));
>>         |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>> /home/bgee/Installs/therion-6.2.1/thepsparse.cxx:143:23:   required from
>> here
>>     143 |       s << fmt::format("{}", thdouble(this->a,prec_col)) << " g";
>>         |            ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> /usr/include/fmt/base.h:1402:29: error: passing ‘const
>> fmt::v11::formatter<thdouble>’ as ‘this’ argument discards qualifiers
>> [-fpermissive]
>>    1402 |
>> ctx.advance_to(cf.format(*static_cast<qualified_type*>(arg), ctx));
>>         |
>> ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> In file included from /home/bgee/Installs/therion-6.2.1/thepsparse.cxx:50:
>> /home/bgee/Installs/therion-6.2.1/thdouble.h:37:10: note:   in call to
>> ‘auto fmt::v11::formatter<thdouble>::format(const thdouble&,
>> FormatContext&) [with FormatContext = fmt::v11::context]’
>>      37 |     auto format(const thdouble& p, FormatContext& ctx) {
>>         |          ^~~~~~
>> make[2]: *** [CMakeFiles/therion-common.dir/build.make:593:
>> CMakeFiles/therion-common.dir/thepsparse.cxx.o] Error 1
>> make[2]: *** Waiting for unfinished jobs....
>> make[1]: *** [CMakeFiles/Makefile2:871:
>> CMakeFiles/therion-common.dir/all] Error 2
>> make: *** [Makefile:146: all] Error 2
>>
>> _______________________________________________
>> Therion mailing list
>> Therion at speleo.sk
>> https://mailman.speleo.sk/listinfo/therion
> _______________________________________________
> Therion mailing list
> Therion at speleo.sk
> https://mailman.speleo.sk/listinfo/therion



More information about the Therion mailing list