Bug 56747 - Error Message: checking if UIC has KDE plugins available
Summary: Error Message: checking if UIC has KDE plugins available
Status: RESOLVED FIXED
Alias: None
Product: kde
Classification: I don't know
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Dirk Mueller
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-04-02 14:23 UTC by Steven T. Hatton
Modified: 2005-03-24 20:18 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Diff between the old acinclude.m4 and mine. (158 bytes, text/plain)
2003-06-30 17:05 UTC, Manfred Stienstra
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Steven T. Hatton 2003-04-02 14:23:10 UTC
Version:            (using KDE KDE 3.1.1)
Installed from:    SuSE RPMs
Compiler:          GCC 3.2 
OS:          Linux

If I have a QT/KDE missmatch I get this error message:
../kdevelop/configure 
...
...
checking for KDE... libraries /opt/kde3/lib, headers /opt/kde3/include
checking if UIC has KDE plugins available... configure: error: not found - you 
need to install kdelibs first.

This error message does not correctly describe the cause of the problem, and lead me to try inappropreate trouble shooting steps.  The problem - per a discussion on the KDevelop list - arrises from my KDE not haveing been compiled with the same QT that I am trying to compile with.  As far as I can tell, this is true even if both QT builds are from the same version.  IOW, if I have /usr/lib/qt3 from SuSE, and /usr/local/qt from my own build, both may be 3.1.2, but If I use my own in conjunction with SuSE's KDE bits, I get the error indicated above.

This seems to be a frequent problem among KDevelop users.  It would be very helpful to clarify the error message.
Comment 1 Stephan Kulow 2003-04-02 14:55:52 UTC
Subject: Re:  New: Error Message: checking if UIC has KDE plugins available

Am Wednesday 02 April 2003 14:23 schrieb Steven T.Hatton:
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>
> http://bugs.kde.org/show_bug.cgi?id=56747
>            Summary: Error Message: checking if UIC has KDE plugins
> available Product: kde
>            Version: unspecified
>           Platform: SuSE RPMs
>         OS/Version: Linux
>             Status: UNCONFIRMED
>           Severity: normal
>           Priority: NOR
>          Component: general
>         AssignedTo: bastian@kde.org
>         ReportedBy: hattons@globalsymmetry.com
>
>
> Version:            (using KDE KDE 3.1.1)
> Installed from:    SuSE RPMs
> Compiler:          GCC 3.2
> OS:          Linux
>
> If I have a QT/KDE missmatch I get this error message:
> ../kdevelop/configure
> ...
> ...
> checking for KDE... libraries /opt/kde3/lib, headers /opt/kde3/include
> checking if UIC has KDE plugins available... configure: error: not found -
> you need to install kdelibs first.
>
> This error message does not correctly describe the cause of the problem,
> and lead me to try inappropreate trouble shooting steps.  The problem - per
> a discussion on the KDevelop list - arrises from my KDE not haveing been
> compiled with the same QT that I am trying to compile with.  As far as I
> can tell, this is true even if both QT builds are from the same version. 
> IOW, if I have /usr/lib/qt3 from SuSE, and /usr/local/qt from my own build,
> both may be 3.1.2, but If I use my own in conjunction with SuSE's KDE bits,
> I get the error indicated above.
>
> This seems to be a frequent problem among KDevelop users.  It would be very
> helpful to clarify the error message.
What would you put in? Your problem is just one of possible problems.

Greetings, Stephan

Comment 2 Thiago Macieira 2003-04-02 15:24:37 UTC
One should also note that autoconf shows only minimal information on the screen 
output. If you need more detailed information, you have to take a look at the 
config.log file, which will contain the true error message. 
 
Comment 3 Steven T. Hatton 2003-04-02 16:52:08 UTC
Subject: Re:  Error Message: checking if UIC has KDE plugins available

On Wednesday 02 April 2003 07:55 am, you wrote:
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
>
> http://bugs.kde.org/show_bug.cgi?id=56747

> What would you put in? Your problem is just one of possible problems.
>
> Greetings, Stephan
I might throw this in.  I do understand the problem of having such references 
become dangling pointers.  Nonetheless, it seems common enough for people in 
my situation that it has become a FAQ item.  I suspect it would help a 
significant number of those who encounter this in the future to have that 
reference.

http://developer.kde.org/documentation/other/developer-faq.html#q72

