SVN_SILENT: oops, forgot to commit the xml tokenizer bit. Thanks Sebastian.
[kdelibs.git] / README
blob5679fbd784f0d161e7beb303d9fc14129cdc0eb7
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.2 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 * kdeprint
52     The very versatile printing subsystem of KDE.
54 * kdesu
55     Library for password entering and handling
57 * kdeui
58     The main collection of misc. user interface classes (widgets).
60 * kdewidgets
61     For developers: KDE's custom widgets for Qt Designer.
63 * kdoctools
64     Contains mostly stuff convert XML docbook files via XSLT into
65     human readable stuff.
67 * khtml
68     The next generation HTML rendering widget designed for Konqueror.  This
69     supports HTML 4, CSS, and a variety of other web related standards.
71 * kimgio
72     An all purpose extension to the qimgio class that supports various
73     image formats.
75 * kinit
76     Process launcher (kdeinit), used for fast KDE startup and to launch kioslaves.
78 * kio
79     Classes that fetch and decode URLs are contained here. This library also
80     contains "ksycoca", the system configure cache containing services,
81     applications, servicetypes and mimetypes.
83 * kioslave
84     I/O subprocesses to handle files, ftp, http, gzip and bzip2 streams.
86 * kjs
87     Implementation of ECMAScript (aka JavaScript).
89 * kjsembed
90     A binding of the ECMAScript language to interface with KDE code.
92 * knewstuff
93     Allows applications to easily download data from the Internet to add
94     new information to the program. e.g. wallpapers, translation packs, etc.
96 * knotify
97     Handles user notifications, including sounds, logging to files, etc.
99 * kparts
100     KDE component model.
102 * kresources
103     KDE Resource management framework.  Used for Address Book for example.
105 * kstyles
106     The theme engine lies within. It handles nearly anything relating to
107     customizing the appearance of widgets.
109 * kwallet
110     Client and backend to store values in encrypted files.
112 * libltdl
113     System independent dlopen() handler.
115 * licenses
116     Contains texts of all used licenses.
118 * mimetypes
119     Database of mime types.
121 * phonon
122     KDE 4 Multimedia Framework.
124 * pics
125     Database of icons.
127 * sonnet
128     Tools for natural language processing, including spell and grammar check.
129     Includes gui widgets.
131 * win
132     Support code for KDE on Win32.
134 Licensing
135 ---------
136 The libraries themselves have been covered (since Saturday, June 21st, 1997)
137 by the GNU Library General Public License (LGPL). Any other programs (such
138 as the examples) are covered by the GNU General Public License (GPL). All
139 the gory details for the LGPL reside in COPYING.LIB, and for the GPL reside
140 in COPYING.
142 Various parts are also covered under a BSD style license, detailed in
143 licenses/BSD. Currently, code covered under such license is copyrighted by
144 Theo de Raadt.
146 When in doubt, check the individual file, they should all have license
147 headings and other identifying marks.
150 Common Mistakes
151 ---------------
152 If cmake claims Qt cannot be found, look at http://www.trolltech.com/
153 to get a copy of Qt, version 4.4 or newer. If you have peeked there
154 already, grab the SVN module qt-copy from anonsvn.kde.org, or a snapshot
155 thereof.  Alternatively the svn module qt-copy from svn.kde.org can also be
156 used.
158 If you know you have the latest Qt 4,  another reason it may not be able to
159 'find' QT is because it's finding an older version of QT 4.  Make sure that
160 your PATH is set appropriately  to find the qmake from the latest Qt 4, and
161 LD_LIBRARY_PATH is set to include $QTDIR/lib.
163 Debugging
164 ---------
165 You can set the CMAKE_BUILD_TYPE option with the cmake, if you want to have
166 debug code in your KDE libs. If you have the space and can stand code that's
167 somewhat slower, this is worth it. The extra information really
168 helps debugging and thus bugfixing.
170 Available options as of CMake 2.4.5:
171  Release:        Compile with no debugging information, optimization enabled.
172  Debug:          Minimal optimization, with debugging information.
173  RelWithDebInfo: Normal optimization, with debugging information.
174  MinSizeRel:     No debugging information, with optimization for smallest size.
176 e.g.: "cmake -DCMAKE_BUILD_TYPE=Debug" when running cmake.
178 See also the file DEBUG.
181 Upgrading
182 ---------
183 KDE 4 applications will try to migrate settings from your KDE 3 installation
184 where possible.
187 Compile Problems
188 ----------------
189 Often, KDE compile failures are not KDE's fault, but the fault of the
190 compiler or the distribution used. For that reason, please have a look at
191 http://developer.kde.org/build/compilationfaq.html for known issues in certain
192 OS environments before reporting bugs or going mad :). 
194 KDE 4 requires gcc 3.3 or better as the compiler.
196 How to report
197 -------------
198 Reporting bugs is an art. Why?  Because bug reports can help and hinder.
200 They hinder if the developers are just buried in an avalanche of bug reports.
201 They spend hours figuring out which bug reports are valid and which aren't,
202 which bug reports are due to bugs or due to installation problems.
204 They can be of tremendous help to notify developers on problems in areas that
205 they normally don't have access (e.g. KDE on AIX) to.
207 So, here are some tips on bug reporting:
209 * Make sure your bug is due to KDE ... and not due to a packaging problem of
210   your OS distributor. For example, most "I can not install the XYZ.rpm"
211   problem are due to packaging issues. Refer with such questions to your
212   OS Distributor and his appropriate mailing list or bug reporting tool.
214 * The chance is high that your bug has already been dealt with ... so look
215   if there is a newer version of kdelibs available. Reporting bugs for
216   older, deprecated versions usually don't get that much attention :-)
218 * Also the chance is high that another one experienced your problem. The
219   bug report wizard at http://bugs.kde.org/ will help you to find out if your
220   problem has already been reported.
222 * KDE Applications come with a Report Bug option in the Help menu that will
223   fill out many of the forms on the bug reporter tool at http://bugs.kde.org/
224   for you.
226 * The best bug report for a project based on voluntary work is of course one
227   that comes with a patch that solves the problem. :-)
230 More info
231 ---------
232 http://www.kde.org/ is a good starting point for info on KDE. If you are a
233 developer, you may also point your browser to http://techbase.kde.org/.
234 There is a plethora of mailing lists available, you can gain an overview
235 quickly by looking at http://lists.kde.org/.