By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.

Bug 1732

Summary: Build issue: python-trinity FTBFS using SIP 4.15
Product: TDE Reporter: Francois Andriot <albator78>
Component: non-core programsAssignee: Timothy Pearson <kb9vqf>
Status: RESOLVED INVALID    
Severity: normal CC: albator78, bugwatch, michele.calgaro, slavek.banko
Priority: P5    
Version: R14.0.x [Trinity]   
Hardware: All   
OS: Linux   
Compiler Version: TDE Version String:
Application Version: Application Name:

Description Francois Andriot 2013-11-24 09:31:32 CST
Hello, I cannot build python-trinity under openSUSE 13.1, using SIP 4.15:

In file included from /opt/trinity/include/tde/tdeconfig.h:29:0,
                 from /opt/trinity/include/tde/tdeconfigskeleton.h:36,
                 from sip/tdecore/tdeconfigskeleton.sip:33:
/opt/trinity/include/tde/tdeconfigbase.h: In member function 'virtual void sipTDEConfigGroup::setReadOnly(bool)':
/opt/trinity/include/tde/tdeconfigbase.h:2178:9: error: 'virtual void TDEConfigGroup::setReadOnly(bool)' is private
    void setReadOnly(bool) { }
         ^
tdecore/siptdecorepart0.cpp:89806:39: error: within this context
In file included from /opt/trinity/include/tde/tdeconfig.h:29:0,
                 from /opt/trinity/include/tde/tdeconfigskeleton.h:36,
                 from sip/tdecore/tdeconfigskeleton.sip:33:
/opt/trinity/include/tde/tdeconfigbase.h: In member function 'virtual void sipTDEConfigGroup::rollback(bool)':
/opt/trinity/include/tde/tdeconfigbase.h:2183:17: error: 'virtual void TDEConfigGroup::rollback(bool)' is private
    virtual void rollback(bool) { }
                 ^
tdecore/siptdecorepart0.cpp:89824:36: error: within this context
make[1]: *** [siptdecorepart0.o] Error 1
make[1]: Leaving directory `/dev/shm/BUILD.oss131.x86_64/trinity-python-trinity-14.0.0~pre174+9e78a68e/tdecore'
make: *** [all] Error 2
Comment 1 Slávek Banko 2013-12-07 11:43:54 CST
François, please, you have a patch for this?
Comment 2 Francois Andriot 2013-12-07 11:46:24 CST
No, there are lots and lots of FTBFS in this one with SIP 4.15, I have not patch yet.
Comment 3 Francois Andriot 2013-12-07 13:01:52 CST
I manage to fix lots of FTBFS caused by class members being in wrong section (e.g. some members in "public" instead of "private"). There are many of them, but they are easy fixable.

However, there is one harder FTBFS: 

make[1]: Entering directory `/dev/shm/BUILD.oss131.x86_64/trinity-python-trinity-14.0.0~pre175+f4f75c9b/tdefile'
g++ -c -Wno-deprecated-declarations -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -I/usr/include/tqt -fPIC -Wall -W -D_REENTRANT -DNDEBUG -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I. -I../extra/kde353 -I/opt/trinity/include/tde -I/opt/trinity/include/tde/tdeio -I../tdeio -I/usr/include/tqt -I/usr/include -I/usr/include/python2.7 -I/usr/share/tqt3/mkspecs/default -I/usr/include/tqt3 -I/usr/X11R6/include -o siptdefilepart0.o siptdefilepart0.cpp
tdefile/siptdefilepart0.cpp: In member function 'virtual KFile::SelectionMode sipKFileIconView::selectionMode() const':
tdefile/siptdefilepart0.cpp:112550:16: error: reference to 'selectionMode' is ambiguous
In file included from sip/tdefile/tdefileview.sip:63:0:
/opt/trinity/include/tde/tdefileview.h:219:34: note: candidates are: virtual KFile::SelectionMode KFileView::selectionMode() const
     virtual KFile::SelectionMode selectionMode() const;
                                  ^
In file included from /usr/include/tqt/tqiconview.h:32:0,
                 from /opt/trinity/include/tde/kiconview.h:22,
                 from /opt/trinity/include/tde/kicondialog.h:23,
                 from sip/tdefile/kicondialog.sip:111:
/usr/include/tqt3/ntqiconview.h:339:19: note:                 TQIconView::SelectionMode TQIconView::selectionMode() const
     SelectionMode selectionMode() const;
                   ^
tdefile/siptdefilepart0.cpp: In member function 'virtual void sipKFileIconView::clear()':
tdefile/siptdefilepart0.cpp:112566:9: error: reference to 'clear' is ambiguous
In file included from sip/tdefile/tdefileview.sip:63:0:
/opt/trinity/include/tde/tdefileview.h:146:18: note: candidates are: virtual void KFileView::clear()
     virtual void clear();
                  ^