STH

Comment 4 Thiago Macieira 2003-04-02 20:26:07 UTC
You should not have two Qt versions lying around, specially if the use of the wrong 
one causes problems. That is true for different library versions or different compiler 
versions as well. 
 
Again, what would you have put in there? "Cannot load plugins -- they might not be 
installed"? 
Comment 5 Steven T. Hatton 2003-04-03 02:01:30 UTC
Subject: Re:  Error Message: checking if UIC has KDE plugins available

On Wednesday 02 April 2003 01:26 pm, Thiago Macieira wrote:
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
>
> http://bugs.kde.org/show_bug.cgi?id=56747
>
>
>
>
> ------- Additional Comments From thiagom@mail.com  2003-04-02 20:26 -------
> You should not have two Qt versions lying around, specially if the use of
> the wrong one causes problems. That is true for different library versions
> or different compiler versions as well.
>
> Again, what would you have put in there? "Cannot load plugins -- they might
> not be installed"?

I'll have to admit, I don't understand all of what's happening.  I believe the 
following block is the actual sequence of events producing the error:

## config.log excerpt ##
int main() {
    (void)QStyleFactory::create(QString::null);
    QCursor c(Qt::WhatsThisCursor);
    return 0;
}
configure:23343: result: no
configure:23381: checking for moc
configure:23450: result: /usr/lib/qt3/bin/moc
configure:23458: checking for uic
configure:23509: result: /usr/lib/qt3/bin/uic
configure:23537: checking whether uic supports -L 
configure:23548: /usr/lib/qt3/bin/uic -L /nonexistant conftest.ui >/dev/null
configure:23551: $? = 0
configure:23563: result: yes
configure:23575: checking whether uic supports -nounload 
configure:23586: /usr/lib/qt3/bin/uic -nounload  conftest.ui >/dev/null
configure:23589: $? = 0
configure:23601: result: yes
configure:23638: checking if Qt needs -ljpeg
configure:23680: rm -rf SunWS_cache; g++ -o conftest -Wnon-virtual-dtor 
-Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith 
-Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE 
-Wcast-align -Wconversion -Wchar-subscripts -O2 -Wformat-security 
-Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common 
-I/usr/lib/qt3/include -I/usr/X11R6/include   -DQT_THREAD_SUPPORT  
-D_REENTRANT  conftest.cc -L/usr/X11R6/lib -L/usr/lib/qt3/lib -lqt-mt -lpng 
-lz -lm  -ldl -lXext -lX11 -lSM -lICE 1>&5
configure: In function `int main()':
configure:23708: warning: `char**argv' might be used uninitialized in this 
   function
configure:23683: $? = 0
configure:23686: test -s conftest
configure:23689: $? = 0
configure:23717: result: no
configure:23743: checking for rpath
configure:23769: result: yes
configure:23772: checking for KDE
configure: 23823: /opt/kde3/include/ksharedptr.h
taking that
configure: 23853: /opt/kde3/lib/libkio.la
taking that
configure: 23871: /opt/kde3/lib/kde3/plugins/designer/kdewidgets.la
taking that
configure:23941: result: libraries /opt/kde3/lib, headers /opt/kde3/include
configure:23978: checking if UIC has KDE plugins available
configure:24005: /usr/lib/qt3/bin/uic -L /opt/kde3/lib/kde3/plugins/designer 
-nounload -impl actest.h actest.ui > actest.cpp
configure:24008: $? = 0
configure:24023: error: not found - you need to install kdelibs first.
#####################################

What's this really testing?  I find this extremely puzzling.  I am using the 
same _version_ of QT in /usr/lib/qt3 (from SuSE) and /usr/local/qt 
(home-spun).  My QT allows me to configure against my KDE in /opt/kde-3.1.1.  
After rebuilding and reinstalling SuSE's rpms (QT, then KDE), I am able to 
configure against /opt/kde3 using /usr/lib/qt3.  Before I recompiled the SuSE 
KDE I was not able to configure with the SuSE bits in any combination with my 
bits, nor SuSE's bits. Now I have this:

KDEDIR=/opt/kde-3.1.1 &&  QTDIR=/usr/local/qt
 ../kdevelop/configure --prefix=$KDEDIR
Good - your configure finished. Start make now

KDEDIR=/opt/kde3 &&  QTDIR=/usr/local/qt
 ../kdevelop/configure --prefix=$KDEDIR
