On Sat, Sep 11, 2021 at 1:49 PM Neal Gompa <ngomp...@gmail.com> wrote:
> I've been trying to figure out how to fix the builds for
> libyui-ncurses[1] and libyui-mga-ncurses[2].
>
> The errors in both package builds confuse me. It looks like the
> "friend" declarations are all broken and it leads to all kinds of
> missing methods and members, which breaks the whole thing.
>
> Anyone have any idea how to fix this? I'm out of ideas...
>
> [1]: https://bugzilla.redhat.com/show_bug.cgi?id=1987670
> [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1987669

With libyui-ncurses, at least, I see this when preprocessing YNCursesUI.cc:

# 143 "/usr/include/etip.h" 3 4
class NCURSES_CXX_IMPEXP NCursesPanel;
class NCURSES_CXX_IMPEXP NCursesMenu;
class NCURSES_CXX_IMPEXP NCursesForm;

class NCURSES_CXX_IMPEXP NCursesException
{
...

That is, the macro NCURSES_CXX_IMPEXP has not been expanded.  It is
defined in /usr/include/cursesw.h.

The problem seems to be that libyui-ncurses has its own copy of
/usr/include/cursesw.h, named src/ncursesw.h, but the definitions in
it are not an exact match for the system header file.  It pulls in the
system etip.h, and the mismatched definitions cause the errors you are
seeing.

A simple workaround is to add this to the top of %build:

export CXXFLAGS="-DNCURSES_CXX_IMPEXP= %{build_cxxflags}"

but the real fix would involve reconciling the libyui-ncurses code to
the latest GNU ncurses headers.

I haven't looked at libyui-mga-ncurses, but if the same fix doesn't
work, ping me and I'll take a look.  Regards,
-- 
Jerry James
http://www.jamezone.org/
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to