I did some poking around the Trinity source tree, and it appears the reason for the build failures is outdated code. Eons ago Debian split out the three components contained in kdebindings into different source packages.
The components are: SIP PyQt PyKDE
I agree with this decision for the following reasons:
- SIP and PyQt are both maintained upstream and function
perfectly with Trinity as-is; it makes no sense to maintain a Trinity-specific copy of these software projects. 2. PyKDE needs to be patched for Trinity, and has already been moved to <svnroot>/libraries/python-kde3 3. This decision seems to fit with the general user-configurability model of Trinity; some users may want to install the Java/Ruby bindings, but not the Python bindings.
With this in mind, I believe the correct course of action is to remove the <svnroot>/kdebindings/python folder completely.
I don't know whether these decisions are correct. I'll trust you. As long as kdebindings works as expected in non-Debian systems _and_ various python bindings work in KDE.
Slackware always uses stock KDE sources from upstream. Thus, if the KDE devs were including sip and python support in kdebindings, Patrick would not monkey with that. NOt saying who is right or wrong, just sharing facts. :)
SIP was not included with the stock Slackware but available as an extra package. PyQt3 was not included with the stock Slackware but available as an extra package. PyKDE is unknown to Slackware. By your description, sounds as though this Debian package is the python-specific portion originally packaged with kdebindings.
Sounds as though the first two packages are not strict build prerequisites, but recommended build prerequisites and should be built/installed by people who want those bindings when building pyKDE. Is that correct? Or do users merely install SIP and PyQT after installing KDE and those bindings work thereafter with KDE? There has to be some way when building kdebindings to provide the foundations hooks so python will work with KDE.
How does all of this affect building the core KDE packages? Do I need to modify my kdebindings build script?
With that said, I have progressed further with kdebindings.
I mentioned my scheme to copy on-the-fly in my build script the python/sip/sipgen files from 3.5.10. That gets me past the original build failure. Of course, your information sounds as though all of that will disappear now anyway.
Sounds good.
With that said, my builds go for a while before failing. I have patched some /usr/include files from kdelibs. All of the patches are one-liners adding a specific tqt interface include statement. You can review the patches and decide whether they are necessary. Maybe they are, maybe they are not with the changes you propose.
The process is slow because I get to see only one failure when the build fails. I add an appropriate include statement and then build again. I don't know the QT/TQT interface like you and I have to learn which include statement to add. Takes time. Regardless, the three patches I am including eliminate the build failures related to those files. Good thing this stuff can run in the background. :)
I just compiled again and received an error I don't know how to fix. Log attached.
I don't now how this is all affected by what just shared, but I suspect we are getting closer to building kdebindings. :)
<snip>
I don't know whether these decisions are correct. I'll trust you. As long as kdebindings works as expected in non-Debian systems _and_ various python bindings work in KDE.
Slackware always uses stock KDE sources from upstream. Thus, if the KDE devs were including sip and python support in kdebindings, Patrick would not monkey with that. NOt saying who is right or wrong, just sharing facts. :)
The Trinity project is upstream now, so it has absolute say in what goes where and what should be moved/removed. ;-) That said, the Trinity project is comprised of multiple individuals (yourself included), and the developers (myself included) should run major changes past people on this list before making them.
SIP was not included with the stock Slackware but available as an extra package. PyQt3 was not included with the stock Slackware but available as an extra package.
At least they are available. That's good!
PyKDE is unknown to Slackware. By your description, sounds as though this Debian package is the python-specific portion originally packaged with kdebindings.
PyKDE is still provided by the Trinity project, just not in kdebindings any more. It was moved to <svn root>/libraries/python-kde3
Sounds as though the first two packages are not strict build prerequisites, but recommended build prerequisites and should be built/installed by people who want those bindings when building pyKDE. Is that correct? Or do users merely install SIP and PyQT after installing KDE and those bindings work thereafter with KDE? There has to be some way when building kdebindings to provide the foundations hooks so python will work with KDE.
They are strict build prerequisites when attempting to build PyKDE.
How does all of this affect building the core KDE packages? Do I need to modify my kdebindings build script?
No, other than you can remove the DO_NOT_COMPILE line completely if you want.
With that said, I have progressed further with kdebindings.
I mentioned my scheme to copy on-the-fly in my build script the python/sip/sipgen files from 3.5.10. That gets me past the original build failure. Of course, your information sounds as though all of that will disappear now anyway.
Sounds good.
With that said, my builds go for a while before failing. I have patched some /usr/include files from kdelibs. All of the patches are one-liners adding a specific tqt interface include statement. You can review the patches and decide whether they are necessary. Maybe they are, maybe they are not with the changes you propose.
The process is slow because I get to see only one failure when the build fails. I add an appropriate include statement and then build again. I don't know the QT/TQT interface like you and I have to learn which include statement to add. Takes time. Regardless, the three patches I am including eliminate the build failures related to those files. Good thing this stuff can run in the background. :)
I just compiled again and received an error I don't know how to fix. Log attached.
I don't now how this is all affected by what just shared, but I suspect we are getting closer to building kdebindings. :)
Update to the latest SVN, which removes the python directory. That will clear up your build failure. ;-) You might also want to try compiling PyKDE from the directory mentioned above; you should have better luck with the newer sources contained therein.
Also, on a different note, a Web page now exists that details most of the major changes from stock 3.5.11 to Trinity 3.5.11. The address is http://trinity.pearsoncomputing.net/wiki/bin/view/Documentation/Releases_3_5...
Tim
Okay, let's ensure I have my head on straight. :) I think I understand what is happening here. I've already updated svn and am compiling kdebindings now.
Here is what I am adding to the kdebindings build script notes, adapted from your svn README. Please review:
# Some build notes about kdebindings:
# In the past, the kdebinding sources from KDE upstream were stock and untouched. With # Trinity KDE, the SIP and Python binding support was split from the original kdebindings # sources. Both SIP and PyQt are maintained upstream and no longer are or should be a part # of (Trinity) kdebindings. Further, the python sources originally part of the stock # kdebindings package were outdated and do not compile with the latest flex/bison/python # sources.
# SIP and PyQt3 may be downloaded at slackbuilds.org.
# Python binding support remains available with Trinity KDE. A new package called PyKDE is # available in the Trinity source tree: <svnroot>/libraries/python-kde3. That package can be # compiled against the latest SIP and PyQt sources. That is, install SIP and PyQT, then build PyKDE. # SIP and PyQT are required to build PyKDE.
# Summary: Python support no longer is part of kdebindings but remains available in different packages.
Are the patches I submitted regarding the three /usr/include files needed? I'm building right now with those patches....
Okay, let's ensure I have my head on straight. :)
Yes you do; your summary below is correct.
I think I understand what is happening here. I've already updated svn and am compiling kdebindings now.
Here is what I am adding to the kdebindings build script notes, adapted from your svn README. Please review:
# Some build notes about kdebindings:
# In the past, the kdebinding sources from KDE upstream were stock and untouched. With # Trinity KDE, the SIP and Python binding support was split from the original kdebindings # sources. Both SIP and PyQt are maintained upstream and no longer are or should be a part # of (Trinity) kdebindings. Further, the python sources originally part of the stock # kdebindings package were outdated and do not compile with the latest flex/bison/python # sources.
# SIP and PyQt3 may be downloaded at slackbuilds.org.
# Python binding support remains available with Trinity KDE. A new package called PyKDE is # available in the Trinity source tree: <svnroot>/libraries/python-kde3. That package can be # compiled against the latest SIP and PyQt sources. That is, install SIP and PyQT, then build PyKDE. # SIP and PyQT are required to build PyKDE.
# Summary: Python support no longer is part of kdebindings but remains available in different packages.
Are the patches I submitted regarding the three /usr/include files needed? I'm building right now with those patches....
I don't think so. In fact, I was hesitant to apply them (and did not apply them) because I did not like what they were doing to the Trinity C++ namespace. If they are absolutely necessary, then I will have no choice but to commit them and do a full rebuild test for Debian.
Let me know either way!
Tim
Are the patches I submitted regarding the three
/usr/include files needed?
I'm building right now with those patches....
I don't think so. In fact, I was hesitant to apply them (and did not apply them) because I did not like what they were doing to the Trinity C++ namespace. If they are absolutely necessary, then I will have no choice but to commit them and do a full rebuild test for Debian.
Let me know either way!
I let the first build run with those three patches. The package compiled.
I restored the three /usr/include files to the originals. The package compiled.
At this point I should be able to run a full core package build and install. Here goes!
The Trinity project is upstream now, so it has absolute say in what goes where and what should be moved/removed. ;-)
Yup, understood. I was only sharing how things were done in the past in order to explain/understand the current build failures. We move on!