Onega

a lot of VC++ posts, a few C# posts, and some miscellaneous stuff

Thursday, November 22, 2012

kdiff3-0.9.97.tar.gz on CentOS 5.6 (32bit) and CentOS 6.3 x86_64

Here is my steps to build kdiff3-0.9.97.tar.gz on CentOS 5.6.
Download kdiff3-0.9.97.tar.gz and qt-everywhere-opensource-src-4.8.3.tar.gz
Build Qt 4.83 with the following commands:
tar xvfz ~/temp/qt-everywhere-opensource-src-4.8.3.tar.gz
cd ~/workspace/qt-everywhere-opensource-src-4.8.3/
./configure -opensource -confirm-license -nomake demos -nomake examples -no-webkit  -debug -shared;gmake
sudo gmake install

then build kdiff3 via the following commands:
export PATH=$PATH:/usr/local/Trolltech/Qt-4.8.3/bin
cd ~/workspace/kdiff3-0.9.97/src-QT4
qmake kdiff3.pro
make



Run kdiff3, it will report "Segmentation fault".

Release build has the same issue:
./configure -opensource -confirm-license -nomake demos -nomake examples -no-webkit  -release -shared
time gmake
sudo gmake install


It turned out to be the same problem as reported here - https://bugreports.qt-project.org/browse/QTBUG-25760
QTBUG-25760 Crash when drawing scrollbar when QGtkStyle is used

change line 1711 in /home/onega/workspace/qt-everywhere-opensource-src-4.8.3/src/gui/styles/qgtkstyle.cpp
GtkAdjustment *adjustment =d->gtk_adjustment_configure?d->gtk_range_get_adjustment(range):NULL;

rebuild Qt 4.83
cd ~/workspace/qt-everywhere-opensource-src-4.8.3/
gmake clean; gmake
sudo gmake install

Now kdiff3 works properly on CentOS5.6.

Run kdiff3 on CentOS 6.3
yum install glibc.i686
yum install libstdc++.i686 
yum groupinstall "Development Tools" 
copy kdiff3, libQtGui.so.4.8.3 and libQtCore.so.4.8.3 from CentOS 5.6 to CentOS 6.3
ln -s libQtGui.so.4.8.3 libQtGui.so.4
ln -s libQtCore.so.4.8.3 libQtCore.so.4
export LD_LIBRARY_PATH=...
kdiff3 &