| Summary: | Build issue: python-trinity FTBFS using SIP 4.15 | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Francois Andriot <albator78> |
| Component: | non-core programs | Assignee: | 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: | ||
François, please, you have a patch for this? No, there are lots and lots of FTBFS in this one with SIP 4.15, I have not patch yet. 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 ...
Francois, what is the status of this? Python-trinity builds fine in debian 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. ok, thanks for the feedback |
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