Guys,
After working to build Qt3 from svn for a day, it became clear that a bit of cleanup will be needed on the code before and getting a handle on what patches it contains before it can be usable. I took a bit of time tonight to analyze the qt-x11-3.3.8b source compared to the trinitydesktop (svn) code in hope of helping move this process along.
The script I used is here: http://www.3111skyline.com/dl/dt/trinity/arch/scr/qt3srccmp.sh
The basic setup for running the script is contained in a comment in the top of the script:
#!/bin/bash --norc
## this presumes you have: ## ## (1) downloaded the trinity desktop qt3 source with svn checkout ## (2) removed the .svn files (tar --exclude-vcs -czf qt3svn.tar.gz qt3/), then untarred the files in a 'tmp-dir/qt3' ## (3) untarred the qt3-3.3.8b source into the same 'tmp-dir/qt-x11-free-3.3.8b' #
The script then loops through the files in qt-x11-3.3.8b/ and compares the files to those in trinitydesktop qt3 (svn). The script summary provides:
6420 - files examined
files in both Qt3 (svn) and qt-x11-free-3.3.8b, reported in: identical-svn-338b.txt files in qt-x11-free-3.3.8b but not in Qt3 svn, reported in: missing-svn-338b.txt diffs for files present in both with differing contents in : qtdiffs/path/to/filename.diff
All results are available in the tarball available here:
[99k] http://www.3111skyline.com/dl/dt/trinity/arch/dev/qt3-compare/qt3-svn-v-3.3....
Files included:
-> identical-svn-338b.txt - The script identifies those files that are identical between 3.3.8b code and svn (not that interesting, but useful for knowing which patches must still be applied;
-> missing-svn-338b.txt - The files that are included in qt-x11-free-3.3.8b but are MISSING in trinitydesktop qt3 (svn). This is interesting:
examples/opengl/overlay_x11/utilities/sovinfo/Makefile examples/opengl/overlay_x11/utilities/glxvisuals/Makefile extensions/nsplugin/examples/Makefile doc/Makefile src/3rdparty/Makefile src/3rdparty/zlib/Makefile
The most important output is the identification of those file present in both source trees, but where the content of the files differs. This is wher many of the problem lie, and where work will need to be done to identify what patches have been previously applied and those that still need to be applied (or those that can be removed). This information is contained in 'diff' files created for each file where this difference was encountered. The diff files are contained under the qtdiff directory in the tarball (in proper hierarchy and effect the following files:
qmake/option.cpp.diff mkspecs/hurd-g++/qmake.conf.diff mkspecs/linux-g++/qplatformdefs.h.diff mkspecs/linux-g++/qmake.conf.diff mkspecs/linux-g++-64/qmake.conf.diff examples/demo/opengl/fbm.h.diff examples/demo/opengl/fbm.c.diff tools/makeqpf/makeqpf.pro.diff tools/makeqpf/main.cpp.diff tools/mergetr/mergetr.pro.diff tools/msg2qm/msg2qm.pro.diff tools/tools.pro.diff tools/designer/designer.pro.diff tools/designer/tools/createcw/createcw.pro.diff tools/designer/uic/form.cpp.diff tools/designer/integration/designer.el.diff tools/qvfb/qvfbview.cpp.diff tools/qvfb/pda.skin.diff tools/qvfb/qvfb.cpp.diff tools/qtconfig/mainwindow.cpp.diff tools/qtconfig/mainwindow.h.diff tools/qtconfig/mainwindowbase.ui.diff tools/qembed/qembed.pro.diff doc/html/qglobal-h.html.diff src/codecs/qutfcodec.cpp.diff src/widgets/qpopupmenu.h.diff src/widgets/qcombobox.cpp.diff src/widgets/qtextedit.cpp.diff src/widgets/qtextedit.h.diff src/widgets/qscrollview.cpp.diff src/widgets/qtooltip.cpp.diff src/widgets/qmenubar.cpp.diff src/widgets/qbutton.h.diff src/widgets/qpopupmenu.cpp.diff src/widgets/qlineedit.h.diff src/widgets/qlistview.cpp.diff src/widgets/qlineedit.cpp.diff src/kernel/qdragobject.h.diff src/kernel/qfontengine_x11.cpp.diff src/kernel/qrichtext.cpp.diff src/kernel/qapplication_x11.cpp.diff src/kernel/qclipboard_x11.cpp.diff src/kernel/qfontdatabase_x11.cpp.diff src/kernel/qinputcontext_x11.cpp.diff src/kernel/qwidget.h.diff src/kernel/qrichtext_p.h.diff src/kernel/qt_kernel.pri.diff src/kernel/qwidget_x11.cpp.diff src/kernel/qobject.h.diff src/kernel/qapplication.cpp.diff src/kernel/qdnd_x11.cpp.diff src/kernel/qobject.cpp.diff src/kernel/qapplication.h.diff src/kernel/qpixmap_x11.cpp.diff src/kernel/qwidget.cpp.diff src/kernel/qdesktopwidget_x11.cpp.diff src/kernel/qt_x11_p.h.diff src/kernel/qnamespace.h.diff src/kernel/qdragobject.cpp.diff src/kernel/qevent.cpp.diff src/kernel/qfontdatabase.cpp.diff src/tools/qstring.h.diff src/tools/qlibrary.cpp.diff src/tools/qlocale.cpp.diff src/tools/qdir_unix.cpp.diff src/tools/qglobal.h.diff src/tools/qfeatures.h.diff src/tools/qfileinfo_unix.cpp.diff src/qt.pro.diff src/sql/drivers/odbc/qsql_odbc.h.diff src/sql/drivers/ibase/qsql_ibase.cpp.diff src/sql/qt_sql.pri.diff src/dialogs/qdialog.cpp.diff src/iconview/qiconview.cpp.diff src/opengl/qgl_x11.cpp.diff plugins/src/sqldrivers/odbc/odbc.pro.diff plugins/src/sqldrivers/ibase/ibase.pro.diff plugins/src/src.pro.diff configure.diff
The file diff-file-list.txt in the tarball contains this index. I suspect the diffs above are the reason I can build from the 3.3.8b code, but my build from svn crashes.
That's it for tonight. This will allow us to get a handle on what we have in the qt3 svn dir. Depending on how well documented all the current patches are that have been applied to the qt3 code in svn, it may be quicker to save the current qt3 dir on the server and to just start over with the qt-x11-3.3.8b code. It still builds fine with minimum patching. (you guys make that call)
Feel free to add/remove whatever you like from the qt3srccmp.sh script. It is as flexible as you want to make it. Adding a bash statement or 2 will allow you to get 99.9% of the information you want from the two source trees.
Hope this helps :)