| Summary: | Build issue: kmplayer: Can't find the TQt version of the dbus-1.0 headers | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Darrell <darrella> |
| Component: | other (any) | Assignee: | Slávek Banko <slavek.banko> |
| Status: | RESOLVED FIXED | ||
| Severity: | critical | CC: | albator78, bugwatch, darrella, slavek.banko |
| Priority: | P1 | ||
| Version: | R14.0.0 [Trinity] | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Compiler Version: | TDE Version String: | ||
| Application Version: | Application Name: | ||
| Attachments: |
Patch to fix build errors
Fix dbus-tqt and dbus-1 checking |
||
Possibly the problem is where dbus-tqt is installed. Consistent with the wiki instruction, I have been installing dbus-tqt to /opt/trinity and not /usr. Further reasoning is there is already a dbus-1.0 package installed in /usr by the distro (Slackware). Closer inspection of the dbus-tqt package reveals the package is not a full dbus-1.0 package but merely adds a TQt layer to a few dbus-1.0 files. The error message reported here is eliminated by installing dbus-tqt to /usr rather than the usual Trinity $PREFIX location. This forces the few files provided in dbus-tqt with the TQt layer to overwrite the existing files provided by the distro. This is not clarified anywhere on the wiki. Also not clear is what impact having these files overwritten causes to the remainder of the system. If the Trinity package is intended to be installed in /usr and overwrite the files installed by the distro, then this should be clarified in the wiki. If not, then the configure process should look in /opt/trinity/include as well as /usr/include to find both sets of header files. Created attachment 954 [details]
Patch to fix build errors
The attached patch resolves the build failures for me on Slackware.
Before pushing to GIT somebody else needs to test to ensure the patch does not cause problems or conflicts for others.
As already mentioned, the build failures occur only when dbus-tqt is installed to a location other than /usr. Installing to a location other than /usr is necessary because installing to /usr will overwrite existing files from the distro's dbus-1 package. Doing that likely will cause conflicts with non Trinity apps, such as KDE4. Therefore a safe solution is to install dbus-tqt to a non /usr location such as /opt/trinity and then have Trinity apps build against that location.
Created attachment 1101 [details]
Fix dbus-tqt and dbus-1 checking
I have checked that both packages dbus-1 and dbus-tqt have pkgconfig file, and dbus-tqt has listed as dependency dbus-1. For this reason, I consider it sufficient use pkg-config for dbus-tqt.
Please, test the updated patch.
Attached files 1101 works for me. Previously I had to workaround with: --with-extra-includes=/opt/trinity/include/dbus-1.0/ I no longer can produce the error here. The package builds with no patching and no longer reproduces the error. I can't find anything obvious why I can't reproduce. Push the patch and close the report. :) Fixed in GIT hash 9a053bb4 and also in v3.5.13-sru branch. |
When building kmplayer, the configure output shows the following: checking for DBUS... yes Yet the build fails with a slew of "error: 'DBusQt' has not been declared" messages. Adding the following allows kmplayer to build: --with-extra-includes=${PREFIX}/include/dbus-1.0/ Seems the configure process finds the distro's copy of dbus-1.0 (installed in /usr/include) but won't look in $PREFIX for the TQt version that is built for Trinity.