prospective fix for crashes induced by an invalidated iterator.
[kdelibs.git] / README
blobddf0c9fb0714a296a1f7076c7a4e1b4c3775c8b3
1 In this file:
3 * About kdelibs
4 * Licensing
5 * Common Mistakes
6 * Upgrading
7 * Compile Problems
8 * More Info
11 About kdelibs
12 -------------
13 This is version 4.0 of the KDE libraries.
15 This package includes libraries that are central to the development and 
16 execution of a KDE program, as well as internationalization files for these 
17 libraries, misc HTML documentation, theme modules, and regression tests. 
18 Here is an alphabetical list:
20 * dnssd
21     Interface to the DNS-SD (Zeroconf) support.
23 * interfaces
24     kparts interface for text editors, mediaplayer and scripting.
26 * kabc
27     The address book library.
29 * kate
30     KPart for 'kate', the KDE advanced text editor.
32 * kcert
33     Personal certification manager.
35 * kcmshell
36     KControl Module interface
38 * kconf_update
39     Auto-Updater for config files.
41 * kde3support
42     This contains libraries that were part of KDE3, but have been replaced for KDE4
44 * kdecore
45     This is the core collection of KDE stuff. Non GUI classes reside here.
47 * kded
48     The KDE daemon checks for newly installed software, update files
49     or hostname changes and takes according actions.
51 * kdefx
52     Library with pixmap effects.
54 * kdeprint
55     The very versatile printing subsystem of KDE.
57 * kdesu
58     Library for password entering and handling
60 * kdeui
61     The main collection of misc. user interface classes (widgets).
63 * kdewidgets
64     For developers: KDE's custom widgets for Qt Designer.
66 * kdoctools
67     Contains mostly stuff convert XML docbook files via XSLT into
68     human readable stuff.
70 * khtml
71     The next generation HTML rendering widget designed for Konqueror.  This
72     supports HTML 4, CSS, and a variety of other web related standards.
74 * kimgio
75     An all purpose extension to the qimgio class that supports various
76     image formats.
78 * kinit
79     Process launcher (kdeinit), used for fast KDE startup and to launch kioslaves.
81 * kio
82     Classes that fetch and decode URLs are contained here. This library also
83     contains "ksycoca", the system configure cache containing services,
84     applications, servicetypes and mimetypes.
86 * kioslave
87     I/O subprocesses to handle files, ftp, http, gzip and bzip2 streams.
89 * kjs
90     Implementation of ECMAScript (aka JavaScript).
92 * kjsembed
93     A binding of the ECMAScript language to interface with KDE code.
95 * knewstuff
96     Allows applications to easily download data from the Internet to add
97     new information to the program. e.g. wallpapers, translation packs, etc.
99 * knotify
100     Handles user notifications, including sounds, logging to files, etc.
102 * kparts
103     KDE component model.
105 * kresources
106     KDE Resource management framework.  Used for Address Book for example.
108 * kstyles
109     The theme engine lies within. It handles nearly anything relating to
110     customizing the appearance of widgets.
112 * kwallet
113     Client and backend to store values in encrypted files.
115 * libltdl
116     System independent dlopen() handler.
118 * licenses
119     Contains texts of all used licenses.
121 * mimetypes
122     Database of mime types.
124 * phonon
125     KDE 4 Multimedia Framework.
127 * pics
128     Database of icons.
130 * sonnet
131     Tools for natural language processing, including spell and grammar check.
132     Includes gui widgets.
134 * win
135     Support code for KDE on Win32.
137 Licensing
138 ---------
139 The libraries themselves have been covered (since Saturday, June 21st, 1997)
140 by the GNU Library General Public License (LGPL). Any other programs (such
141 as the examples) are covered by the GNU General Public License (GPL). All
142 the gory details for the LGPL reside in COPYING.LIB, and for the GPL reside
143 in COPYING.
145 Various parts are also covered under a BSD style license, detailed in
146 licenses/BSD. Currently, code covered under such license is copyrighted by
147 Theo de Raadt.
149 When in doubt, check the individual file, they should all have license
150 headings and other identifying marks.
153 Common Mistakes
154 ---------------
155 If cmake claims Qt cannot be found, look at http://www.trolltech.com/
156 to get a copy of Qt, version 4.2 or newer. If you have peeked there
157 already, grab the SVN module qt-copy from anonsvn.kde.org, or a snapshot
158 thereof.  Alternatively the svn module qt-copy from svn.kde.org can also be
159 used.
161 If you know you have the latest Qt 4,  another reason it may not be able to
162 'find' QT is because it's finding an older version of QT 4.  Make sure that
163 your PATH is set appropriately  to find the qmake from the latest Qt 4, and
164 LD_LIBRARY_PATH is set to include $QTDIR/lib.
166 Debugging
167 ---------
168 You can set the CMAKE_BUILD_TYPE option with the cmake, if you want to have
169 debug code in your KDE libs. If you have the space and can stand code that's
170 somewhat slower, this is worth it. The extra information really
171 helps debugging and thus bugfixing.
173 Available options as of CMake 2.4.2:
174  Release:        Compile with no debugging information, optimization enabled.
175  Debug:          Minimal optimization, with debugging information.
176  RelWithDebInfo: Normal optimization, with debugging information.
177  MinSizeRel:     No debugging information, with optimization for smallest size.
179 e.g.: "cmake -DCMAKE_BUILD_TYPE=Debug" when running cmake.
181 See also the file DEBUG.
184 Upgrading
185 ---------
186 KDE 4 applications will try to migrate settings from your KDE 3 installation
187 where possible.
190 Compile Problems
191 ----------------
192 Often, KDE compile failures are not KDE's fault, but the fault of the
193 compiler or the distribution used. For that reason, please have a look at
194 http://developer.kde.org/build/compilationfaq.html for known issues in certain
195 OS environments before reporting bugs or going mad :). 
197 KDE 4 requires gcc 3.3 or better as the compiler.
199 How to report
200 -------------
201 Reporting bugs is an art. Why?  Because bug reports can help and hinder.
203 They hinder if the developers are just buried in an avalanche of bug reports.
204 They spend hours figuring out which bug reports are valid and which aren't,
205 which bug reports are due to bugs or due to installation problems.
207 They can be of tremendous help to notify developers on problems in areas that
208 they normally don't have access (e.g. KDE on AIX) to.
210 So, here are some tips on bug reporting:
212 * Make sure your bug is due to KDE ... and not due to a packaging problem of
213   your OS distributor. For example, most "I can not install the XYZ.rpm"
214   problem are due to packaging issues. Refer with such questions to your
215   OS Distributor and his appropriate mailing list or bug reporting tool.
217 * The chance is high that your bug has already been dealt with ... so look
218   if there is a newer version of kdelibs available. Reporting bugs for
219   older, deprecated versions usually don't get that much attention :-)
221 * Also the chance is high that another one experienced your problem. The
222   bug report wizard at http://bugs.kde.org/ will help you to find out if your
223   problem has already been reported.
225 * KDE Applications come with a Report Bug option in the Help menu that will
226   fill out many of the forms on the bug reporter tool at http://bugs.kde.org/
227   for you.
229 * The best bug report for a project based on voluntary work is of course one
230   that comes with a patch that solves the problem. :-)
233 More info
234 ---------
235 http://www.kde.org/ is a good starting point for info on KDE. If you are a
236 developer, you may also point your browser to http://developer.kde.org/.
237 There is a plethora of mailing lists available, you can gain an overview
238 quickly by looking at http://lists.kde.org/.