| Summary: | Build issue: k3b: 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 |
||
k3b seems to still burn without HAL support being built in. I'm bumping this down one notch. 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 955 [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.
With the patch I see the following in my configuration output:
checking for the HAL... headers /usr/include/hal libraries /usr/lib
checking for DBus... headers /usr/include/dbus-1.0 /usr/lib/dbus-1.0/include libraries /usr/lib
checking for DBus-TQt bindings... headers /opt/trinity/include/dbus-1.0 libraries /opt/trinity/lib
Found HAL storage version 5
...
K3b - Compile HAL support yes
Although a variable-driven solution seems preferable, all of the k3b configure files use hard-coded paths. Therefore my patch seems adequate.
Created attachment 1100 [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 file 1100 solves the HAL detection problem for me. 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 f3e58cb8 and also in v3.5.13-sru branch. |
When building k3b, the configure output shows the following: ================================================ checking for the HAL... headers /usr/include/hal libraries /usr/lib checking for DBus... headers /usr/include/dbus-1.0 /usr/lib/dbus-1.0/include libraries /usr/lib checking for DBus-TQt bindings... searched but not found Found HAL storage version 5 ... K3b - Compile HAL support no K3b - You are missing the HAL >= 0.5 headers and libraries K3b - or the DBus Qt bindings. ================================================ The configure process is finding libhal.h but not finding ${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.