From: Jerry Kreps
Date: Sun, 26 Nov 2000 21:24:52 -0600
Message-Id: <00112621245200.22495@JLKreps>
Subject: Final results of compiling experiments in KDE2...
Well, after installing a pristine Qt-2.2.1 source and compiling it
with jpeg, png, gif and mng graphics active......
After removing all traces of KDE1 and KDE2 files and their dependent
files, and rebuilding the rpm database....
After installing a pristine KDE2 from the SuSE ftp site......
After setting up QTDIR, KDEDIR, MANPATH and LD_LIBRARY_PATH....
After modifying ld.so.conf and running ldconfg.....
Attempts to compile BibleTime-0.31, Quanta and Kemsitry are
successful but the programs refuse to run. They all KCrash with
essentially the identical error:
Here is the output of KCrash......
0x40dbd019 in __wait4 () from /lib/libc.so.6
#0 0x40dbd019 in __wait4 () from /lib/libc.so.6
#1 0x40e1a718 in __DTOR_END__ () from /lib/libc.so.6
#2 0x40436e20 in KCrash::defaultCrashHandler ()
from /opt/kde2/lib/libkdecore.so.3
#3 0x40d5a9e8 in __restore ()
at ../sysdeps/unix/sysv/linux/i386/sigaction.c:127
#4 0x4081e0e7 in read_png_image () from
/usr/lib/qt/lib/libqt.so.2
#5 0x407c1fd9 in QImageIO::read ()
from /usr/lib/qt/lib/libqt.so.2
#6 0x407bff01 in QImage::load ()
from /usr/lib/qt/lib/libqt.so.2
#7 0x407b9232 in QImage::QImage
() from /usr/lib/qt/lib/libqt.so.2
#8 0x40414185 in
KIconLoader::loadIcon () from
/opt/kde2/lib/libkdecore.so.3
#9 0x40416fc1 in SmallIcon () from /opt/kde2/lib/libkdecore.so.3
#10 0x403e80dd in KApplication::miniIcon () from
/opt/kde2/lib/libkdecore.so.3
#11 0x403eecda in KApplication::setTopWidget ()
from /opt/kde2/lib/libkdecore.so.3
#12 0x4028c312 in KMainWindow::KMainWindow () from
/opt/kde2/lib/libkdeui.so.3
#13 0x4028ef7b in KTMainWindow::KTMainWindow ()
from /opt/kde2/lib/libkdeui.so.3
#14 0x806b6aa in BibleTime::BibleTime ()
#15 0x806d73e in main ()
#16 0x40d54a8e in __libc_start_main () at
.../sysdeps/generic/libc-start.c:93
I don't know if the problem lies with the Qt libraries or with KDE2
itself. I've never had problems compiling any of these programs
under KDE1 with Qt-1.45. I'm coming to the conclusion that folks
who write programs specifically for KDE2 should make sure they can
compile AND RUN on a pristine box containing only the Qt-2.x they use
and KDE2.
One problem I've found is that KDE1 uses the
/usr/lib/qt-->/usr/lib/qt-1.45 symlink but Qt-2.2.1 expects it to
point to /usr/lib/qt-2.2.1. The same symlink cannot point to two
different destinations, obviously. During compiling it seems that
-lqt was pulling from qt-1.45 and the -I was pulling from qt-2.2.1.
Qt-2 expected to see QTDIR=/usr/lib/qt-2.2.1 but it was set to
/usr/lib/qt-1.45, and KDEDIR=/opt/kde2, but it was set to /opt/kde.
These conflicts are not resolvable without annoying wrappers to
preset the env vars. Using wrappers is cobbling nonsense and should
not be necessary. These problems were supposedly resolved by
settng configure switches, but such switches were not always honored
unless you made configure totally blind to qt-1.45 by renaming it and
taking it out of ld.so.conf, and pointing symlinks in /usr/lib to the
new qt-2.2.1 libs. Another problem is that /usr/lib/libqt.so pointed
to qt-1.45 but qt-2.2.1 wanted it to point to its own libs. Using a
symlink of /usr/lib/qt2 wasn't a big help because you had to do a lot
of manual changing of makefiles or use autoconf or something. The
INSTALL instructions always assume that a simple ./configure would
perform all that needed to be done.
There could be problems with KDE2's libkdecore.so.3 file,
which is central to all execution failures.
<p>To summerize. I'm setting here with a pristine qt-2.2.1 system,
which compiles without a single error or warning, containing the best
KDE2 implementation SuSE offers from their ftp site. Normal
procedures of creating dynamically linked executables
results in a binary that crashes. Installing bibletime-.31 from an
rpm made for a SuSE 6.4 system produced the same KCrash error message.
An annoying side problem was that the person who created the
bibletime-.31 rpm included a library, libfam, which is so rare it is
found on only one site. fam (file access monitor) is supposed to
report back when a file is accessed. But, the amazing thing is that
to make fam work by a kernel interrupt and not be polling, the kernel
is supposed to be modifed with a patch. To make matters worse, the
patch represents the coder's first foray into Linux kernel coding. I
guess someone always has to start some where, even for writing kernel
code BUT, writing a patch to the kernel that does not get filtered
through the kernel team where very experienced eyeballs can look it
over is dangerous. I refused to add that patch to make fam work
faster. When KCrash resulted in the same error as the compiled tar
file I removed fam from my system.
<opinion>
KDE2, based on Qt-2.x has been released and is now official. App
writers are converting as fast as possible. The sooner everyone cuts
loose of KDE1 and switched to KDE2 the better. Creating apps that
require both KDE1 (Qt-1.x) and KDE2 (Qt-2.x) to be installed is a
disservice to the community, fosters bloat, confusion and chaos.
In choosing between rpm or tar files for installation of source, I've
come to appreciate the tar file. While rpms may be good for
installing static programs (sans source), using an rpm to deposit a
tar, which then has to be detared, is a waste. The sequence
./configure, make, make install and, if needed, make uninstall, is
very easy to do.
What is needed is a GUI dialog app which allows the setting of
switches/paths that are available, and buttons that configure,
make,make install or uninstall, and executing the app after the
process is complete. If the app crashes then an text file containing
particulars of the crash and the address of the programmer could be
prepared for later mailing. Then, all the user would have to do is
check radio buttons to set the graphics, etc., a listbox for the
installation directory (prefilled with the recommended one), and
click the buttons as needed. If certain tasks need to be done as
root their controls would not be active unless the user is root.
Since YaST is going graphical too, such a 3rd party program
installation app would be a nice complimentary addition.
</opinion>
JLK
--
Scientific theories, according to Sir Karl Popper, can be
"falsified," or proven wrong, by experiment. Unscientific theories
-Marxist dialectical history and Freudian psychology were Popper's
favorites-are formed in such a way that they cannot be falsified by
data.