Failing HEAD compiles

Jasem Mutlaq mutlaqja at ikarustech.com
Thu May 14 07:13:43 BST 2026


Sorry, it's fixed. It was missing an #ifdef for Qt5. Please try again now.

--
Best Regards,
Jasem Mutlaq



On Thu, May 14, 2026 at 9:09 AM Hy Murveit <murveit at gmail.com> wrote:

> Jasem,
>
> FYI, the latest KStars HEAD doesn't compile on my Ubuntu 22.04 telescope
> computer.
> Specifically below is part of the compilation output with the error.
>
> Since the error was in fitsdata.cpp, I looked at the recent changes to it,
> and checked out the software just before
>
> > git checkout e3812799e54518ba7d3427cf2a68d6201a3786bd
>
> This avoids this recent submit:
>
> commit dc54426dee3765674f1de697c94ad5ff0d3f77d4
> Author: Jasem Mutlaq <mutlaqja at ikarustech.com>
> Date:   Wed May 13 19:01:04 2026 +0300
>
>     Support loading .fits.gz and .xisf.gz in the viewer
>
> kstars/ekos/align/align.cpp
> kstars/fitsviewer/fitsviewer.cpp
>
> Once I did that, it did compile.
> So, Jasem, any chance you can ask your favorite AI how to fix that for
> 22.04?
>
> Thanks,
> Hy
>
>
> [ 69%] Building CXX object
> kstars/CMakeFiles/KStarsLib.dir/fitsviewer/fitscentroiddetector.cpp.o
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp: In member
> function ‘QFuture<bool> FITSData::loadFromFile(const QString&)’:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: error: no
> matching function for call to ‘run(bool (FITSData::*)(const QByteArray&),
> FITSData*, QByteArray&)’
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:72:12:
> note: candidate: ‘template<class T> QFuture<T> QtConcurrent::run(T (*)())’
>    72 | QFuture<T> run(T (*functionPointer)())
>       |            ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:72:12:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> mismatched types ‘T (*)()’ and ‘bool (FITSData::*)(const QByteArray&)’
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:77:12:
> note: candidate: ‘template<class T, class Param1, class Arg1> QFuture<T>
> QtConcurrent::run(T (*)(Param1), const Arg1&)’
>    77 | QFuture<T> run(T (*functionPointer)(Param1), const Arg1 &arg1)
>       |            ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:77:12:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> mismatched types ‘T (*)(Param1)’ and ‘bool (FITSData::*)(const QByteArray&)’
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:82:12:
> note: candidate: ‘template<class T, class Param1, class Arg1, class Param2,
> class Arg2> QFuture<T> QtConcurrent::run(T (*)(Param1, Param2), const
> Arg1&, const Arg2&)’
>    82 | QFuture<T> run(T (*functionPointer)(Param1, Param2), const Arg1
> &arg1, const Arg2 &arg2)
>       |            ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:82:12:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> mismatched types ‘T (*)(Param1, Param2)’ and ‘bool (FITSData::*)(const
> QByteArray&)’
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:87:12:
> note: candidate: ‘template<class T, class Param1, class Arg1, class Param2,
> class Arg2, class Param3, class Arg3> QFuture<T> QtConcurrent::run(T
> (*)(Param1, Param2, Param3), const Arg1&, const Arg2&, const Arg3&)’
>    87 | QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3), const
> Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
>       |            ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:87:12:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> mismatched types ‘T (*)(Param1, Param2, Param3)’ and ‘bool
> (FITSData::*)(const QByteArray&)’
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:92:12:
> note: candidate: ‘template<class T, class Param1, class Arg1, class Param2,
> class Arg2, class Param3, class Arg3, class Param4, class Arg4> QFuture<T>
> QtConcurrent::run(T (*)(Param1, Param2, Param3, Param4), const Arg1&, const
> Arg2&, const Arg3&, const Arg4&)’
>    92 | QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3,
> Param4), const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4
> &arg4)
>       |            ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:92:12:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> mismatched types ‘T (*)(Param1, Param2, Param3, Param4)’ and ‘bool
> (FITSData::*)(const QByteArray&)’
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:97:12:
> note: candidate: ‘template<class T, class Param1, class Arg1, class Param2,
> class Arg2, class Param3, class Arg3, class Param4, class Arg4, class
> Param5, class Arg5> QFuture<T> QtConcurrent::run(T (*)(Param1, Param2,
> Param3, Param4, Param5), const Arg1&, const Arg2&, const Arg3&, const
> Arg4&, const Arg5&)’
>    97 | QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3,
> Param4, Param5), const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3,
> const Arg4 &arg4, const Arg5 &arg5)
>       |            ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:97:12:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> mismatched types ‘T (*)(Param1, Param2, Param3, Param4, Param5)’ and ‘bool
> (FITSData::*)(const QByteArray&)’
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:103:6:
> note: candidate: ‘template<class Functor> typename std::enable_if<(!
> QtPrivate::HasResultType<MapFunctor>::Value), QFuture<decltype (functor())>
> >::type QtConcurrent::run(Functor)’
>   103 | auto run(Functor functor) -> typename
> std::enable_if<!QtPrivate::HasResultType<Functor>::Value,
> QFuture<decltype(functor())>>::type
>       |      ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:103:6:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> candidate expects 1 argument, 3 provided
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:110:6:
> note: candidate: ‘template<class Functor, class Arg1> typename
> std::enable_if<(! QtPrivate::HasResultType<MapFunctor>::Value),
> QFuture<decltype (functor(arg1))> >::type QtConcurrent::run(Functor, const
> Arg1&)’
>   110 | auto run(Functor functor, const Arg1 &arg1)
>       |      ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:110:6:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> candidate expects 2 arguments, 3 provided
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:118:6:
> note: candidate: ‘template<class Functor, class Arg1, class Arg2> typename
> std::enable_if<(! QtPrivate::HasResultType<MapFunctor>::Value),
> QFuture<decltype (functor(arg1, arg2))> >::type QtConcurrent::run(Functor,
> const Arg1&, const Arg2&)’
>   118 | auto run(Functor functor, const Arg1 &arg1, const Arg2 &arg2)
>       |      ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:118:6:
> note:   template argument deduction/substitution failed:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h: In
> substitution of ‘template<class Functor, class Arg1, class Arg2> typename
> std::enable_if<(! QtPrivate::HasResultType<MapFunctor>::Value),
> QFuture<decltype (functor(arg1, arg2))> >::type QtConcurrent::run(Functor,
> const Arg1&, const Arg2&) [with Functor = bool (FITSData::*)(const
> QByteArray&); Arg1 = FITSData*; Arg2 = QByteArray]’:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41:   required
> from here
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:119:99:
> error: must use ‘.*’ or ‘->*’ to call pointer-to-member function in
> ‘functor (...)’, e.g. ‘(... ->* functor) (...)’
>   119 |     -> typename
> std::enable_if<!QtPrivate::HasResultType<Functor>::Value,
> QFuture<decltype(functor(arg1, arg2))>>::type
>       |
>                          ~~~~~~~^~~~~~~~~~~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:126:6:
> note: candidate: ‘template<class Functor, class Arg1, class Arg2, class
> Arg3> typename std::enable_if<(!
> QtPrivate::HasResultType<MapFunctor>::Value), QFuture<decltype
> (functor(arg1, arg2, arg3))> >::type QtConcurrent::run(Functor, const
> Arg1&, const Arg2&, const Arg3&)’
>   126 | auto run(Functor functor, const Arg1 &arg1, const Arg2 &arg2,
> const Arg3 &arg3)
>       |      ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:126:6:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> candidate expects 4 arguments, 3 provided
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:134:6:
> note: candidate: ‘template<class Functor, class Arg1, class Arg2, class
> Arg3, class Arg4> typename std::enable_if<(!
> QtPrivate::HasResultType<MapFunctor>::Value), QFuture<decltype
> (functor(arg1, arg2, arg3, arg4))> >::type QtConcurrent::run(Functor, const
> Arg1&, const Arg2&, const Arg3&, const Arg4&)’
>   134 | auto run(Functor functor, const Arg1 &arg1, const Arg2 &arg2,
> const Arg3 &arg3, const Arg4 &arg4)
>       |      ^~~
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:134:6:
> note:   template argument deduction/substitution failed:
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:344:41: note:
> candidate expects 5 arguments, 3 provided
>   344 |                 return
> QtConcurrent::run(&FITSData::loadFromBuffer, this, decompressed);
>       |
>  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/QtConcurrent:16,
>                  from
> /home/hy/Projects/kstars/kstars/fitsviewer/fitsdata.cpp:31:
> /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrun.h:142:6:
> note: candidate: ‘template<class Functor, class Arg1, class Arg2, class
> Arg3, class Arg4, class Arg5> typename std::enable_if<(!
> QtPrivate::HasResultType<MapFunctor>::Value), QFuture<decltype
> (functor(arg1, arg2, arg3, arg4, arg5))> >::type QtConcurrent::run(Functor,
> const Arg1&, const Arg2&, const Arg3&, const Arg4&, const Arg5&)’
>   142 | auto run(Functor functor, const Arg1 &arg1, const Arg2 &arg2,
> const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kstars-devel/attachments/20260514/251dcf2b/attachment-0001.htm>


More information about the Kstars-devel mailing list