configure: error: not found - you need to install kdelibs first.

KDEDIR=/opt/kde3 &&  QTDIR=/usr/lib/qt3
 ../kdevelop/configure --prefix=$KDEDIR
Good - your configure finished. Start make now

KDEDIR=/opt/kde-3.1.1 &&  QTDIR=/usr/lib/qt3
 ../kdevelop/configure --prefix=$KDEDIR
Good - your configure finished. Start make now

This is from a successful configure:

## config.log from successful configure:
configure:23743: checking for rpath
configure:23769: result: yes
configure:23772: checking for KDE
configure: 23823: /opt/kde-3.1.1/include/ksharedptr.h
taking that
configure: 23853: /opt/kde-3.1.1/lib/libkio.la
taking that
configure: 23871: /opt/kde-3.1.1/lib/kde3/plugins/designer/kdewidgets.la
taking that
configure:23941: result: libraries /opt/kde-3.1.1/lib, headers 
/opt/kde-3.1.1/include
configure:23978: checking if UIC has KDE plugins available
configure:24005: /usr/local/qt/bin/uic -L 
/opt/kde-3.1.1/lib/kde3/plugins/designer -nounload -impl actest.h actest.ui > 
actest.cpp
configure:24008: $? = 0
configure:24020: result: yes
########################################
hattons@ljosalfr:~/
Wed Apr 02 18:29:17:> diff 
/opt/kde-3.1.1/lib/kde3/plugins/designer/kdewidgets.la 
/opt/kde3/lib/kde3/plugins/designer/kdewidgets.la
17c17
< dependency_libs=' -R/opt/kde-3.1.1/lib -R/usr/local/qt/lib -R/usr/X11R6/lib 
-L/usr/X11R6/lib -L/usr/local/qt/lib -L/opt/kde-3.1.1/lib 
/opt/kde-3.1.1/lib/libkio.la -L/usr/lib/gcc-lib/i486-suse-linux/3.2 
-L/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/lib 
-L/usr/lib/gcc-lib/i486-suse-linux/3.2/../../.. 
/opt/kde-3.1.1/lib/libkdeui.la /opt/kde-3.1.1/lib/libkdesu.la 
/opt/kde-3.1.1/lib/libkdecore.la /usr/lib/libstdc++.la 
/opt/kde-3.1.1/lib/libDCOP.la -ldl -lresolv 
/opt/kde-3.1.1/lib/libart_lgpl_2.la /opt/kde-3.1.1/lib/libkdefx.la -lqt-mt 
-lpng -lXext -lX11 -lSM -lICE -lpthread -lXrender -lutil -lz 
/usr/lib/libfam.la /usr/lib/libstdc++.la -lm -lc -lgcc_s'
---
> dependency_libs=' -L/usr/X11R6/lib -L/usr/lib/qt3/lib -L/opt/kde3/lib 
/opt/kde3/lib/libkio.la -L/usr/lib/gcc-lib/i486-suse-linux/3.2 
-L/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/lib 
-L/usr/lib/gcc-lib/i486-suse-linux/3.2/../../.. -L/usr/lib 
/opt/kde3/lib/libkdeui.la /opt/kde3/lib/libkdesu.la 
/opt/kde3/lib/libkdecore.la /usr/lib/libstdc++.la /opt/kde3/lib/libDCOP.la 
-ldl -lresolv -lXinerama /usr/lib/libart_lgpl_2.la /opt/kde3/lib/libkdefx.la 
-lqt-mt -lpng -lXext -lX11 -lSM -lICE -lpthread -lXrender -lutil -lz 
/usr/lib/libfam.la /usr/lib/libstdc++.la -lm -lc -lgcc_s'
32c32
< libdir='/opt/kde-3.1.1/lib/kde3/plugins/designer'
---
> libdir='/opt/kde3/lib/kde3/plugins/designer'
hattons@ljosalfr:~/
Wed Apr 02 19:00:18:> 

Comment 6 Caleb Tennis 2003-06-20 23:26:22 UTC
I've been thinking about this now for a little bit.  What we're doing is using UIC to test for 
the presence of kdewidgets.  However, this error also gets generated if uic crashes or is 
otherwise unable to compile the test program. 
 
Perhaps there could be another error message in case uic bombs out...something that is 
more representative of what's really going on? 
 