In file included from /usr/include/tqt/tqiconview.h:32:0,
                 from /opt/trinity/include/tde/kiconview.h:22,
                 from /opt/trinity/include/tde/kicondialog.h:23,
                 from sip/tdefile/kicondialog.sip:111:
/usr/include/tqt3/ntqiconview.h:354:18: note:                 virtual void TQIconView::clear()
     virtual void clear();
                  ^
tdefile/siptdefilepart0.cpp: In member function 'virtual KFile::SelectionMode sipKFileDetailView::selectionMode() const':
tdefile/siptdefilepart0.cpp:133254:16: error: reference to 'selectionMode' is ambiguous
In file included from sip/tdefile/tdefileview.sip:63:0:
/opt/trinity/include/tde/tdefileview.h:219:34: note: candidates are: virtual KFile::SelectionMode KFileView::selectionMode() const
     virtual KFile::SelectionMode selectionMode() const;
                                  ^
In file included from /usr/include/tqt/tqlistview.h:32:0,
                 from /opt/trinity/include/tde/tdelistview.h:25,
                 from /opt/trinity/include/tde/tdefiletreeviewitem.h:24,
                 from sip/tdefile/tdefiletreeviewitem.sip:30:
/usr/include/tqt3/ntqlistview.h:303:19: note:                 TQListView::SelectionMode TQListView::selectionMode() const
     SelectionMode selectionMode() const;
                   ^
tdefile/siptdefilepart0.cpp: In member function 'virtual void sipKFileDetailView::clear()':
tdefile/siptdefilepart0.cpp:133270:9: error: reference to 'clear' is ambiguous
In file included from sip/tdefile/tdefileview.sip:63:0:
/opt/trinity/include/tde/tdefileview.h:146:18: note: candidates are: virtual void KFileView::clear()
     virtual void clear();
                  ^
In file included from /usr/include/tqt/tqlistview.h:32:0,
                 from /opt/trinity/include/tde/tdelistview.h:25,
                 from /opt/trinity/include/tde/tdefiletreeviewitem.h:24,
                 from sip/tdefile/tdefiletreeviewitem.sip:30:
/usr/include/tqt3/ntqlistview.h:364:18: note:                 virtual void TQListView::clear()
     virtual void clear();
                  ^
make[1]: *** [siptdefilepart0.o] Error 1
make[1]: Leaving directory `/dev/shm/BUILD.oss131.x86_64/trinity-python-trinity-14.0.0~pre175+f4f75c9b/tdefile'
make: *** [all] Error 2


The affected code (which is autogenerated by the SIP utility) is:

#####################"
112542 KFile::SelectionMode sipKFileIconView::selectionMode() const
112543 {
112544     sip_gilstate_t sipGILState;
112545     PyObject *sipMeth;
112546 
112547     sipMeth = sipIsPyMethod(&sipGILState,const_cast<char *>(&sipPyMethods[4]),sipPySelf,NULL,sipName_selectionMode);
112548 
112549     if (!sipMeth)
112550         return KFileIconView::selectionMode();
112551 
112552     extern KFile::SelectionMode sipVH_tdefile_20(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);
112553 
112554     return sipVH_tdefile_20(sipGILState, 0, sipPySelf, sipMeth);
112555 }
#####################"


The FTBFS occurs because of a member-name conflict due to multiple inheritance.
The class "KFileIconView" inherits from both "KfileView" (which in turns inherits from "KFile") and "TQIconView".
Both provide a "selectionMode" and a "clear" member, so the compiler does not know how to choose between one of them.

The strange thing is that with SIP 4.14, the generated code looks different:

#####################"
KFile::SelectionMode sipKFileIconView::selectionMode() const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState,const_cast<char *>(&sipPyMethods[197]),sipPySelf,NULL,sipName_selectionMode);

    if (!sipMeth)
        return KFileView::selectionMode();

    extern KFile::SelectionMode sipVH_tdefile_20(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

    return sipVH_tdefile_20(sipGILState, 0, sipPySelf, sipMeth);
}
#####################"

This time, the "selectionMode()" is explicitely the one from KFileView, so there is no problem for the compiler.

I do not know if something is wrong in our SIP files or if this is a bug in the SIP utility ...
Comment 4 Michele Calgaro 2018-08-01 02:53:01 CDT
Francois,
what is the status of this? Python-trinity builds fine in debian
Comment 5 Francois Andriot 2018-08-01 12:42:13 CDT
Hello, up to a certain version, it was possible to use distribution-provided SIP to generate Trinity files.
Since 4.15, it is not possible anymore.
The solution is to use "sip-tqt" instead, which is provided with Trinity.
Comment 6 Michele Calgaro 2018-08-01 23:39:47 CDT
ok, thanks for the feedback