mythtv fails to start on qt 3.2.1, since it cannot find the sql plugin which is in /usr/qt/3/plugins, an strace shows it's looking in /var/tmp/portage/qt-3.2.1/image//usr/qt/3/plugins instead: access("/var/tmp/portage/qt-3.2.1/image//usr/qt/3/plugins", F_OK) = -1 ENOENT (No such file or directory) downgrading QT to 3.1.2-r4 fixes this problem. Reproducible: Always Steps to Reproduce: 1. emerge QT with mysql support 2. emerge mythtv 3. run mythsetup and strace it Actual Results: mythtv errors out not finding the sql driver, and strace shows access("/var/tmp/portage/qt-3.2.1/image//usr/qt/3/plugins", F_OK) = -1 ENOENT (No such file or directory) Expected Results: It should be looking in /usr/qt/3/plugins/
Egads. This is rather bad. I don't run into this problem with my installation. Any more debugging you can do would be most helpful.
Sure, I'll continue to mess with it - anything in particular you'd like me to try?
I've got the same problem. I can't run a qt-based program which uses the postgresql plugin. The program says: "QSqlDatabase warning: QPSQL7 driver not loaded". The driver is located in /usr/qt/3/plugins/ I tried to add the following line to /etc/env.d/45qt3: LDPATH=/usr/qt/3/lib:/usr/qt/3/plugins/sqldrivers I then ran env-update and ldconfig which now finds the correct driver. Nevertheless, I still get the same error message when starting my program. I've also done ldd on the driver to ensure every dependency is satisfied. I'm now out of ideas...
harakiri: if you run strace on your program is it looking for the plugin in the same directory as I described? run it like so: strace programname &> straceoutput.txt then open the file and do a search for the word "plugins" without the quotes. -Dan
You're absolutely right. Same location. Had never used strace before. Pretty nice tool!
I wonder if the directory location is cached somewhere? Look at the files in ~/.qt - do any of them specify where to find the libraries?
I removed my .qt directory (rm -r ~/.qt) and recompiled my program. Same problem. No files in ~/.qt though (ls -a).
There is a extra ${D} in the confiure line Old line ./configure -sm -thread -stl -system-zlib -system-libjpeg -verbose \ -qt-imgfmt-{jpeg,mng,png} -tablet -system-libmng \ -system-libpng -ldl -lpthread -xft -platform linux-g++ -xplatform \ linux-g++ -xrender -prefix ${D}${QTBASE} -fast ${myconf} || die New line ./configure -sm -thread -stl -system-zlib -system-libjpeg -verbose \ -qt-imgfmt-{jpeg,mng,png} -tablet -system-libmng \ -system-libpng -ldl -lpthread -xft -platform linux-g++ -xplatform \ linux-g++ -xrender -prefix ${QTBASE} -fast ${myconf} || die
I can confirm that this fixes all my issues. Thanks Christopher -)
Are you using the sandbox? I seem to recall having to put that in to keep from having a sandbox violation.
No, I don't use sandbox...
This fixes it for me, but qt won't compile like this with sandbox enabled. -Dan
Q: Try adding -plugindir ${QTBASE}/plugins to the ebuild, enable the sandbox, and re-emerge. This is the fix I'm contemplating to fix this.
Adding -plugindir ${QTBASE}/plugins compiles fine in a sandbox, and fixes the problem with mythtv, I think we have a champ here :) -Dan
sounds good. This will be going in as qt-3.2.1-r2 as it fixes quite a few problems.