I'm not an autotools hacker, so I don't know a good way of handling this. 
Comment 7 Thiago Macieira 2003-06-21 01:10:09 UTC
That much is true. The test fails if uic fails for any reason. However, this is also a 
limitation of the standard autoconf tests. Many times I have seen normal tests fail 
because of a completely unrelated reason -- like missing an -lm option to a 
linking. 
 
What most people are not aware of is that config.log contains the real error and 
that you should always consult that file for more information. Maybe it even 
warrants a wishlist report to the autoconf developers. 
 
But back to the question at hand, maybe a simpler workaround could solve the 
problem: what if we tested if UIC works before? 
Comment 8 Manfred Stienstra 2003-06-30 15:59:40 UTC
When I was compiling kdevelop-3.0_alpha4 I experienced this problem too. The
problem with me seems to be in the acinclude.m4. See the gentoo bug database for
more information:

http://bugs.gentoo.org/show_bug.cgi?id=23743

and my fixed acinclude.m4:

http://bugs.gentoo.org/attachment.cgi?id=14031&action=view
Comment 9 Thiago Macieira 2003-06-30 16:08:39 UTC
Subject: Error Message: checking if UIC has KDE plugins available

Hello,

would it be possible to attach a diff to the bug report? We have to know what 
you changed and against which version you did those changes.

Comment 10 Manfred Stienstra 2003-06-30 17:02:20 UTC
Sure, I have kdevelop-3.0a4a. I'll attach the diff...
Comment 11 Manfred Stienstra 2003-06-30 17:05:12 UTC
Created attachment 1909 [details]
Diff between the old acinclude.m4 and mine.
Comment 12 Dirk Mueller 2003-07-14 17:46:44 UTC
ok, but thats like destroying the purpose of the test.  
 
The test is there to check if the kdewidgets plugin was loaded into uic. with 
your change you avoid this. its not a fix.  
Comment 13 Dirk Mueller 2005-03-24 20:16:20 UTC
CVS commit by mueller: 

improve error message
CCBUG: 56747


  M +9 -1      acinclude.m4.in   2.504


--- kde-common/admin/acinclude.m4.in  #2.503:2.504
@@ -1645,5 +1645,13 @@
 AC_MSG_RESULT([$kde_cv_uic_plugins])
 if test "$kde_cv_uic_plugins" != yes; then
-        AC_MSG_ERROR([you need to install kdelibs first.])
+        AC_MSG_ERROR([
+you need to install kdelibs first.
+
+If you did install kdelibs, then the Qt version that is picked up by
+this configure is not the same version you used to compile kdelibs. 
+The Qt Plugin installed by kdelibs is *ONLY* loadable if its the 
+same Qt version, compiled with the same compiler and the same Qt
+configuration settings.
+])
 fi
 fi
Comment 14 Dirk Mueller 2005-03-24 20:17:18 UTC
CVS commit by mueller: 

improve error message
CCMAIL: 56747-done@bugs.kde.org


  M +1 -1      acinclude.m4.in   2.499.6.2


--- kde-common/admin/acinclude.m4.in  #2.499.6.1:2.499.6.2
@@ -3105,6 +3105,6 @@
         rm -f conftest.h conftest.h.gch
     fi
-    AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
   fi
+  AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
   if test "$CXX" = "KCC"; then
     dnl unfortunately we currently cannot disable exception support in KCC
Comment 15 Dirk Mueller 2005-03-24 20:18:18 UTC
CVS commit by mueller: 

backport the real fix for 56747
CCMAIL: 56747@bugs.kde.org


  M +9 -1      acinclude.m4.in   2.499.6.3


--- kde-common/admin/acinclude.m4.in  #2.499.6.2:2.499.6.3
@@ -1645,5 +1645,13 @@
 AC_MSG_RESULT([$kde_cv_uic_plugins])
 if test "$kde_cv_uic_plugins" != yes; then
-        AC_MSG_ERROR([you need to install kdelibs first.])
+        AC_MSG_ERROR([
+you need to install kdelibs first.
+
+If you did install kdelibs, then the Qt version that is picked up by
+this configure is not the same version you used to compile kdelibs. 
+The Qt Plugin installed by kdelibs is *ONLY* loadable if its the 
+same Qt version, compiled with the same compiler and the same Qt
+configuration settings.
+])
 fi
 fi