fix tricky regression noticed by Vyacheslav Tokarev on Google Reader.
[kdelibs.git] / README
blob5d30c44fc6be3bc8a4bf67870f7b42d9dd7d2688
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.3 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.
19 Here is an alphabetical list of all individual libraries:
21 * dnssd
22     Interface to the DNS-SD (Zeroconf) support.
24 * interfaces
25     kparts interface for text editors, mediaplayer and scripting.
27 * kate
28     KPart for 'kate', the KDE advanced text editor.
30 * kde3support
31     This contains libraries that were part of KDE3, but have been replaced for KDE4
33 * kdecore
34     This is the core collection of KDE stuff. Non GUI classes reside here.
36 * kdesu
37     Library for password entering and handling
39 * kdeui
40     The main collection of misc. user interface classes (widgets).
42 * kdewidgets
43     For developers: KDE's custom widgets for Qt Designer.
45 * kfile
46     File management widgets and dialogs.
48 * khtml
49     The next generation HTML rendering widget designed for Konqueror.  This
50     supports HTML 4, CSS, and a variety of other web related standards.
52 * kimgio
53     An all purpose extension to the qimgio class that supports various
54     image formats.
56 * kio
57     Classes that fetch and decode URLs are contained here. This library also
58     contains "ksycoca", the system configure cache containing services,
59     applications, servicetypes and mimetypes.
61 * kjs
62     Implementation of ECMAScript (aka JavaScript).
64 * kjsembed
65     A binding of the ECMAScript language to interface with KDE code.
67 * knewstuff
68     Allows applications to easily download data from the Internet to add
69     new information to the program. e.g. wallpapers, translation packs, etc.
71 * knotify
72     Handles user notifications, including sounds, logging to files, etc.
74 * kparts
75     KDE component model.
77 * kpty
78     Abstraction layer for virtual consoles.
80 * kross
81     Scripting host for KDE applications.
83 * kutils
84     Utility library for printing, chatting and more.
86 * nepomuk
87     Semantic information retrieval and tagging.
89 * plasma
90     Framework for the KDE 4 desktop shell and its widgets.
92 * security
93     Certificate management and cryptography settings.
95 * solid
96     Hardware detection.
98 * sonnet
99     Tools for natural language processing, including spell and grammar check.
100     Includes gui widgets.
102 * threadweaver
103     Job-based threading library.
105 And here is an alphabetical list of all further parts of kdelibs:
107 * cmake
108     Build system used throughout KDE.
110 * doc
111     Documentation in docbook format.
113 * includes
114     Qt-style include file wrappers.
116 * kconf_update
117     Auto-Updater for config files.
119 * kded
120     The KDE daemon checks for newly installed software, update files
121     or hostname changes and takes according actions.
123 * kdoctools
124     Contains mostly stuff convert XML docbook files via XSLT into
125     human readable stuff.
127 * kioslave
128     I/O subprocesses to handle files, ftp, http, gzip and bzip2 streams.
130 * kinit
131     Process launcher (kdeinit), used for fast KDE startup and to launch kioslaves.
133 * kmetadata
134     Meta data handling, part of Nepomuk.
136 * licenses
137     Contains texts of all used licenses.
139 * mimetypes
140     Database of mime types.
142 Licensing
143 ---------
144 The libraries themselves have been covered (since Saturday, June 21st, 1997)
145 by the GNU Library General Public License (LGPL). Any other programs (such
146 as the examples) are covered by the GNU General Public License (GPL). All
147 the gory details for the LGPL reside in COPYING.LIB, and for the GPL reside
148 in COPYING.
150 Various parts are also covered under a BSD style license, detailed in
151 licenses/BSD. Currently, code covered under such license is copyrighted by
152 Theo de Raadt.
154 When in doubt, check the individual file, they should all have license
155 headings and other identifying marks.
158 Common Mistakes
159 ---------------
160 If cmake claims Qt cannot be found, look at http://www.trolltech.com/
161 to get a copy of Qt, version 4.4 or newer. If you have peeked there
162 already, grab the SVN module qt-copy from anonsvn.kde.org, or a snapshot
163 thereof.  Alternatively the svn module qt-copy from svn.kde.org can also be
164 used.
166 If you know you have the latest Qt 4,  another reason it may not be able to
167 'find' QT is because it's finding an older version of QT 4.  Make sure that
168 your PATH is set appropriately  to find the qmake from the latest Qt 4, and
169 LD_LIBRARY_PATH is set to include $QTDIR/lib.
171 Debugging
172 ---------
173 You can set the CMAKE_BUILD_TYPE option with the cmake, if you want to have
174 debug code in your KDE libs. If you have the space and can stand code that's
175 somewhat slower, this is worth it. The extra information really
176 helps debugging and thus bugfixing.
178 Available options as of CMake 2.4.5:
179  Release:        Compile with no debugging information, optimization enabled.
180  Debug:          Minimal optimization, with debugging information.
181  RelWithDebInfo: Normal optimization, with debugging information.
182  MinSizeRel:     No debugging information, with optimization for smallest size.
184 e.g.: "cmake -DCMAKE_BUILD_TYPE=Debug" when running cmake.
186 See also the file DEBUG.
189 Upgrading
190 ---------
191 KDE 4 applications will try to migrate settings from your KDE 3 installation
192 where possible.
195 Compile Problems
196 ----------------
197 Often, KDE compile failures are not KDE's fault, but the fault of the
198 compiler or the distribution used. For that reason, please have a look at
199 http://developer.kde.org/build/compilationfaq.html for known issues in certain
200 OS environments before reporting bugs or going mad :).
202 KDE 4 requires gcc 3.3 or better as the compiler.
204 How to report
205 -------------
206 Reporting bugs is an art. Why?  Because bug reports can help and hinder.
208 They hinder if the developers are just buried in an avalanche of bug reports.
209 They spend hours figuring out which bug reports are valid and which aren't,
210 which bug reports are due to bugs or due to installation problems.
212 They can be of tremendous help to notify developers on problems in areas that
213 they normally don't have access (e.g. KDE on AIX) to.
215 So, here are some tips on bug reporting:
217 * Make sure your bug is due to KDE ... and not due to a packaging problem of
218   your OS distributor. For example, most "I can not install the XYZ.rpm"
219   problem are due to packaging issues. Refer with such questions to your
220   OS Distributor and his appropriate mailing list or bug reporting tool.
222 * The chance is high that your bug has already been dealt with ... so look
223   if there is a newer version of kdelibs available. Reporting bugs for
224   older, deprecated versions usually don't get that much attention :-)
226 * Also the chance is high that another one experienced your problem. The
227   bug report wizard at http://bugs.kde.org/ will help you to find out if your
228   problem has already been reported.
230 * KDE Applications come with a Report Bug option in the Help menu that will
231   fill out many of the forms on the bug reporter tool at http://bugs.kde.org/
232   for you.
234 * The best bug report for a project based on voluntary work is of course one
235   that comes with a patch that solves the problem. :-)
238 More info
239 ---------
240 http://www.kde.org/ is a good starting point for info on KDE. If you are a
241 developer, you may also point your browser to http://techbase.kde.org/.
242 There is a plethora of mailing lists available, you can gain an overview
243 quickly by looking at http://lists.kde.org/.