Browse Source

Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.

BUG:215923


git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19
toma 9 years ago
commit
ce4a32fe52
100 changed files with 22288 additions and 0 deletions
  1. 7
    0
      AUTHORS
  2. 137
    0
      COMPILING
  3. 130
    0
      COMPILING.html
  4. 346
    0
      COPYING
  5. 397
    0
      COPYING-DOCS
  6. 20
    0
      COPYING.BSD
  7. 486
    0
      COPYING.LIB
  8. 184
    0
      DEBUG
  9. 173
    0
      INSTALL
  10. 925
    0
      KDE2PORTING.html
  11. 672
    0
      KDE3PORTING.html
  12. 83
    0
      Mainpage.dox
  13. 116
    0
      Makefile.am.in
  14. 15
    0
      Makefile.cvs
  15. 75
    0
      NAMING
  16. 251
    0
      README
  17. 231
    0
      TODO
  18. 9
    0
      arts/Makefile.am
  19. 75
    0
      arts/configure.in.in
  20. 40
    0
      arts/kde/Makefile.am
  21. 51
    0
      arts/kde/README
  22. 41
    0
      arts/kde/artskde.idl
  23. 60
    0
      arts/kde/kartsdispatcher.cc
  24. 87
    0
      arts/kde/kartsdispatcher.h
  25. 64
    0
      arts/kde/kartsfloatwatch.cpp
  26. 82
    0
      arts/kde/kartsfloatwatch.h
  27. 111
    0
      arts/kde/kartsserver.cpp
  28. 75
    0
      arts/kde/kartsserver.h
  29. 198
    0
      arts/kde/kaudioconverter.cc
  30. 65
    0
      arts/kde/kaudioconverter.h
  31. 90
    0
      arts/kde/kaudiomanagerplay.cpp
  32. 84
    0
      arts/kde/kaudiomanagerplay.h
  33. 210
    0
      arts/kde/kaudioplaystream.cpp
  34. 127
    0
      arts/kde/kaudioplaystream.h
  35. 84
    0
      arts/kde/kaudioplaystream_p.h
  36. 269
    0
      arts/kde/kaudiorecordstream.cpp
  37. 165
    0
      arts/kde/kaudiorecordstream.h
  38. 62
    0
      arts/kde/kaudiorecordstream_p.h
  39. 96
    0
      arts/kde/kconverttest.cc
  40. 46
    0
      arts/kde/kconverttest.h
  41. 80
    0
      arts/kde/kdatarequest_impl.cpp
  42. 59
    0
      arts/kde/kdatarequest_impl.h
  43. 236
    0
      arts/kde/kioinputstream_impl.cpp
  44. 89
    0
      arts/kde/kioinputstream_impl.h
  45. 54
    0
      arts/kde/kiotest.cc
  46. 131
    0
      arts/kde/kiotestslow.cc
  47. 303
    0
      arts/kde/kplayobject.cc
  48. 306
    0
      arts/kde/kplayobject.h
  49. 104
    0
      arts/kde/kplayobjectcreator.cc
  50. 56
    0
      arts/kde/kplayobjectcreator.h
  51. 258
    0
      arts/kde/kplayobjectfactory.cc
  52. 156
    0
      arts/kde/kplayobjectfactory.h
  53. 46
    0
      arts/kde/kplayobjectfactory_p.h
  54. 446
    0
      arts/kde/kvideowidget.cpp
  55. 82
    0
      arts/kde/kvideowidget.h
  56. 20
    0
      arts/kde/mcop-dcop/Makefile.am
  57. 171
    0
      arts/kde/mcop-dcop/kmcop.cpp
  58. 90
    0
      arts/kde/mcop-dcop/kmcop.desktop
  59. 50
    0
      arts/kde/mcop-dcop/kmcop.h
  60. 152
    0
      arts/kde/mcop-dcop/mcopdcopobject.cpp
  61. 89
    0
      arts/kde/mcop-dcop/mcopdcopobject.h
  62. 47
    0
      arts/kde/mcop-dcop/mcopdcoptools.h
  63. 27
    0
      arts/knotify/Makefile.am
  64. 33
    0
      arts/knotify/README
  65. 800
    0
      arts/knotify/knotify.cpp
  66. 119
    0
      arts/knotify/knotify.desktop
  67. 111
    0
      arts/knotify/knotify.h
  68. 19
    0
      arts/knotify/knotifytest.cpp
  69. 8
    0
      arts/message/Makefile.am
  70. 93
    0
      arts/message/artsmessage.cc
  71. 269
    0
      common_texts.cpp
  72. 138
    0
      configure.in.bot
  73. 409
    0
      configure.in.in
  74. 7
    0
      configure.in.mid
  75. 552
    0
      dcop/HOWTO
  76. 66
    0
      dcop/KDE-ICE/ICE-def.cpp
  77. 98
    0
      dcop/KDE-ICE/ICE.h
  78. 247
    0
      dcop/KDE-ICE/ICEconn.h
  79. 631
    0
      dcop/KDE-ICE/ICElib.h
  80. 626
    0
      dcop/KDE-ICE/ICElibint.h
  81. 319
    0
      dcop/KDE-ICE/ICEmsg.h
  82. 186
    0
      dcop/KDE-ICE/ICEproto.h
  83. 156
    0
      dcop/KDE-ICE/ICEutil.h
  84. 38
    0
      dcop/KDE-ICE/Makefile.am
  85. 83
    0
      dcop/KDE-ICE/Xfuncproto.h
  86. 1343
    0
      dcop/KDE-ICE/Xtrans.c
  87. 479
    0
      dcop/KDE-ICE/Xtrans.h
  88. 477
    0
      dcop/KDE-ICE/Xtransint.h
  89. 1990
    0
      dcop/KDE-ICE/Xtranssock.c
  90. 549
    0
      dcop/KDE-ICE/Xtransutil.c
  91. 189
    0
      dcop/KDE-ICE/accept.c
  92. 524
    0
      dcop/KDE-ICE/authutil.c
  93. 547
    0
      dcop/KDE-ICE/connect.c
  94. 650
    0
      dcop/KDE-ICE/error.c
  95. 269
    0
      dcop/KDE-ICE/getauth.c
  96. 56
    0
      dcop/KDE-ICE/globals.c
  97. 146
    0
      dcop/KDE-ICE/globals.h
  98. 273
    0
      dcop/KDE-ICE/iceauth.c
  99. 297
    0
      dcop/KDE-ICE/listen.c
  100. 0
    0
      dcop/KDE-ICE/listenwk.c

+ 7
- 0
AUTHORS View File

@@ -0,0 +1,7 @@
1
+Look in the appropriate subdirectories or files to get more information
2
+about the authors.
3
+
4
+The package is maintained by Kalle Dalheimer <kalle@kde.org>, however
5
+numerous people, too many to count, have contributed to kdelibs as a
6
+whole.  If you have a specific question, dig up the appropriate mailing
7
+list address, and ask away.

+ 137
- 0
COMPILING View File

@@ -0,0 +1,137 @@
1
+THIS DOCUMENT DESCRIBES HOW YOU CAN COMPILE KDE WHEN USING SUBVERSION
2
+
3
+(If you use source tarballs, you can skip "make -f Makefile.cvs" and
4
+should use "make distclean" instead of "svn-clean")
5
+
6
+What you need
7
+=============
8
+
9
+Make sure you get the following stuff from the repository:
10
+
11
+qt-copy (This is qt-3.3.2)
12
+arts
13
+kdelibs
14
+kdebase (strongly recommended but not strictly necessary)
15
+<any other package you are interested in>
16
+
17
+It is important that you compile AND INSTALL the above packages in the 
18
+above order.
19
+
20
+Further you will need GNU make, autoconf 2.52, automake 1.5 and 
21
+a working C++ compiler (eg. gcc 2.95.2)
22
+
23
+Preparations
24
+============
25
+
26
+Before you start you must decide two things:
27
+
28
+1) Where do you want to have Qt installed? Qt is a bit lame in that it 
29
+basically installs itself in its own source-tree, but symlinks are your 
30
+friend. E.g you could link /usr/local/lib/qt3 to where you keep your Qt 
31
+source. Qt libs then end up in /usr/local/lib/qt3/lib.
32
+
33
+2) Where do you want to have KDE installed. A good candidate is /usr/local/kde
34
+
35
+Make sure you do (if using sh, ksh, or bash):
36
+export KDEDIR=/usr/local/kde
37
+
38
+With csh or tcsh the following is more appropriate:
39
+
40
+setenv KDEDIR /usr/local/kde
41
+
42
+Now you want to make sure that Qt and KDE libraries are picked up correctly.
43
+
44
+On systems that respond to environment variables something similar to the 
45
+following is appropriate:
46
+
47
+export LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib
48
+
49
+On systems whose diety of choice is ldconfig, try:
50
+ldconfig -m $KDEDIR/lib
51
+ldconfig -m $QTDIR/lib
52
+
53
+You probably also want to add $KDEDIR/bin and $QTDIR/bin to your path.
54
+
55
+See http://www.kde.org/kde2-and-kde3.html for tips about setting up
56
+KDE 3.0 next to KDE 2.x.
57
+
58
+Compiling
59
+=========
60
+
61
+The magic sequence to compile & install a package is:
62
+gmake -f Makefile.cvs
63
+./configure --enable-debug
64
+gmake
65
+gmake install
66
+
67
+(On Linux, GNU make is the default make, and gmake in the above commands
68
+can be replaced with make).
69
+
70
+For Qt the magic sequence is:
71
+
72
+./configure -debug -shared -qt-gif -thread -sm -system-zlib -system-libpng -system-jpeg
73
+make
74
+
75
+Common problems
76
+===============
77
+
78
+Wrong Qt paths: 
79
+One of the biggest problems is picking up the correct version of Qt, 
80
+especially if your system has more version of Qt installed. Be aware 
81
+that information about library paths gets saved in the "config.cache" 
82
+file, "Makefile.in" as well as "Makefile" files. So it can be that after 
83
+some struggle to get QTDIR/KDEDIR setup correctly your setup is actually 
84
+correct, but old -incorrect- settings are still lying around.
85
+
86
+The best thing to do in such a case is to do a "svn-clean" (from kdesdk/scripts).
87
+This removes all files which aren't stored in the repository. You can then start all over 
88
+again with "makefile -f Makefile.cvs". Make sure you don't have any important 
89
+files lying around in your source tree any more, they will be deleted!
90
+
91
+New directories:
92
+When a new directory gets added to the repository it usually only contains a 
93
+Makefile.am but not a Makefile. If you try to compile such a directory
94
+you will get an error like:
95
+
96
+  Making all in management
97
+  make[3]: Entering directory /home/gregturp/KDE/kdelibs/kdeprint/management'
98
+  make[3]: *** No rule to make target all'.  Stop.
99
+  make[3]: Leaving directory /home/gregturp/KDE/kdelibs/kdeprint/management'
100
+  make[2]: *** [all-recursive] Error 1
101
+  make[2]: Leaving directory /home/gregturp/KDE/kdelibs/kdeprint'
102
+  make[1]: *** [all-recursive] Error 1
103
+  make[1]: Leaving directory /home/gregturp/KDE/kdelibs'
104
+  make: *** [all-recursive-am] Error 2
105
+
106
+The solution is to redo "make -f Makefile.cvs; ./configure". 
107
+
108
+You can create a single Makefile from a Makefile.am file with the
109
+kdesdk/scripts/create_makefile script. Make sure to run it from the toplevel
110
+directory. (E.g. /home/gregturp/KDE/kdelibs)
111
+
112
+Problems?
113
+=========
114
+
115
+See http://www.kde.org/compilationfaq.html for common build problems
116
+and their solution.
117
+
118
+If you encounter _LINK_ problems you are probably doing something wrong.
119
+Do a "svn-clean" and start from scratch, usually this solves the problem.
120
+
121
+If you encounter missing include files, especially if the files start with
122
+a 'q', you probably have not setup your QTDIR correct or have the wrong 
123
+version of Qt.
124
+
125
+If you encounter compile errors after updating from SVN, check whether you 
126
+need to update kdelibs as well. If the problems persists, wait a few hours,
127
+usually compile errors are fixed shortly after they have been introduced.
128
+
129
+If you still have problems read the kde-devel@kde.org mailinglist and/or
130
+post your problem there. You can subscribe by sending mail to
131
+kde-devel-request@kde.org with "subscribe" in the subject.
132
+
133
+Have fun!
134
+
135
+Cheers,
136
+Waldo Bastian
137
+bastian@kde.org

+ 130
- 0
COMPILING.html View File

@@ -0,0 +1,130 @@
1
+<html>
2
+<!-- See also developer.kde.org/documentation/other/compiling.html -->
3
+<!-- and www/anoncvs.html -->
4
+<body bgcolor="#FFFFFF">
5
+<h1>THIS DOCUMENT DESCRIBES HOW YOU CAN COMPILE KDE WHEN USING CVS</h1>
6
+
7
+<p>(If you use source tarballs, you can skip "make -f Makefile.cvs" and
8
+should use "make distclean" instead of "make cvs-clean")
9
+
10
+<p><h3>What you need</h3>
11
+
12
+<p>Make sure you get the following stuff from CVS:
13
+
14
+<p><ul><li>qt-copy (This is qt-3.3.2)
15
+<li>arts
16
+<li>kdelibs
17
+<li>kdebase (strongly recommended but not strictly necessary)
18
+<li>any other package you are interested in
19
+</ul>
20
+
21
+<p>It is important that you compile AND INSTALL the above packages in the 
22
+above order.
23
+
24
+<p>Further you will need GNU make, autoconf 2.52, automake 1.5 and 
25
+a working C++ compiler (eg. gcc 2.95.2)
26
+
27
+<p><h3>Preparations</h3>
28
+
29
+<p>Before you start you must decide two things:
30
+
31
+<p>1) Where do you want to have Qt installed? Qt is a bit lame in that it 
32
+basically installs itself in its own source-tree, but symlinks are your 
33
+friend. E.g you could link /usr/local/lib/qt3 to where you keep your Qt 
34
+source. Qt libs then end up in /usr/local/lib/qt3/lib.
35
+
36
+<p>2) Where do you want to have KDE installed. A good candidate is /usr/local/kde
37
+
38
+<p>Make sure you do (if using sh, ksh, or bash):
39
+<pre>export KDEDIR=/usr/local/kde</pre>
40
+
41
+<p>With csh or tcsh the following is more appropriate:
42
+
43
+<pre>setenv KDEDIR /usr/local/kde</pre>
44
+
45
+<p>Now you want to make sure that Qt and KDE libraries are picked up correctly.
46
+
47
+<p>On systems that respond to environment variables something similar to the 
48
+following is appropriate:
49
+
50
+<p>export LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib
51
+
52
+<p>On systems whose diety of choice is ldconfig, try:
53
+<pre>ldconfig -m $KDEDIR/lib
54
+ldconfig -m $QTDIR/lib</pre>
55
+
56
+<p>You probably also want to add $KDEDIR/bin and $QTDIR/bin to your path.
57
+
58
+<p>See http://www.kde.org/kde2-and-kde3.html for tips about setting up
59
+KDE 3.0 next to KDE 2.x.
60
+
61
+<p><h3>Preparing CVS modules</h3>
62
+<p>
63
+All KDE modules require an "admin" sub-directory. You can create it by
64
+making a symbolic link from kde-common/admin, make sure to check out the
65
+kde-common module.
66
+<p>
67
+Example:<br>
68
+<pre>
69
+cd kdelibs
70
+ln -s ../kde-common/admin
71
+</pre>
72
+
73
+<p><h3>Compiling</h3>
74
+
75
+<p>The magic sequence to compile &amp; install a package is:
76
+<pre>gmake -f Makefile.cvs
77
+./configure --enable-debug
78
+gmake
79
+gmake install </pre>
80
+
81
+<p>(On Linux, GNU make is the default make, and gmake in the above commands
82
+can be replaced with make).
83
+
84
+<p>For Qt the magic sequence is:
85
+
86
+<pre>./configure -debug -shared -qt-gif -thread -sm -system-zlib -system-libpng -system-jpeg
87
+make</pre>
88
+
89
+<p><h3>Common problems</h3>
90
+
91
+<p>One of the biggest problems is picking up the correct version of Qt, 
92
+especially if your system has more version of Qt installed. Be aware 
93
+that information about library paths gets saved in the "config.cache" 
94
+file, "Makefile.in" as well as "Makefile" files. So it can be that after 
95
+some struggle to get QTDIR/KDEDIR setup correctly your setup is actually 
96
+correct, but old -incorrect- settings are still lying around.
97
+
98
+<p>The best thing to do in such a case is to do a "make cvs-clean". This 
99
+removes all files which aren't stored in CVS. You can then start all over 
100
+again with "makefile -f Makefile.cvs". Make sure you don't have any important 
101
+files lying around in your source tree any more, they will be deleted!
102
+
103
+
104
+<p><h3>Problems?</h3>
105
+
106
+<p>See <a href="http://www.kde.org/compilationfaq.html">http://www.kde.org/compilationfaq.html</a> for common build problems and their solution.
107
+
108
+<p>If you encounter _LINK_ problems you are probably doing something wrong.
109
+Do a "make cvs-clean" and start from scratch, usually this solves the problem.
110
+
111
+<p>If you encounter missing include files, especially if the files start with
112
+a 'q', you probably have not setup your QTDIR correct or have the wrong 
113
+version of Qt.
114
+
115
+<p>If you encounter compile errors after updating from CVS, check whether you 
116
+need to update kdelibs as well. If the problems persists, wait a few hours,
117
+usually compile errors are fixed shortly after they have been introduced.
118
+
119
+<p>If you still have problems read the kde-devel@kde.org mailinglist and/or
120
+post your problem there. You can subscribe by sending mail to
121
+kde-devel-request@kde.org with "subscribe" in the subject.
122
+
123
+<p>Have fun!
124
+
125
+<p>Cheers,<br>
126
+Waldo Bastian<br>
127
+bastian@kde.org<br>
128
+</body>
129
+</html>
130
+

+ 346
- 0
COPYING View File

@@ -0,0 +1,346 @@
1
+NOTE! The GPL below is copyrighted by the Free Software Foundation, but
2
+the instance of code that it refers to (the kde programs) are copyrighted
3
+by the authors who actually wrote it.
4
+
5
+---------------------------------------------------------------------------
6
+			
7
+		    GNU GENERAL PUBLIC LICENSE
8
+		       Version 2, June 1991
9
+
10
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
11
+               51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
12
+ Everyone is permitted to copy and distribute verbatim copies
13
+ of this license document, but changing it is not allowed.
14
+
15
+			    Preamble
16
+
17
+  The licenses for most software are designed to take away your
18
+freedom to share and change it.  By contrast, the GNU General Public
19
+License is intended to guarantee your freedom to share and change free
20
+software--to make sure the software is free for all its users.  This
21
+General Public License applies to most of the Free Software
22
+Foundation's software and to any other program whose authors commit to
23
+using it.  (Some other Free Software Foundation software is covered by
24
+the GNU Library General Public License instead.)  You can apply it to
25
+your programs, too.
26
+
27
+  When we speak of free software, we are referring to freedom, not
28
+price.  Our General Public Licenses are designed to make sure that you
29
+have the freedom to distribute copies of free software (and charge for
30
+this service if you wish), that you receive source code or can get it
31
+if you want it, that you can change the software or use pieces of it
32
+in new free programs; and that you know you can do these things.
33
+
34
+  To protect your rights, we need to make restrictions that forbid
35
+anyone to deny you these rights or to ask you to surrender the rights.
36
+These restrictions translate to certain responsibilities for you if you
37
+distribute copies of the software, or if you modify it.
38
+
39
+  For example, if you distribute copies of such a program, whether
40
+gratis or for a fee, you must give the recipients all the rights that
41
+you have.  You must make sure that they, too, receive or can get the
42
+source code.  And you must show them these terms so they know their
43
+rights.
44
+
45
+  We protect your rights with two steps: (1) copyright the software, and
46
+(2) offer you this license which gives you legal permission to copy,
47
+distribute and/or modify the software.
48
+
49
+  Also, for each author's protection and ours, we want to make certain
50
+that everyone understands that there is no warranty for this free
51
+software.  If the software is modified by someone else and passed on, we
52
+want its recipients to know that what they have is not the original, so
53
+that any problems introduced by others will not reflect on the original
54
+authors' reputations.
55
+
56
+  Finally, any free program is threatened constantly by software
57
+patents.  We wish to avoid the danger that redistributors of a free
58
+program will individually obtain patent licenses, in effect making the
59
+program proprietary.  To prevent this, we have made it clear that any
60
+patent must be licensed for everyone's free use or not licensed at all.
61
+
62
+  The precise terms and conditions for copying, distribution and
63
+modification follow.
64
+
65
+		    GNU GENERAL PUBLIC LICENSE
66
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
67
+
68
+  0. This License applies to any program or other work which contains
69
+a notice placed by the copyright holder saying it may be distributed
70
+under the terms of this General Public License.  The "Program", below,
71
+refers to any such program or work, and a "work based on the Program"
72
+means either the Program or any derivative work under copyright law:
73
+that is to say, a work containing the Program or a portion of it,
74
+either verbatim or with modifications and/or translated into another
75
+language.  (Hereinafter, translation is included without limitation in
76
+the term "modification".)  Each licensee is addressed as "you".
77
+
78
+Activities other than copying, distribution and modification are not
79
+covered by this License; they are outside its scope.  The act of
80
+running the Program is not restricted, and the output from the Program
81
+is covered only if its contents constitute a work based on the
82
+Program (independent of having been made by running the Program).
83
+Whether that is true depends on what the Program does.
84
+
85
+  1. You may copy and distribute verbatim copies of the Program's
86
+source code as you receive it, in any medium, provided that you
87
+conspicuously and appropriately publish on each copy an appropriate
88
+copyright notice and disclaimer of warranty; keep intact all the
89
+notices that refer to this License and to the absence of any warranty;
90
+and give any other recipients of the Program a copy of this License
91
+along with the Program.
92
+
93
+You may charge a fee for the physical act of transferring a copy, and
94
+you may at your option offer warranty protection in exchange for a fee.
95
+
96
+  2. You may modify your copy or copies of the Program or any portion
97
+of it, thus forming a work based on the Program, and copy and
98
+distribute such modifications or work under the terms of Section 1
99
+above, provided that you also meet all of these conditions:
100
+
101
+    a) You must cause the modified files to carry prominent notices
102
+    stating that you changed the files and the date of any change.
103
+
104
+    b) You must cause any work that you distribute or publish, that in
105
+    whole or in part contains or is derived from the Program or any
106
+    part thereof, to be licensed as a whole at no charge to all third
107
+    parties under the terms of this License.
108
+
109
+    c) If the modified program normally reads commands interactively
110
+    when run, you must cause it, when started running for such
111
+    interactive use in the most ordinary way, to print or display an
112
+    announcement including an appropriate copyright notice and a
113
+    notice that there is no warranty (or else, saying that you provide
114
+    a warranty) and that users may redistribute the program under
115
+    these conditions, and telling the user how to view a copy of this
116
+    License.  (Exception: if the Program itself is interactive but
117
+    does not normally print such an announcement, your work based on
118
+    the Program is not required to print an announcement.)
119
+
120
+These requirements apply to the modified work as a whole.  If
121
+identifiable sections of that work are not derived from the Program,
122
+and can be reasonably considered independent and separate works in
123
+themselves, then this License, and its terms, do not apply to those
124
+sections when you distribute them as separate works.  But when you
125
+distribute the same sections as part of a whole which is a work based
126
+on the Program, the distribution of the whole must be on the terms of
127
+this License, whose permissions for other licensees extend to the
128
+entire whole, and thus to each and every part regardless of who wrote it.
129
+
130
+Thus, it is not the intent of this section to claim rights or contest
131
+your rights to work written entirely by you; rather, the intent is to
132
+exercise the right to control the distribution of derivative or
133
+collective works based on the Program.
134
+
135
+In addition, mere aggregation of another work not based on the Program
136
+with the Program (or with a work based on the Program) on a volume of
137
+a storage or distribution medium does not bring the other work under
138
+the scope of this License.
139
+
140
+  3. You may copy and distribute the Program (or a work based on it,
141
+under Section 2) in object code or executable form under the terms of
142
+Sections 1 and 2 above provided that you also do one of the following:
143
+
144
+    a) Accompany it with the complete corresponding machine-readable
145
+    source code, which must be distributed under the terms of Sections
146
+    1 and 2 above on a medium customarily used for software interchange; or,
147
+
148
+    b) Accompany it with a written offer, valid for at least three
149
+    years, to give any third party, for a charge no more than your
150
+    cost of physically performing source distribution, a complete
151
+    machine-readable copy of the corresponding source code, to be
152
+    distributed under the terms of Sections 1 and 2 above on a medium
153
+    customarily used for software interchange; or,
154
+
155
+    c) Accompany it with the information you received as to the offer
156
+    to distribute corresponding source code.  (This alternative is
157
+    allowed only for noncommercial distribution and only if you
158
+    received the program in object code or executable form with such
159
+    an offer, in accord with Subsection b above.)
160
+
161
+The source code for a work means the preferred form of the work for
162
+making modifications to it.  For an executable work, complete source
163
+code means all the source code for all modules it contains, plus any
164
+associated interface definition files, plus the scripts used to
165
+control compilation and installation of the executable.  However, as a
166
+special exception, the source code distributed need not include
167
+anything that is normally distributed (in either source or binary
168
+form) with the major components (compiler, kernel, and so on) of the
169
+operating system on which the executable runs, unless that component
170
+itself accompanies the executable.
171
+
172
+If distribution of executable or object code is made by offering
173
+access to copy from a designated place, then offering equivalent
174
+access to copy the source code from the same place counts as
175
+distribution of the source code, even though third parties are not
176
+compelled to copy the source along with the object code.
177
+
178
+  4. You may not copy, modify, sublicense, or distribute the Program
179
+except as expressly provided under this License.  Any attempt
180
+otherwise to copy, modify, sublicense or distribute the Program is
181
+void, and will automatically terminate your rights under this License.
182
+However, parties who have received copies, or rights, from you under
183
+this License will not have their licenses terminated so long as such
184
+parties remain in full compliance.
185
+
186
+  5. You are not required to accept this License, since you have not
187
+signed it.  However, nothing else grants you permission to modify or
188
+distribute the Program or its derivative works.  These actions are
189
+prohibited by law if you do not accept this License.  Therefore, by
190
+modifying or distributing the Program (or any work based on the
191
+Program), you indicate your acceptance of this License to do so, and
192
+all its terms and conditions for copying, distributing or modifying
193
+the Program or works based on it.
194
+
195
+  6. Each time you redistribute the Program (or any work based on the
196
+Program), the recipient automatically receives a license from the
197
+original licensor to copy, distribute or modify the Program subject to
198
+these terms and conditions.  You may not impose any further
199
+restrictions on the recipients' exercise of the rights granted herein.
200
+You are not responsible for enforcing compliance by third parties to
201
+this License.
202
+
203
+  7. If, as a consequence of a court judgment or allegation of patent
204
+infringement or for any other reason (not limited to patent issues),
205
+conditions are imposed on you (whether by court order, agreement or
206
+otherwise) that contradict the conditions of this License, they do not
207
+excuse you from the conditions of this License.  If you cannot
208
+distribute so as to satisfy simultaneously your obligations under this
209
+License and any other pertinent obligations, then as a consequence you
210
+may not distribute the Program at all.  For example, if a patent
211
+license would not permit royalty-free redistribution of the Program by
212
+all those who receive copies directly or indirectly through you, then
213
+the only way you could satisfy both it and this License would be to
214
+refrain entirely from distribution of the Program.
215
+
216
+If any portion of this section is held invalid or unenforceable under
217
+any particular circumstance, the balance of the section is intended to
218
+apply and the section as a whole is intended to apply in other
219
+circumstances.
220
+
221
+It is not the purpose of this section to induce you to infringe any
222
+patents or other property right claims or to contest validity of any
223
+such claims; this section has the sole purpose of protecting the
224
+integrity of the free software distribution system, which is
225
+implemented by public license practices.  Many people have made
226
+generous contributions to the wide range of software distributed
227
+through that system in reliance on consistent application of that
228
+system; it is up to the author/donor to decide if he or she is willing
229
+to distribute software through any other system and a licensee cannot
230
+impose that choice.
231
+
232
+This section is intended to make thoroughly clear what is believed to
233
+be a consequence of the rest of this License.
234
+
235
+  8. If the distribution and/or use of the Program is restricted in
236
+certain countries either by patents or by copyrighted interfaces, the
237
+original copyright holder who places the Program under this License
238
+may add an explicit geographical distribution limitation excluding
239
+those countries, so that distribution is permitted only in or among
240
+countries not thus excluded.  In such case, this License incorporates
241
+the limitation as if written in the body of this License.
242
+
243
+  9. The Free Software Foundation may publish revised and/or new versions
244
+of the General Public License from time to time.  Such new versions will
245
+be similar in spirit to the present version, but may differ in detail to
246
+address new problems or concerns.
247
+
248
+Each version is given a distinguishing version number.  If the Program
249
+specifies a version number of this License which applies to it and "any
250
+later version", you have the option of following the terms and conditions
251
+either of that version or of any later version published by the Free
252
+Software Foundation.  If the Program does not specify a version number of
253
+this License, you may choose any version ever published by the Free Software
254
+Foundation.
255
+
256
+  10. If you wish to incorporate parts of the Program into other free
257
+programs whose distribution conditions are different, write to the author
258
+to ask for permission.  For software which is copyrighted by the Free
259
+Software Foundation, write to the Free Software Foundation; we sometimes
260
+make exceptions for this.  Our decision will be guided by the two goals
261
+of preserving the free status of all derivatives of our free software and
262
+of promoting the sharing and reuse of software generally.
263
+
264
+			    NO WARRANTY
265
+
266
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
267
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
268
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
269
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
270
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
271
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
272
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
273
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
274
+REPAIR OR CORRECTION.
275
+
276
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
277
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
278
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
279
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
280
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
281
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
282
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
283
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
284
+POSSIBILITY OF SUCH DAMAGES.
285
+
286
+		     END OF TERMS AND CONDITIONS
287
+
288
+	    How to Apply These Terms to Your New Programs
289
+
290
+  If you develop a new program, and you want it to be of the greatest
291
+possible use to the public, the best way to achieve this is to make it
292
+free software which everyone can redistribute and change under these terms.
293
+
294
+  To do so, attach the following notices to the program.  It is safest
295
+to attach them to the start of each source file to most effectively
296
+convey the exclusion of warranty; and each file should have at least
297
+the "copyright" line and a pointer to where the full notice is found.
298
+
299
+    <one line to give the program's name and a brief idea of what it does.>
300
+    Copyright (C) 19yy  <name of author>
301
+
302
+    This program is free software; you can redistribute it and/or modify
303
+    it under the terms of the GNU General Public License as published by
304
+    the Free Software Foundation; either version 2 of the License, or
305
+    (at your option) any later version.
306
+
307
+    This program is distributed in the hope that it will be useful,
308
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
309
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
310
+    GNU General Public License for more details.
311
+
312
+    You should have received a copy of the GNU General Public License
313
+    along with this program; if not, write to the Free Software
314
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
315
+
316
+
317
+Also add information on how to contact you by electronic and paper mail.
318
+
319
+If the program is interactive, make it output a short notice like this
320
+when it starts in an interactive mode:
321
+
322
+    Gnomovision version 69, Copyright (C) 19yy name of author
323
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
324
+    This is free software, and you are welcome to redistribute it
325
+    under certain conditions; type `show c' for details.
326
+
327
+The hypothetical commands `show w' and `show c' should show the appropriate
328
+parts of the General Public License.  Of course, the commands you use may
329
+be called something other than `show w' and `show c'; they could even be
330
+mouse-clicks or menu items--whatever suits your program.
331
+
332
+You should also get your employer (if you work as a programmer) or your
333
+school, if any, to sign a "copyright disclaimer" for the program, if
334
+necessary.  Here is a sample; alter the names:
335
+
336
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
337
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
338
+
339
+  <signature of Ty Coon>, 1 April 1989
340
+  Ty Coon, President of Vice
341
+
342
+This General Public License does not permit incorporating your program into
343
+proprietary programs.  If your program is a subroutine library, you may
344
+consider it more useful to permit linking proprietary applications with the
345
+library.  If this is what you want to do, use the GNU Library General
346
+Public License instead of this License.

+ 397
- 0
COPYING-DOCS View File

@@ -0,0 +1,397 @@
1
+		GNU Free Documentation License
2
+		  Version 1.2, November 2002
3
+
4
+
5
+ Copyright (C) 2000,2001,2002  Free Software Foundation, Inc.
6
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
7
+ Everyone is permitted to copy and distribute verbatim copies
8
+ of this license document, but changing it is not allowed.
9
+
10
+
11
+0. PREAMBLE
12
+
13
+The purpose of this License is to make a manual, textbook, or other
14
+functional and useful document "free" in the sense of freedom: to
15
+assure everyone the effective freedom to copy and redistribute it,
16
+with or without modifying it, either commercially or noncommercially.
17
+Secondarily, this License preserves for the author and publisher a way
18
+to get credit for their work, while not being considered responsible
19
+for modifications made by others.
20
+
21
+This License is a kind of "copyleft", which means that derivative
22
+works of the document must themselves be free in the same sense.  It
23
+complements the GNU General Public License, which is a copyleft
24
+license designed for free software.
25
+
26
+We have designed this License in order to use it for manuals for free
27
+software, because free software needs free documentation: a free
28
+program should come with manuals providing the same freedoms that the
29
+software does.  But this License is not limited to software manuals;
30
+it can be used for any textual work, regardless of subject matter or
31
+whether it is published as a printed book.  We recommend this License
32
+principally for works whose purpose is instruction or reference.
33
+
34
+
35
+1. APPLICABILITY AND DEFINITIONS
36
+
37
+This License applies to any manual or other work, in any medium, that
38
+contains a notice placed by the copyright holder saying it can be
39
+distributed under the terms of this License.  Such a notice grants a
40
+world-wide, royalty-free license, unlimited in duration, to use that
41
+work under the conditions stated herein.  The "Document", below,
42
+refers to any such manual or work.  Any member of the public is a
43
+licensee, and is addressed as "you".  You accept the license if you
44
+copy, modify or distribute the work in a way requiring permission
45
+under copyright law.
46
+
47
+A "Modified Version" of the Document means any work containing the
48
+Document or a portion of it, either copied verbatim, or with
49
+modifications and/or translated into another language.
50
+
51
+A "Secondary Section" is a named appendix or a front-matter section of
52
+the Document that deals exclusively with the relationship of the
53
+publishers or authors of the Document to the Document's overall subject
54
+(or to related matters) and contains nothing that could fall directly
55
+within that overall subject.  (Thus, if the Document is in part a
56
+textbook of mathematics, a Secondary Section may not explain any
57
+mathematics.)  The relationship could be a matter of historical
58
+connection with the subject or with related matters, or of legal,
59
+commercial, philosophical, ethical or political position regarding
60
+them.
61
+
62
+The "Invariant Sections" are certain Secondary Sections whose titles
63
+are designated, as being those of Invariant Sections, in the notice
64
+that says that the Document is released under this License.  If a
65
+section does not fit the above definition of Secondary then it is not
66
+allowed to be designated as Invariant.  The Document may contain zero
67
+Invariant Sections.  If the Document does not identify any Invariant
68
+Sections then there are none.
69
+
70
+The "Cover Texts" are certain short passages of text that are listed,
71
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
72
+the Document is released under this License.  A Front-Cover Text may
73
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
74
+
75
+A "Transparent" copy of the Document means a machine-readable copy,
76
+represented in a format whose specification is available to the
77
+general public, that is suitable for revising the document
78
+straightforwardly with generic text editors or (for images composed of
79
+pixels) generic paint programs or (for drawings) some widely available
80
+drawing editor, and that is suitable for input to text formatters or
81
+for automatic translation to a variety of formats suitable for input
82
+to text formatters.  A copy made in an otherwise Transparent file
83
+format whose markup, or absence of markup, has been arranged to thwart
84
+or discourage subsequent modification by readers is not Transparent.
85
+An image format is not Transparent if used for any substantial amount
86
+of text.  A copy that is not "Transparent" is called "Opaque".
87
+
88
+Examples of suitable formats for Transparent copies include plain
89
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
90
+or XML using a publicly available DTD, and standard-conforming simple
91
+HTML, PostScript or PDF designed for human modification.  Examples of
92
+transparent image formats include PNG, XCF and JPG.  Opaque formats
93
+include proprietary formats that can be read and edited only by
94
+proprietary word processors, SGML or XML for which the DTD and/or
95
+processing tools are not generally available, and the
96
+machine-generated HTML, PostScript or PDF produced by some word
97
+processors for output purposes only.
98
+
99
+The "Title Page" means, for a printed book, the title page itself,
100
+plus such following pages as are needed to hold, legibly, the material
101
+this License requires to appear in the title page.  For works in
102
+formats which do not have any title page as such, "Title Page" means
103
+the text near the most prominent appearance of the work's title,
104
+preceding the beginning of the body of the text.
105
+
106
+A section "Entitled XYZ" means a named subunit of the Document whose
107
+title either is precisely XYZ or contains XYZ in parentheses following
108
+text that translates XYZ in another language.  (Here XYZ stands for a
109
+specific section name mentioned below, such as "Acknowledgements",
110
+"Dedications", "Endorsements", or "History".)  To "Preserve the Title"
111
+of such a section when you modify the Document means that it remains a
112
+section "Entitled XYZ" according to this definition.
113
+
114
+The Document may include Warranty Disclaimers next to the notice which
115
+states that this License applies to the Document.  These Warranty
116
+Disclaimers are considered to be included by reference in this
117
+License, but only as regards disclaiming warranties: any other
118
+implication that these Warranty Disclaimers may have is void and has
119
+no effect on the meaning of this License.
120
+
121
+
122
+2. VERBATIM COPYING
123
+
124
+You may copy and distribute the Document in any medium, either
125
+commercially or noncommercially, provided that this License, the
126
+copyright notices, and the license notice saying this License applies
127
+to the Document are reproduced in all copies, and that you add no other
128
+conditions whatsoever to those of this License.  You may not use
129
+technical measures to obstruct or control the reading or further
130
+copying of the copies you make or distribute.  However, you may accept
131
+compensation in exchange for copies.  If you distribute a large enough
132
+number of copies you must also follow the conditions in section 3.
133
+
134
+You may also lend copies, under the same conditions stated above, and
135
+you may publicly display copies.
136
+
137
+
138
+3. COPYING IN QUANTITY
139
+
140
+If you publish printed copies (or copies in media that commonly have
141
+printed covers) of the Document, numbering more than 100, and the
142
+Document's license notice requires Cover Texts, you must enclose the
143
+copies in covers that carry, clearly and legibly, all these Cover
144
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
145
+the back cover.  Both covers must also clearly and legibly identify
146
+you as the publisher of these copies.  The front cover must present
147
+the full title with all words of the title equally prominent and
148
+visible.  You may add other material on the covers in addition.
149
+Copying with changes limited to the covers, as long as they preserve
150
+the title of the Document and satisfy these conditions, can be treated
151
+as verbatim copying in other respects.
152
+
153
+If the required texts for either cover are too voluminous to fit
154
+legibly, you should put the first ones listed (as many as fit
155
+reasonably) on the actual cover, and continue the rest onto adjacent
156
+pages.
157
+
158
+If you publish or distribute Opaque copies of the Document numbering
159
+more than 100, you must either include a machine-readable Transparent
160
+copy along with each Opaque copy, or state in or with each Opaque copy
161
+a computer-network location from which the general network-using
162
+public has access to download using public-standard network protocols
163
+a complete Transparent copy of the Document, free of added material.
164
+If you use the latter option, you must take reasonably prudent steps,
165
+when you begin distribution of Opaque copies in quantity, to ensure
166
+that this Transparent copy will remain thus accessible at the stated
167
+location until at least one year after the last time you distribute an
168
+Opaque copy (directly or through your agents or retailers) of that
169
+edition to the public.
170
+
171
+It is requested, but not required, that you contact the authors of the
172
+Document well before redistributing any large number of copies, to give
173
+them a chance to provide you with an updated version of the Document.
174
+
175
+
176
+4. MODIFICATIONS
177
+
178
+You may copy and distribute a Modified Version of the Document under
179
+the conditions of sections 2 and 3 above, provided that you release
180
+the Modified Version under precisely this License, with the Modified
181
+Version filling the role of the Document, thus licensing distribution
182
+and modification of the Modified Version to whoever possesses a copy
183
+of it.  In addition, you must do these things in the Modified Version:
184
+
185
+A. Use in the Title Page (and on the covers, if any) a title distinct
186
+   from that of the Document, and from those of previous versions
187
+   (which should, if there were any, be listed in the History section
188
+   of the Document).  You may use the same title as a previous version
189
+   if the original publisher of that version gives permission.
190
+B. List on the Title Page, as authors, one or more persons or entities
191
+   responsible for authorship of the modifications in the Modified
192
+   Version, together with at least five of the principal authors of the
193
+   Document (all of its principal authors, if it has fewer than five),
194
+   unless they release you from this requirement.
195
+C. State on the Title page the name of the publisher of the
196
+   Modified Version, as the publisher.
197
+D. Preserve all the copyright notices of the Document.
198
+E. Add an appropriate copyright notice for your modifications
199
+   adjacent to the other copyright notices.
200
+F. Include, immediately after the copyright notices, a license notice
201
+   giving the public permission to use the Modified Version under the
202
+   terms of this License, in the form shown in the Addendum below.
203
+G. Preserve in that license notice the full lists of Invariant Sections
204
+   and required Cover Texts given in the Document's license notice.
205
+H. Include an unaltered copy of this License.
206
+I. Preserve the section Entitled "History", Preserve its Title, and add
207
+   to it an item stating at least the title, year, new authors, and
208
+   publisher of the Modified Version as given on the Title Page.  If
209
+   there is no section Entitled "History" in the Document, create one
210
+   stating the title, year, authors, and publisher of the Document as
211
+   given on its Title Page, then add an item describing the Modified
212
+   Version as stated in the previous sentence.
213
+J. Preserve the network location, if any, given in the Document for
214
+   public access to a Transparent copy of the Document, and likewise
215
+   the network locations given in the Document for previous versions
216
+   it was based on.  These may be placed in the "History" section.
217
+   You may omit a network location for a work that was published at
218
+   least four years before the Document itself, or if the original
219
+   publisher of the version it refers to gives permission.
220
+K. For any section Entitled "Acknowledgements" or "Dedications",
221
+   Preserve the Title of the section, and preserve in the section all
222
+   the substance and tone of each of the contributor acknowledgements
223
+   and/or dedications given therein.
224
+L. Preserve all the Invariant Sections of the Document,
225
+   unaltered in their text and in their titles.  Section numbers
226
+   or the equivalent are not considered part of the section titles.
227
+M. Delete any section Entitled "Endorsements".  Such a section
228
+   may not be included in the Modified Version.
229
+N. Do not retitle any existing section to be Entitled "Endorsements"
230
+   or to conflict in title with any Invariant Section.
231
+O. Preserve any Warranty Disclaimers.
232
+
233
+If the Modified Version includes new front-matter sections or
234
+appendices that qualify as Secondary Sections and contain no material
235
+copied from the Document, you may at your option designate some or all
236
+of these sections as invariant.  To do this, add their titles to the
237
+list of Invariant Sections in the Modified Version's license notice.
238
+These titles must be distinct from any other section titles.
239
+
240
+You may add a section Entitled "Endorsements", provided it contains
241
+nothing but endorsements of your Modified Version by various
242
+parties--for example, statements of peer review or that the text has
243
+been approved by an organization as the authoritative definition of a
244
+standard.
245
+
246
+You may add a passage of up to five words as a Front-Cover Text, and a
247
+passage of up to 25 words as a Back-Cover Text, to the end of the list
248
+of Cover Texts in the Modified Version.  Only one passage of
249
+Front-Cover Text and one of Back-Cover Text may be added by (or
250
+through arrangements made by) any one entity.  If the Document already
251
+includes a cover text for the same cover, previously added by you or
252
+by arrangement made by the same entity you are acting on behalf of,
253
+you may not add another; but you may replace the old one, on explicit
254
+permission from the previous publisher that added the old one.
255
+
256
+The author(s) and publisher(s) of the Document do not by this License
257
+give permission to use their names for publicity for or to assert or
258
+imply endorsement of any Modified Version.
259
+
260
+
261
+5. COMBINING DOCUMENTS
262
+
263
+You may combine the Document with other documents released under this
264
+License, under the terms defined in section 4 above for modified
265
+versions, provided that you include in the combination all of the
266
+Invariant Sections of all of the original documents, unmodified, and
267
+list them all as Invariant Sections of your combined work in its
268
+license notice, and that you preserve all their Warranty Disclaimers.
269
+
270
+The combined work need only contain one copy of this License, and
271
+multiple identical Invariant Sections may be replaced with a single
272
+copy.  If there are multiple Invariant Sections with the same name but
273
+different contents, make the title of each such section unique by
274
+adding at the end of it, in parentheses, the name of the original
275
+author or publisher of that section if known, or else a unique number.
276
+Make the same adjustment to the section titles in the list of
277
+Invariant Sections in the license notice of the combined work.
278
+
279
+In the combination, you must combine any sections Entitled "History"
280
+in the various original documents, forming one section Entitled
281
+"History"; likewise combine any sections Entitled "Acknowledgements",
282
+and any sections Entitled "Dedications".  You must delete all sections
283
+Entitled "Endorsements".
284
+
285
+
286
+6. COLLECTIONS OF DOCUMENTS
287
+
288
+You may make a collection consisting of the Document and other documents
289
+released under this License, and replace the individual copies of this
290
+License in the various documents with a single copy that is included in
291
+the collection, provided that you follow the rules of this License for
292
+verbatim copying of each of the documents in all other respects.
293
+
294
+You may extract a single document from such a collection, and distribute
295
+it individually under this License, provided you insert a copy of this
296
+License into the extracted document, and follow this License in all
297
+other respects regarding verbatim copying of that document.
298
+
299
+
300
+7. AGGREGATION WITH INDEPENDENT WORKS
301
+
302
+A compilation of the Document or its derivatives with other separate
303
+and independent documents or works, in or on a volume of a storage or
304
+distribution medium, is called an "aggregate" if the copyright
305
+resulting from the compilation is not used to limit the legal rights
306
+of the compilation's users beyond what the individual works permit.
307
+When the Document is included in an aggregate, this License does not
308
+apply to the other works in the aggregate which are not themselves
309
+derivative works of the Document.
310
+
311
+If the Cover Text requirement of section 3 is applicable to these
312
+copies of the Document, then if the Document is less than one half of
313
+the entire aggregate, the Document's Cover Texts may be placed on
314
+covers that bracket the Document within the aggregate, or the
315
+electronic equivalent of covers if the Document is in electronic form.
316
+Otherwise they must appear on printed covers that bracket the whole
317
+aggregate.
318
+
319
+
320
+8. TRANSLATION
321
+
322
+Translation is considered a kind of modification, so you may
323
+distribute translations of the Document under the terms of section 4.
324
+Replacing Invariant Sections with translations requires special
325
+permission from their copyright holders, but you may include
326
+translations of some or all Invariant Sections in addition to the
327
+original versions of these Invariant Sections.  You may include a
328
+translation of this License, and all the license notices in the
329
+Document, and any Warranty Disclaimers, provided that you also include
330
+the original English version of this License and the original versions
331
+of those notices and disclaimers.  In case of a disagreement between
332
+the translation and the original version of this License or a notice
333
+or disclaimer, the original version will prevail.
334
+
335
+If a section in the Document is Entitled "Acknowledgements",
336
+"Dedications", or "History", the requirement (section 4) to Preserve
337
+its Title (section 1) will typically require changing the actual
338
+title.
339
+
340
+
341
+9. TERMINATION
342
+
343
+You may not copy, modify, sublicense, or distribute the Document except
344
+as expressly provided for under this License.  Any other attempt to
345
+copy, modify, sublicense or distribute the Document is void, and will
346
+automatically terminate your rights under this License.  However,
347
+parties who have received copies, or rights, from you under this
348
+License will not have their licenses terminated so long as such
349
+parties remain in full compliance.
350
+
351
+
352
+10. FUTURE REVISIONS OF THIS LICENSE
353
+
354
+The Free Software Foundation may publish new, revised versions
355
+of the GNU Free Documentation License from time to time.  Such new
356
+versions will be similar in spirit to the present version, but may
357
+differ in detail to address new problems or concerns.  See
358
+http://www.gnu.org/copyleft/.
359
+
360
+Each version of the License is given a distinguishing version number.
361
+If the Document specifies that a particular numbered version of this
362
+License "or any later version" applies to it, you have the option of
363
+following the terms and conditions either of that specified version or
364
+of any later version that has been published (not as a draft) by the
365
+Free Software Foundation.  If the Document does not specify a version
366
+number of this License, you may choose any version ever published (not
367
+as a draft) by the Free Software Foundation.
368
+
369
+
370
+ADDENDUM: How to use this License for your documents
371
+
372
+To use this License in a document you have written, include a copy of
373
+the License in the document and put the following copyright and
374
+license notices just after the title page:
375
+
376
+    Copyright (c)  YEAR  YOUR NAME.
377
+    Permission is granted to copy, distribute and/or modify this document
378
+    under the terms of the GNU Free Documentation License, Version 1.2
379
+    or any later version published by the Free Software Foundation;
380
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
381
+    A copy of the license is included in the section entitled "GNU
382
+    Free Documentation License".
383
+
384
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
385
+replace the "with...Texts." line with this:
386
+
387
+    with the Invariant Sections being LIST THEIR TITLES, with the
388
+    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
389
+
390
+If you have Invariant Sections without Cover Texts, or some other
391
+combination of the three, merge those two alternatives to suit the
392
+situation.
393
+
394
+If your document contains nontrivial examples of program code, we
395
+recommend releasing these examples in parallel under your choice of
396
+free software license, such as the GNU General Public License,
397
+to permit their use in free software.

+ 20
- 0
COPYING.BSD View File

@@ -0,0 +1,20 @@
1
+Redistribution and use in source and binary forms, with or without
2
+modification, are permitted provided that the following conditions
3
+are met:
4
+
5
+1. Redistributions of source code must retain the above copyright
6
+   notice, this list of conditions and the following disclaimer.
7
+2. Redistributions in binary form must reproduce the above copyright
8
+   notice, this list of conditions and the following disclaimer in the
9
+   documentation and/or other materials provided with the distribution.
10
+
11
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
12
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
13
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
14
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
15
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
17
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
18
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
19
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
20
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 486
- 0
COPYING.LIB View File

@@ -0,0 +1,486 @@
1
+NOTE! The LGPL below is copyrighted by the Free Software Foundation, but 
2
+the instance of code that it refers to (the kde libraries) are copyrighted 
3
+by the authors who actually wrote it.
4
+				   
5
+---------------------------------------------------------------------------
6
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
7
+		       Version 2, June 1991
8
+
9
+ Copyright (C) 1991 Free Software Foundation, Inc.
10
+                    51 Franklin Street, Fifth Floor
11
+                    Boston, MA 02110-1301, USA.
12
+ Everyone is permitted to copy and distribute verbatim copies
13
+ of this license document, but changing it is not allowed.
14
+
15
+[This is the first released version of the library GPL.  It is
16
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
17
+
18
+			    Preamble
19
+
20
+  The licenses for most software are designed to take away your
21
+freedom to share and change it.  By contrast, the GNU General Public
22
+Licenses are intended to guarantee your freedom to share and change
23
+free software--to make sure the software is free for all its users.
24
+
25
+  This license, the Library General Public License, applies to some
26
+specially designated Free Software Foundation software, and to any
27
+other libraries whose authors decide to use it.  You can use it for
28
+your libraries, too.
29
+
30
+  When we speak of free software, we are referring to freedom, not
31
+price.  Our General Public Licenses are designed to make sure that you
32
+have the freedom to distribute copies of free software (and charge for
33
+this service if you wish), that you receive source code or can get it
34
+if you want it, that you can change the software or use pieces of it
35
+in new free programs; and that you know you can do these things.
36
+
37
+  To protect your rights, we need to make restrictions that forbid
38
+anyone to deny you these rights or to ask you to surrender the rights.
39
+These restrictions translate to certain responsibilities for you if
40
+you distribute copies of the library, or if you modify it.
41
+
42
+  For example, if you distribute copies of the library, whether gratis
43
+or for a fee, you must give the recipients all the rights that we gave
44
+you.  You must make sure that they, too, receive or can get the source
45
+code.  If you link a program with the library, you must provide
46
+complete object files to the recipients so that they can relink them
47
+with the library, after making changes to the library and recompiling
48
+it.  And you must show them these terms so they know their rights.
49
+
50
+  Our method of protecting your rights has two steps: (1) copyright
51
+the library, and (2) offer you this license which gives you legal
52
+permission to copy, distribute and/or modify the library.
53
+
54
+  Also, for each distributor's protection, we want to make certain
55
+that everyone understands that there is no warranty for this free
56
+library.  If the library is modified by someone else and passed on, we
57
+want its recipients to know that what they have is not the original
58
+version, so that any problems introduced by others will not reflect on
59
+the original authors' reputations.
60
+
61
+  Finally, any free program is threatened constantly by software
62
+patents.  We wish to avoid the danger that companies distributing free
63
+software will individually obtain patent licenses, thus in effect
64
+transforming the program into proprietary software.  To prevent this,
65
+we have made it clear that any patent must be licensed for everyone's
66
+free use or not licensed at all.
67
+
68
+  Most GNU software, including some libraries, is covered by the ordinary
69
+GNU General Public License, which was designed for utility programs.  This
70
+license, the GNU Library General Public License, applies to certain
71
+designated libraries.  This license is quite different from the ordinary
72
+one; be sure to read it in full, and don't assume that anything in it is
73
+the same as in the ordinary license.
74
+
75
+  The reason we have a separate public license for some libraries is that
76
+they blur the distinction we usually make between modifying or adding to a
77
+program and simply using it.  Linking a program with a library, without
78
+changing the library, is in some sense simply using the library, and is
79
+analogous to running a utility program or application program.  However, in
80
+a textual and legal sense, the linked executable is a combined work, a
81
+derivative of the original library, and the ordinary General Public License
82
+treats it as such.
83
+
84
+  Because of this blurred distinction, using the ordinary General
85
+Public License for libraries did not effectively promote software
86
+sharing, because most developers did not use the libraries.  We
87
+concluded that weaker conditions might promote sharing better.
88
+
89
+  However, unrestricted linking of non-free programs would deprive the
90
+users of those programs of all benefit from the free status of the
91
+libraries themselves.  This Library General Public License is intended to
92
+permit developers of non-free programs to use free libraries, while
93
+preserving your freedom as a user of such programs to change the free
94
+libraries that are incorporated in them.  (We have not seen how to achieve
95
+this as regards changes in header files, but we have achieved it as regards
96
+changes in the actual functions of the Library.)  The hope is that this
97
+will lead to faster development of free libraries.
98
+
99
+  The precise terms and conditions for copying, distribution and
100
+modification follow.  Pay close attention to the difference between a
101
+"work based on the library" and a "work that uses the library".  The
102
+former contains code derived from the library, while the latter only
103
+works together with the library.
104
+
105
+  Note that it is possible for a library to be covered by the ordinary
106
+General Public License rather than by this special one.
107
+
108
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
109
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
110
+
111
+  0. This License Agreement applies to any software library which
112
+contains a notice placed by the copyright holder or other authorized
113
+party saying it may be distributed under the terms of this Library
114
+General Public License (also called "this License").  Each licensee is
115
+addressed as "you".
116
+
117
+  A "library" means a collection of software functions and/or data
118
+prepared so as to be conveniently linked with application programs
119
+(which use some of those functions and data) to form executables.
120
+
121
+  The "Library", below, refers to any such software library or work
122
+which has been distributed under these terms.  A "work based on the
123
+Library" means either the Library or any derivative work under
124
+copyright law: that is to say, a work containing the Library or a
125
+portion of it, either verbatim or with modifications and/or translated
126
+straightforwardly into another language.  (Hereinafter, translation is
127
+included without limitation in the term "modification".)
128
+
129
+  "Source code" for a work means the preferred form of the work for
130
+making modifications to it.  For a library, complete source code means
131
+all the source code for all modules it contains, plus any associated
132
+interface definition files, plus the scripts used to control compilation
133
+and installation of the library.
134
+
135
+  Activities other than copying, distribution and modification are not
136
+covered by this License; they are outside its scope.  The act of
137
+running a program using the Library is not restricted, and output from
138
+such a program is covered only if its contents constitute a work based
139
+on the Library (independent of the use of the Library in a tool for
140
+writing it).  Whether that is true depends on what the Library does
141
+and what the program that uses the Library does.
142
+  
143
+  1. You may copy and distribute verbatim copies of the Library's
144
+complete source code as you receive it, in any medium, provided that
145
+you conspicuously and appropriately publish on each copy an
146
+appropriate copyright notice and disclaimer of warranty; keep intact
147
+all the notices that refer to this License and to the absence of any
148
+warranty; and distribute a copy of this License along with the
149
+Library.
150
+
151
+  You may charge a fee for the physical act of transferring a copy,
152
+and you may at your option offer warranty protection in exchange for a
153
+fee.
154
+
155
+  2. You may modify your copy or copies of the Library or any portion
156
+of it, thus forming a work based on the Library, and copy and
157
+distribute such modifications or work under the terms of Section 1
158
+above, provided that you also meet all of these conditions:
159
+
160
+    a) The modified work must itself be a software library.
161
+
162
+    b) You must cause the files modified to carry prominent notices
163
+    stating that you changed the files and the date of any change.
164
+
165
+    c) You must cause the whole of the work to be licensed at no
166
+    charge to all third parties under the terms of this License.
167
+
168
+    d) If a facility in the modified Library refers to a function or a
169
+    table of data to be supplied by an application program that uses
170
+    the facility, other than as an argument passed when the facility
171
+    is invoked, then you must make a good faith effort to ensure that,
172
+    in the event an application does not supply such function or
173
+    table, the facility still operates, and performs whatever part of
174
+    its purpose remains meaningful.
175
+
176
+    (For example, a function in a library to compute square roots has
177
+    a purpose that is entirely well-defined independent of the
178
+    application.  Therefore, Subsection 2d requires that any
179
+    application-supplied function or table used by this function must
180
+    be optional: if the application does not supply it, the square
181
+    root function must still compute square roots.)
182
+
183
+These requirements apply to the modified work as a whole.  If
184
+identifiable sections of that work are not derived from the Library,
185
+and can be reasonably considered independent and separate works in
186
+themselves, then this License, and its terms, do not apply to those
187
+sections when you distribute them as separate works.  But when you
188
+distribute the same sections as part of a whole which is a work based
189
+on the Library, the distribution of the whole must be on the terms of
190
+this License, whose permissions for other licensees extend to the
191
+entire whole, and thus to each and every part regardless of who wrote
192
+it.
193
+
194
+Thus, it is not the intent of this section to claim rights or contest
195
+your rights to work written entirely by you; rather, the intent is to
196
+exercise the right to control the distribution of derivative or
197
+collective works based on the Library.
198
+
199
+In addition, mere aggregation of another work not based on the Library
200
+with the Library (or with a work based on the Library) on a volume of
201
+a storage or distribution medium does not bring the other work under
202
+the scope of this License.
203
+
204
+  3. You may opt to apply the terms of the ordinary GNU General Public
205
+License instead of this License to a given copy of the Library.  To do
206
+this, you must alter all the notices that refer to this License, so
207
+that they refer to the ordinary GNU General Public License, version 2,
208
+instead of to this License.  (If a newer version than version 2 of the
209
+ordinary GNU General Public License has appeared, then you can specify
210
+that version instead if you wish.)  Do not make any other change in
211
+these notices.
212
+
213
+  Once this change is made in a given copy, it is irreversible for
214
+that copy, so the ordinary GNU General Public License applies to all
215
+subsequent copies and derivative works made from that copy.
216
+
217
+  This option is useful when you wish to copy part of the code of
218
+the Library into a program that is not a library.
219
+
220
+  4. You may copy and distribute the Library (or a portion or
221
+derivative of it, under Section 2) in object code or executable form
222
+under the terms of Sections 1 and 2 above provided that you accompany
223
+it with the complete corresponding machine-readable source code, which
224
+must be distributed under the terms of Sections 1 and 2 above on a
225
+medium customarily used for software interchange.
226
+
227
+  If distribution of object code is made by offering access to copy
228
+from a designated place, then offering equivalent access to copy the
229
+source code from the same place satisfies the requirement to
230
+distribute the source code, even though third parties are not
231
+compelled to copy the source along with the object code.
232
+
233
+  5. A program that contains no derivative of any portion of the
234
+Library, but is designed to work with the Library by being compiled or
235
+linked with it, is called a "work that uses the Library".  Such a
236
+work, in isolation, is not a derivative work of the Library, and
237
+therefore falls outside the scope of this License.
238
+
239
+  However, linking a "work that uses the Library" with the Library
240
+creates an executable that is a derivative of the Library (because it
241
+contains portions of the Library), rather than a "work that uses the
242
+library".  The executable is therefore covered by this License.
243
+Section 6 states terms for distribution of such executables.
244
+
245
+  When a "work that uses the Library" uses material from a header file
246
+that is part of the Library, the object code for the work may be a
247
+derivative work of the Library even though the source code is not.
248
+Whether this is true is especially significant if the work can be
249
+linked without the Library, or if the work is itself a library.  The
250
+threshold for this to be true is not precisely defined by law.
251
+
252
+  If such an object file uses only numerical parameters, data
253
+structure layouts and accessors, and small macros and small inline
254
+functions (ten lines or less in length), then the use of the object
255
+file is unrestricted, regardless of whether it is legally a derivative
256
+work.  (Executables containing this object code plus portions of the
257
+Library will still fall under Section 6.)
258
+
259
+  Otherwise, if the work is a derivative of the Library, you may
260
+distribute the object code for the work under the terms of Section 6.
261
+Any executables containing that work also fall under Section 6,
262
+whether or not they are linked directly with the Library itself.
263
+
264
+  6. As an exception to the Sections above, you may also compile or
265
+link a "work that uses the Library" with the Library to produce a
266
+work containing portions of the Library, and distribute that work
267
+under terms of your choice, provided that the terms permit
268
+modification of the work for the customer's own use and reverse
269
+engineering for debugging such modifications.
270
+
271
+  You must give prominent notice with each copy of the work that the
272
+Library is used in it and that the Library and its use are covered by
273
+this License.  You must supply a copy of this License.  If the work
274
+during execution displays copyright notices, you must include the
275
+copyright notice for the Library among them, as well as a reference
276
+directing the user to the copy of this License.  Also, you must do one
277
+of these things:
278
+
279
+    a) Accompany the work with the complete corresponding
280
+    machine-readable source code for the Library including whatever
281
+    changes were used in the work (which must be distributed under
282
+    Sections 1 and 2 above); and, if the work is an executable linked
283
+    with the Library, with the complete machine-readable "work that
284
+    uses the Library", as object code and/or source code, so that the
285
+    user can modify the Library and then relink to produce a modified
286
+    executable containing the modified Library.  (It is understood
287
+    that the user who changes the contents of definitions files in the
288
+    Library will not necessarily be able to recompile the application
289
+    to use the modified definitions.)
290
+
291
+    b) Accompany the work with a written offer, valid for at
292
+    least three years, to give the same user the materials
293
+    specified in Subsection 6a, above, for a charge no more
294
+    than the cost of performing this distribution.
295
+
296
+    c) If distribution of the work is made by offering access to copy
297
+    from a designated place, offer equivalent access to copy the above
298
+    specified materials from the same place.
299
+
300
+    d) Verify that the user has already received a copy of these
301
+    materials or that you have already sent this user a copy.
302
+
303
+  For an executable, the required form of the "work that uses the
304
+Library" must include any data and utility programs needed for
305
+reproducing the executable from it.  However, as a special exception,
306
+the source code distributed need not include anything that is normally
307
+distributed (in either source or binary form) with the major
308
+components (compiler, kernel, and so on) of the operating system on
309
+which the executable runs, unless that component itself accompanies
310
+the executable.
311
+
312
+  It may happen that this requirement contradicts the license
313
+restrictions of other proprietary libraries that do not normally
314
+accompany the operating system.  Such a contradiction means you cannot
315
+use both them and the Library together in an executable that you
316
+distribute.
317
+
318
+  7. You may place library facilities that are a work based on the
319
+Library side-by-side in a single library together with other library
320
+facilities not covered by this License, and distribute such a combined
321
+library, provided that the separate distribution of the work based on
322
+the Library and of the other library facilities is otherwise
323
+permitted, and provided that you do these two things:
324
+
325
+    a) Accompany the combined library with a copy of the same work
326
+    based on the Library, uncombined with any other library
327
+    facilities.  This must be distributed under the terms of the
328
+    Sections above.
329
+
330
+    b) Give prominent notice with the combined library of the fact
331
+    that part of it is a work based on the Library, and explaining
332
+    where to find the accompanying uncombined form of the same work.
333
+
334
+  8. You may not copy, modify, sublicense, link with, or distribute
335
+the Library except as expressly provided under this License.  Any
336
+attempt otherwise to copy, modify, sublicense, link with, or
337
+distribute the Library is void, and will automatically terminate your
338
+rights under this License.  However, parties who have received copies,
339
+or rights, from you under this License will not have their licenses
340
+terminated so long as such parties remain in full compliance.
341
+
342
+  9. You are not required to accept this License, since you have not
343
+signed it.  However, nothing else grants you permission to modify or
344
+distribute the Library or its derivative works.  These actions are
345
+prohibited by law if you do not accept this License.  Therefore, by
346
+modifying or distributing the Library (or any work based on the
347
+Library), you indicate your acceptance of this License to do so, and
348
+all its terms and conditions for copying, distributing or modifying
349
+the Library or works based on it.
350
+
351
+  10. Each time you redistribute the Library (or any work based on the
352
+Library), the recipient automatically receives a license from the
353
+original licensor to copy, distribute, link with or modify the Library
354
+subject to these terms and conditions.  You may not impose any further
355
+restrictions on the recipients' exercise of the rights granted herein.
356
+You are not responsible for enforcing compliance by third parties to
357
+this License.
358
+
359
+  11. If, as a consequence of a court judgment or allegation of patent
360
+infringement or for any other reason (not limited to patent issues),
361
+conditions are imposed on you (whether by court order, agreement or
362
+otherwise) that contradict the conditions of this License, they do not
363
+excuse you from the conditions of this License.  If you cannot
364
+distribute so as to satisfy simultaneously your obligations under this
365
+License and any other pertinent obligations, then as a consequence you
366
+may not distribute the Library at all.  For example, if a patent
367
+license would not permit royalty-free redistribution of the Library by
368
+all those who receive copies directly or indirectly through you, then
369
+the only way you could satisfy both it and this License would be to
370
+refrain entirely from distribution of the Library.
371
+
372
+If any portion of this section is held invalid or unenforceable under any
373
+particular circumstance, the balance of the section is intended to apply,
374
+and the section as a whole is intended to apply in other circumstances.
375
+
376
+It is not the purpose of this section to induce you to infringe any
377
+patents or other property right claims or to contest validity of any
378
+such claims; this section has the sole purpose of protecting the
379
+integrity of the free software distribution system which is
380
+implemented by public license practices.  Many people have made
381
+generous contributions to the wide range of software distributed
382
+through that system in reliance on consistent application of that
383
+system; it is up to the author/donor to decide if he or she is willing
384
+to distribute software through any other system and a licensee cannot
385
+impose that choice.
386
+
387
+This section is intended to make thoroughly clear what is believed to
388
+be a consequence of the rest of this License.
389
+
390
+  12. If the distribution and/or use of the Library is restricted in
391
+certain countries either by patents or by copyrighted interfaces, the
392
+original copyright holder who places the Library under this License may add
393
+an explicit geographical distribution limitation excluding those countries,
394
+so that distribution is permitted only in or among countries not thus
395
+excluded.  In such case, this License incorporates the limitation as if
396
+written in the body of this License.
397
+
398
+  13. The Free Software Foundation may publish revised and/or new
399
+versions of the Library General Public License from time to time.
400
+Such new versions will be similar in spirit to the present version,
401
+but may differ in detail to address new problems or concerns.
402
+
403
+Each version is given a distinguishing version number.  If the Library
404
+specifies a version number of this License which applies to it and
405
+"any later version", you have the option of following the terms and
406
+conditions either of that version or of any later version published by
407
+the Free Software Foundation.  If the Library does not specify a
408
+license version number, you may choose any version ever published by
409
+the Free Software Foundation.
410
+
411
+  14. If you wish to incorporate parts of the Library into other free
412
+programs whose distribution conditions are incompatible with these,
413
+write to the author to ask for permission.  For software which is
414
+copyrighted by the Free Software Foundation, write to the Free
415
+Software Foundation; we sometimes make exceptions for this.  Our
416
+decision will be guided by the two goals of preserving the free status
417
+of all derivatives of our free software and of promoting the sharing
418
+and reuse of software generally.
419
+
420
+			    NO WARRANTY
421
+
422
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
423
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
424
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
425
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
426
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
427
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
428
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
429
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
430
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
431
+
432
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
433
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
434
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
435
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
436
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
437
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
438
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
439
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
440
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
441
+DAMAGES.
442
+
443
+		     END OF TERMS AND CONDITIONS
444
+          How to Apply These Terms to Your New Libraries
445
+
446
+  If you develop a new library, and you want it to be of the greatest
447
+possible use to the public, we recommend making it free software that
448
+everyone can redistribute and change.  You can do so by permitting
449
+redistribution under these terms (or, alternatively, under the terms of the
450
+ordinary General Public License).
451
+
452
+  To apply these terms, attach the following notices to the library.  It is
453
+safest to attach them to the start of each source file to most effectively
454
+convey the exclusion of warranty; and each file should have at least the
455
+"copyright" line and a pointer to where the full notice is found.
456
+
457
+    <one line to give the library's name and a brief idea of what it does.>
458
+    Copyright (C) <year>  <name of author>
459
+
460
+    This library is free software; you can redistribute it and/or
461
+    modify it under the terms of the GNU Lesser General Public
462
+    License as published by the Free Software Foundation; either
463
+    version 2 of the License, or (at your option) any later version.
464
+
465
+    This library is distributed in the hope that it will be useful,
466
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
467
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
468
+    Lesser General Public License for more details.
469
+
470
+    You should have received a copy of the GNU Lesser General Public
471
+    License along with this library; if not, write to the Free Software
472
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
473
+
474
+Also add information on how to contact you by electronic and paper mail.
475
+
476
+You should also get your employer (if you work as a programmer) or your
477
+school, if any, to sign a "copyright disclaimer" for the library, if
478
+necessary.  Here is a sample; alter the names:
479
+
480
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
481
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
482
+
483
+  <signature of Ty Coon>, 1 April 1990
484
+  Ty Coon, President of Vice
485
+
486
+That's all there is to it!

+ 184
- 0
DEBUG View File

@@ -0,0 +1,184 @@
1
+Introduction
2
+============
3
+
4
+This is a short tutorial on debugging KDE applications. Throughout this
5
+tutorial I will use "kedit" as example application.
6
+
7
+
8
+Configuring for debugging
9
+=========================
10
+
11
+You can use --enable-debug with the configure script, if you want to have
12
+debug code in your KDE libs. If you have the space and can stand code that's
13
+somewhat slower, this is worth it. The extra information really
14
+helps debugging and thus bugfixing.
15
+
16
+On the other hand, --disable-debug removes all debug messages, leading
17
+to a faster and cleaner desktop.
18
+
19
+
20
+Debugging with GDB
21
+==================
22
+
23
+The recommended version of gdb to use is version 4.95 or higher, older 
24
+versions have problems generating proper backtraces.
25
+
26
+There are three ways to debug an application with gdb:
27
+
28
+1) You can start the application from within gdb.
29
+2) You can attach gdb to an already running application.
30
+3) You can run gdb after an application has crashed using a core file.
31
+
32
+
33
+Starting applications from within gdb
34
+=====================================
35
+
36
+To start an application with gdb you can start gdb as follows:
37
+
38
+> gdb kedit
39
+GNU gdb 4.95.0
40
+Copyright 2000 Free Software Foundation, Inc.
41
+GDB is free software, covered by the GNU General Public License, and you are
42
+welcome to change it and/or distribute copies of it under certain conditions.
43
+Type "show copying" to see the conditions.
44
+There is absolutely no warranty for GDB.  Type "show warranty" for details.
45
+This GDB was configured as "i686-pc-linux-gnu"...
46
+(gdb) 
47
+
48
+You can now set the command line arguments that you want to pass to kedit with 
49
+the gdb command "set args":
50
+
51
+(gdb) set args myfile.txt
52
+(gdb) 
53
+
54
+gdb has loaded the kedit executable on startup but it hasn't loaded any of 
55
+the libraries yet. This means that you can set any breakpoints in the 
56
+libraries yet. The easiest way to do that is to set a breakpoint in the
57
+first line of main and then start the program:
58
+
59
+(gdb) break main
60
+Breakpoint 1 at 0x804855c
61
+(gdb) run
62
+Starting program: /opt/kde/bin/kedit myfile.txt
63
+Breakpoint 1 at 0x4002cf18: file kedit.cpp, line 1595.
64
+ 
65
+Breakpoint 1, main (argc=2, argv=0xbffff814) at kedit.cpp:1595
66
+1595            bool have_top_window = false;
67
+Current language:  auto; currently c++
68
+(gdb)  
69
+
70
+You can now set breakpoints everywhere. For example lets set a breakpoint 
71
+in the KApplication constructor. Unfortunately gdb is not very good in 
72
+handling C++ names, so it is not really possible to specify the constructor
73
+directly after the break command. Instead we look up a line of source
74
+code where we want to place the breakpoint. An external editor is of great 
75
+use at this point. With the list command we can select the source file we
76
+are interested in and verify that we have found the correct source line:
77
+
78
+(gdb) list kapp.cpp:220
79
+215         parseCommandLine( argc, argv );
80
+216     }
81
+217
82
+218     KApplication::KApplication( bool allowStyles, bool GUIenabled ) :
83
+219       QApplication( *KCmdLineArgs::qt_argc(), *KCmdLineArgs::qt_argv(),
84
+220                     GUIenabled ),
85
+221       KInstance( KCmdLineArgs::about),
86
+222       d (new KApplicationPrivate)
87
+223     {
88
+224         if (!GUIenabled)
89
+(gdb) break 224
90
+Breakpoint 2 at 0x4048aa7e: file kapp.cpp, line 224.
91
+(gdb) 
92
+
93
+We can now continue the execution of kedit. Execution will stop when it hits
94
+a breakpoint of when the program exits. In this case execution will stop
95
+in the first line of the KApplication constructor:
96
+
97
+(gdb) continue
98
+Continuing.
99
+Qt: gdb: -nograb added to command-line options.
100
+         Use the -dograb option to enforce grabbing.
101
+ 
102
+Breakpoint 2, KApplication::KApplication (this=0xbffff6a8, allowStyles=true,
103
+    GUIenabled=true) at kapp.cpp:224
104
+224         if (!GUIenabled)
105
+(gdb) 
106
+
107
+
108
+Attaching gdb to already running applications
109
+=============================================
110
+
111
+Sometimes it is not practical to start an application from within gdb.
112
+E.g. in those cases where you didn't know the application was about to
113
+crash :-) When you get the friendly DrKonqi dialog informing you about 
114
+a crash you are just in time to start your debugger.
115
+
116
+First lets attach gdb to an application that hasn't crashed (yet).
117
+
118
+You start with finding the process of the application with e.g. "ps -aux":
119
+
120
+> ps -aux | grep kedit 
121
+bastian  21570 15.1  6.8 13740 8800 pts/6    S    15:34   0:01 kedit
122
+bastian  21582  0.0  0.3  1132  412 pts/6    R    15:34   0:00 grep kedit
123
+
124
+From this you learn that kedit has process id 21570. Now you can start gdb as
125
+follows:
126
+
127
+> gdb kedit 21570
128
+GNU gdb 4.95.0
129
+Copyright 2000 Free Software Foundation, Inc.
130
+GDB is free software, covered by the GNU General Public License, and you are
131
+welcome to change it and/or distribute copies of it under certain conditions.
132
+Type "show copying" to see the conditions.
133
+There is absolutely no warranty for GDB.  Type "show warranty" for details.
134
+This GDB was configured as "i686-pc-linux-gnu"...
135
+/home1/bastian/21570: No such file or directory.
136
+Attaching to program: /opt/kde/bin/kedit, Pid 21570
137
+Reading symbols from /opt/kde/lib/kedit.so.0...done.
138
+Loaded symbols for /opt/kde/lib/kedit.so.0
139
+....
140
+Reading symbols from /lib/ld-linux.so.2...done.
141
+Loaded symbols for /lib/ld-linux.so.2
142
+Reading symbols from /lib/libnss_compat.so.2...done.
143
+Loaded symbols for /lib/libnss_compat.so.2
144
+Reading symbols from /lib/libnsl.so.1...done.
145
+Loaded symbols for /lib/libnsl.so.1
146
+0x40c3d88e in __select () from /lib/libc.so.6
147
+(gdb)  
148
+
149
+You will usually end up in the middle of a select() call from the event-loop.
150
+This is the place where a KDE application spends most of its time, waiting
151
+for things to happen.
152
+
153
+A backtrace will typically look something like this:
154
+
155
+(gdb) bt
156
+#0  0x40c3d88e in __select () from /lib/libc.so.6
157
+#1  0x40a22844 in __DTOR_END__ () at fam.c++:356
158
+#2  0x407293bf in QApplication::enter_loop (this=0xbffff6e8)
159
+    at kernel/qapplication.cpp:2552
160
+#3  0x406b1d7b in QApplication::exec (this=0xbffff6e8)
161
+    at kernel/qapplication_x11.cpp:2217
162
+#4  0x4002d500 in main (argc=1, argv=0xbffff854) at kedit.cpp:1662
163
+#5  0x40bbba5e in __libc_start_main (main=0x8048568 <main>, argc=1,
164
+    argv=0xbffff854, init=0x8048514 <_init>, fini=0x80486cc <_fini>,
165
+    rtld_fini=0x4000aa20 <_dl_fini>, stack_end=0xbffff84c)
166
+    at ../sysdeps/generic/libc-start.c:92
167
+(gdb)
168
+
169
+
170
+Getting core dumps
171
+==================
172
+
173
+If you want to have a core dump after your application crashes you need to 
174
+do two things:
175
+
176
+1) Disable the KDE crash handler. This can be done either by using the 
177
+--nocrashhandler command line option or by setting the KDE_DEBUG environment
178
+variable to some value e.g. KDE_DEBUG=true.
179
+
180
+2) Enable core dump generation by changing the so called 'ulimits' with the
181
+following command: 
182
+	ulimit -c unlimited
183
+
184
+

+ 173
- 0
INSTALL View File

@@ -0,0 +1,173 @@
1
+Basic Installation
2
+==================
3
+
4
+   These are generic installation instructions.
5
+
6
+   The `configure' shell script attempts to guess correct values for
7
+various system-dependent variables used during compilation.  It uses
8
+those values to create a `Makefile' in each directory of the package.
9
+It may also create one or more `.h' files containing system-dependent
10
+definitions.  Finally, it creates a shell script `config.status' that
11
+you can run in the future to recreate the current configuration, a file
12
+`config.cache' that saves the results of its tests to speed up
13
+reconfiguring, and a file `config.log' containing compiler output
14
+(useful mainly for debugging `configure').
15
+
16
+   If you need to do unusual things to compile the package, please try
17
+to figure out how `configure' could check whether to do them, and mail
18
+diffs or instructions to the address given in the `README' so they can
19
+be considered for the next release.  If at some point `config.cache'
20
+contains results you don't want to keep, you may remove or edit it.
21
+
22
+   The file `configure.in' is used to create `configure' by a program
23
+called `autoconf'.  You only need `configure.in' if you want to change
24
+it or regenerate `configure' using a newer version of `autoconf'.
25
+
26
+The simplest way to compile this package is:
27
+
28
+  1. `cd' to the directory containing the package's source code and type
29
+     `./configure' to configure the package for your system.  If you're
30
+     using `csh' on an old version of System V, you might need to type
31
+     `sh ./configure' instead to prevent `csh' from trying to execute
32
+     `configure' itself.
33
+
34
+     Running `configure' takes a while.  While running, it prints some
35
+     messages telling which features it is checking for.
36
+
37
+  2. Type `make' to compile the package.
38
+
39
+  3. Type `make install' to install the programs and any data files and
40
+     documentation.
41
+
42
+  4. You can remove the program binaries and object files from the
43
+     source code directory by typing `make clean'.  To also remove the
44
+     files that `configure' created (so you can compile the package for
45
+     a different kind of computer), type `make distclean'.  There is
46
+     also a `make maintainer-clean' target, but that is intended mainly
47
+     for the package's developers.  If you use it, you may have to get
48
+     all sorts of other programs in order to regenerate files that came
49
+     with the distribution.
50
+
51
+Compilers and Options
52
+=====================
53
+
54
+   Some systems require unusual options for compilation or linking that
55
+the `configure' script does not know about.  You can give `configure'
56
+initial values for variables by setting them in the environment.  Using
57
+a Bourne-compatible shell, you can do that on the command line like
58
+this:
59
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
60
+
61
+Or on systems that have the `env' program, you can do it like this:
62
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
63
+
64
+Compiling For Multiple Architectures
65
+====================================
66
+
67
+   You can compile the package for more than one kind of computer at the
68
+same time, by placing the object files for each architecture in their
69
+own directory.  To do this, you must use a version of `make' that
70
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
71
+directory where you want the object files and executables to go and run
72
+the `configure' script.  `configure' automatically checks for the
73
+source code in the directory that `configure' is in and in `..'.
74
+
75
+   If you have to use a `make' that does not supports the `VPATH'
76
+variable, you have to compile the package for one architecture at a time
77
+in the source code directory.  After you have installed the package for
78
+one architecture, use `make distclean' before reconfiguring for another
79
+architecture.
80
+
81
+Installation Names
82
+==================
83
+
84
+   By default, `make install' will install the package's files in
85
+`/usr/local/kde/bin', `/usr/local/kde/lib', etc.  You can specify an
86
+installation prefix other than `/usr/local/kde' by giving `configure'
87
+the option `--prefix=PATH'.
88
+
89
+   You can specify separate installation prefixes for
90
+architecture-specific files and architecture-independent files.  If you
91
+give `configure' the option `--exec-prefix=PATH', the package will use
92
+PATH as the prefix for installing programs and libraries.
93
+Documentation and other data files will still use the regular prefix.
94
+
95
+   If the package supports it, you can cause programs to be installed
96
+with an extra prefix or suffix on their names by giving `configure' the
97
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
98
+
99
+Optional Features
100
+=================
101
+
102
+   Some packages pay attention to `--enable-FEATURE' options to
103
+`configure', where FEATURE indicates an optional part of the package.
104
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
105
+is something like `gnu-as' or `x' (for the X Window System).  The
106
+`README' should mention any `--enable-' and `--with-' options that the
107
+package recognizes.
108
+
109
+   For packages that use the X Window System, `configure' can usually
110
+find the X include and library files automatically, but if it doesn't,
111
+you can use the `configure' options `--x-includes=DIR' and
112
+`--x-libraries=DIR' to specify their locations.
113
+
114
+Specifying the System Type
115
+==========================
116
+
117
+   There may be some features `configure' can not figure out
118
+automatically, but needs to determine by the type of host the package
119
+will run on.  Usually `configure' can figure that out, but if it prints
120
+a message saying it can not guess the host type, give it the
121
+`--host=TYPE' option.  TYPE can either be a short name for the system
122
+type, such as `sun4', or a canonical name with three fields:
123
+     CPU-COMPANY-SYSTEM
124
+
125
+See the file `config.sub' for the possible values of each field.  If
126
+`config.sub' isn't included in this package, then this package doesn't
127
+need to know the host type.
128
+
129
+   If you are building compiler tools for cross-compiling, you can also
130
+use the `--target=TYPE' option to select the type of system they will
131
+produce code for and the `--build=TYPE' option to select the type of
132
+system on which you are compiling the package.
133
+
134
+Sharing Defaults
135
+================
136
+
137
+   If you want to set default values for `configure' scripts to share,
138
+you can create a site shell script called `config.site' that gives
139
+default values for variables like `CC', `cache_file', and `prefix'.
140
+`configure' looks for `PREFIX/share/config.site' if it exists, then
141
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
142
+`CONFIG_SITE' environment variable to the location of the site script.
143
+A warning: not all `configure' scripts look for a site script.
144
+
145
+Operation Controls
146
+==================
147
+
148
+   `configure' recognizes the following options to control how it
149
+operates.
150
+
151
+`--cache-file=FILE'
152
+     Use and save the results of the tests in FILE instead of
153
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
154
+     debugging `configure'.
155
+
156
+`--help'
157
+     Print a summary of the options to `configure', and exit.
158
+
159
+`--quiet'
160
+`--silent'
161
+`-q'
162
+     Do not print messages saying which checks are being made.
163
+
164
+`--srcdir=DIR'
165
+     Look for the package's source code in directory DIR.  Usually
166
+     `configure' can determine that directory automatically.
167
+
168
+`--version'
169
+     Print the version of Autoconf used to generate the `configure'
170
+     script, and exit.
171
+
172
+`configure' also accepts some other, not widely useful, options.
173
+

+ 925
- 0
KDE2PORTING.html View File

@@ -0,0 +1,925 @@
1
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 2//EN//2.0">
2
+<HTML>
3
+<HEAD>
4
+	<TITLE>Guide to Porting Applications to KDE 2.0</TITLE>
5
+</HEAD>
6
+<BODY>
7
+
8
+<H2>Porting Applications to KDE 2.0</H2>
9
+<H3>Last Modified on November 28, 2000</H3>
10
+This document contains the changes you have to apply to programs written for
11
+KDE1.1 when you want to port them to KDE2.0.<P>
12
+
13
+As a start you should have a look at doc/porting.doc in the Qt package,
14
+or <a href="http://doc.trolltech.com/porting.html">this page online</a>.<P>
15
+
16
+<H3><A NAME="TOC">Table of Contents</A></H3>
17
+
18
+<UL>
19
+<LI><A HREF="#gettingstarted">Getting Started</A></LI>
20
+<LI><A HREF="#general">Global changes</A></LI>
21
+<LI><A HREF="#automoc">automoc/am_edit, Makefile.am tags</A></LI>
22
+<LI><A HREF="#KApplication">KApplication</A></LI>
23
+<LI><A HREF="#KCmdLineArgs">KCmdLineArgs</A></LI>
24
+<LI><A HREF="#KLocale">KLocale</A></LI>
25
+<LI><A HREF="#KGlobal">KGlobal: access to KDE global objects.</A></LI>
26
+<LI><A HREF="#KIconLoader">KIconLoader</A></LI>
27
+<LI><A HREF="#KTMainWindow">KTMainWindow</A></LI>
28
+<LI><A HREF="#KHelpMenu">KHelpMenu</A></LI>
29
+<LI><A HREF="#KToolBar">KToolBar</A></LI>
30
+<LI><A HREF="#launching">Starting other programs</A></LI>
31
+<LI><A HREF="#khtmlw">khtmlw</A></LI>
32
+<LI><A HREF="#KIntegerLine">KIntegerLine, KIntLineEdit</A></LI>
33
+<LI><A HREF="#KDNDIcon">KDNDIcon, KDNDDropZone, KDNDWidget, kdecore/drag.h</A></LI>
34
+<LI><A HREF="#KConfigBase">KConfigBase, KConfig, KSimpleConfig</A></LI>
35
+<LI><A HREF="#libkfm">libkfm</A></LI>
36
+<LI><A HREF="#KDialog">KDialog</A></LI>
37
+<LI><A HREF="#kcharsets">kcharsets</A></LI>
38
+<LI><A HREF="#KWizard">KWizard, KNoteBook</A></LI>
39
+<LI><A HREF="#KSpinBox">KSpinBox, KNumericSpinBox</A></LI>
40
+<LI><A HREF="#KClipboard">KClipboard</A></LI>
41
+<LI><A HREF="#KPanner">KPanner, KNewPanner</A></LI>
42
+<LI><A HREF="#KTreeList">KTreeList, KTreeListItem</A></LI>
43
+<LI><A HREF="#KMsgBox">KMsgBox</A></LI>
44
+<LI><A HREF="#KCombo">KCombo</A></LI>
45
+<LI><A HREF="#KQuickHelp">KQuickHelp</A></LI>
46
+<LI><A HREF="#KPixmapgradientFill">KPixmap::gradientFill</A></LI>
47
+<LI><A HREF="#KTabListBox">KTabListBox</A></LI>
48
+<LI><A HREF="#KToolBarButton">KToolBarButton &amp; KRadioGroup</A></LI>
49
+<LI><A HREF="#KAccel">KAccel</A></LI>
50
+<LI><A HREF="#kstring">kstring.h / KString</A></LI>
51
+<LI><A HREF="#ktopwidget">ktopwidget.h / KTopWidget</A></LI>
52
+<LI><A HREF="#kbutton">kbutton.h / KButton</A></LI>
53
+<LI><A HREF="#kbuttonbox">kbuttonbox.h / KButtonBox</A></LI>
54
+<LI><A HREF="#kcolorgroup">kcolorgroup.h / KColorGroup</A></LI>
55
+<LI><A HREF="#kled">kled.h, kledlamp.h / KLed, KLedLamp</A></LI>
56
+<LI><A HREF="#KDockWidget">KDockWidget</A></LI>
57
+<LI><A HREF="#KPixmap">KPixmap, KPixmapEffect</A></LI>
58
+<LI><A HREF="#KControlCenter">KDE Control Center</A></LI>
59
+<LI><A HREF="#KWMModuleApplication">KWMModuleApplication libkdeui/kwmmapp.h</A></LI>
60
+<LI><A HREF="#KDebug">KDebug</A></LI>
61
+<LI><A HREF="#KFileDialog">KFileDialog - General Stuff</A></LI>
62
+<LI><A HREF="#KFileDialogPreview">KFileDialog - Preview Mode</A></LI>
63
+<LI><A HREF="#ImageEffects">Image Effects</A></LI>
64
+<LI><A HREF="#KAudio">KAudio (kaudio.h)</A></LI>
65
+<LI><A HREF="#KImageIO">KImageIO (kimgio.h)</A></LI>
66
+</UL>
67
+
68
+<H3><A NAME="gettingstarted">Getting started</A></H3>
69
+
70
+  The first step to get your KDE application to compile under KDE 2.0,
71
+  is to detect KDE 2.0 and Qt 2.x at configure time. The easiest way to
72
+  get a working autoconf/automake framework, is to either use 
73
+  <a href="http://www.kdevelop.org">KDevelop</a> or
74
+  <a href="http://home.earthlink.net/~granroth/kapptemplate/index.html">kapptemplate</a>
75
+  (available in CVS under the module "kdesdk"), to generate a new
76
+  application template. Replace the generated source files by yours
77
+  and adapt Makefile.am accordingly.
78
+
79
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
80
+
81
+<H3><A NAME="general">Global changes</A></H3>
82
+
83
+  We did our best to clean up the header files of kdelibs, so they do
84
+  not include unnecessary bloat for your application. As a consequence, you
85
+  may notice that some header files are missing from your source files as
86
+  they have been included before by kapp.h for example. There is a script
87
+  in kdesdk/scripts called "fixheaders" that takes care of most of these
88
+  cases. Just call "make -k 2&gt;&amp;1 | perl .../fixheaders" and it will try
89
+  to look after the error messages and add includes as it recognize the
90
+  errors.<P>
91
+
92
+  Also, if your code does not compile and complains about missing member
93
+  functions, you should check for methods that started with get...().
94
+  These methods have been renamed to xy*() for consistency.<P>
95
+
96
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
97
+
98
+<H3><A NAME="automoc">automoc/am_edit, Makefile.am tags</A></H3>
99
+
100
+  On the subject of the compilation framework, automoc has been removed from
101
+  the admin directory. It has been replaced by am_edit which provides a lot of
102
+  additional features.<P>
103
+  METASOURCES=AUTO still does the job of generating the appropriate moc files,
104
+  but in addition, you should use KDE_ICON for the icons representing the application
105
+  (and naming those icons conforming to lo16-app-&lt;appname&gt;.png), and install
106
+  the application-specific icons under $(kde_datadir)/&lt;appname&gt;/pics.
107
+
108
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
109
+
110
+<H3><A NAME="KApplication">KApplication</A></H3>
111
+
112
+  doesn't hold any longer a KLocale instance. With this getLocale()
113
+  and isLocaleInstantiated are now replaced by KGlobal::locale()<P>
114
+
115
+  it also doesn't hold a KiconLoader instance. As this also getIconLoader()
116
+  has been removed. Replace kapp-&gt;getIconLoader()-&gt;loadIcon() with
117
+  BarIcon() or use KGlobal::iconLoader() instead of getIconLoader()<P>
118
+
119
+  kde_*dir() have been removed as they require a unique top level directory
120
+  for all applications (KDEDIR). This concept doesn't exist in KDE 2.0
121
+  any more, it has been replaced with "multiple levels of directories",
122
+  set in KDEDIRS, so that it's possible to have global settings and
123
+  group settings, applied before user settings.<P>
124
+
125
+  Replace code that uses kde_*dir() + filename with calls to
126
+  locate(filetype, filename) where filetype is what * used to be
127
+  in kde_*dir(). locate is defined as function in kstddirs.h to call
128
+  KGlobal::dirs()-&gt;findResource.<P>
129
+
130
+  Use locateLocal to get the path of a writable file. For instance,
131
+  KApplication::localconfigdir()+filename is now locateLocal( "config", filename ),
132
+  but for most cases, simply using KGlobal::config() is enough, if you're happy
133
+  with saving the application's configuration into appnamerc, or
134
+  KSimpleConfig cfg("anothercfgfile") to create a config file with another name.<P>
135
+
136
+  generalFont() and fixedFont() are deprecated and will be removed soon.
137
+  Please use KGlobalSettings::generalFont() and KGlobalSettings::fixedFont() instead.<P>
138
+
139
+  appName() is deprecated. Please use QApplication::name() or instanceName
140
+  instead.<P>
141
+
142
+  The methods tempSaveName() and checkRecoverFile() return QString
143
+  now. The returned values must _not_ be free()d.<P>
144
+
145
+  helpMenu() has been moved to KMainWindow. aboutKDE(), aboutApp() and
146
+  appHelpActivated() have all been removed See section for KMainWindow
147
+  for more info.<P>
148
+
149
+  The KApplication constructor has changed. Command line arguments and
150
+  program name should no longer be passed to KApplication but to 
151
+  KCmdLineArgs. KCmdLineArgs performs command line parsing and a command
152
+  line help. See below for more info.<P>
153
+
154
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
155
+
156
+<H3><A NAME="KCmdLineArgs">KCmdLineArgs</A></H3>
157
+
158
+  KCmdLineArgs is a new class that handles command line parsing and
159
+  command line help. It is now required that your application
160
+  specifies at least:<P>
161
+  <UL>
162
+	<LI>Its name.
163
+	<LI>A short description what it does. (e.g. 1 line)
164
+	<LI>A version.
165
+	<LI>All command line options that it supports.
166
+  </UL>
167
+ 
168
+  KCmdLineArgs itself will add the command line options supported by Qt 
169
+  and KApplication.<P>
170
+
171
+  You can also use the KAboutData class to specify name, description and 
172
+  version.<P>
173
+
174
+  In return for this information you can query KCmdLineArgs whether an 
175
+  certain option was specified on the command line and your application 
176
+  now automatically supports --help and --version. It aborts with a
177
+  useful error message when the command line contains a syntax error.
178
+  See kdelibs/kdecore/kcmdlineargs.h for more info.<P>
179
+
180
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
181
+
182
+<H3><A NAME="KLocale">KLocale</A></H3>
183
+
184
+  i18n is no longer a macro<P>
185
+
186
+  KApplication::getApplication()-&gt;getLocale()-&gt;translate<P>
187
+
188
+  but a function on its own. klocale is obsolete and replace every call
189
+  to klocale-&gt;translate with i18n.<P>
190
+
191
+  The return value of i18n is also no longer a const char*,
192
+  but a unicode QString.<P>
193
+
194
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
195
+
196
+<H3><A NAME="KGlobal">KGlobal: access to KDE global objects.</A></H3>
197
+
198
+KGlobal allows centralized access to KDE global objects without including
199
+extraneous headers. object creation is deferred if possible.<P>
200
+
201
+All methods are static and headers for returned types are not included. You
202
+must have created a KApplication object before the methods can be used.<P>
203
+<TABLE BORDER="0">
204
+<TR>
205
+  <TD COLSPAN="2">
206
+    <PRE>
207
+      #include &lt;kglobal.h&gt;
208
+      #include &lt;kconfig.h&gt;      // Needed to use KConfig
209
+      #include &lt;klocale.h&gt;      // Needed to use KLocale
210
+      #include &lt;kiconloader.h&gt;  // Needed to use KIconLoader
211
+    </PRE>
212
+  </TD>
213
+</TR>
214
+<TR>
215
+  <TD>
216
+    <PRE>
217
+    ...
218
+        	KConfig *appcfg = KGlobal::config();
219
+	        QString mystr	 = i18n( "This is a string" );
220
+
221
+
222
+		KIconLoader *loader = KGlobal::iconLoader();
223
+    </PRE>
224
+  </TD>
225
+</TR>
226
+</TABLE>
227
+
228
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
229
+
230
+<H3><A NAME="KIconLoader">KIconLoader</A></H3>
231
+
232
+KIconLoader in 1.1 used to mix icons for applications and for toolbars.
233
+This has changed, so you may notice that your application doesn't find
234
+the right icons. loadIcon (used by BarIcon) returns only toolbar icons.<P>
235
+If you need icons for applications, use loadApplicationIcon.<P>
236
+loadMiniIcon and loadApplicationMiniIcon have been removed, instead
237
+loadApplicationIcon now takes a "size" argument where you can specify the
238
+size of the icon (small, medium, large).<P>
239
+The other big change you may notice, is that ICON and Icon have been
240
+removed as they caused big confusion for not loading application icons
241
+(see above). For this we added BarIcon which does the same as ICON before.
242
+The third change in this row is that loadIcon doesn't need the extension
243
+anymore, but looks for standard extensions (png, xpm) itself. If you hard-
244
+coded .xpm, loadIcon will issue a warning at runtime, but will still work
245
+in stripping off the .xpm part<P>
246
+
247
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
248
+
249
+<H3><A NAME="KTMainWindow">KTMainWindow</A></H3>
250
+
251
+KTMainWindow has been replaced with KMainWindow.<p>
252
+
253
+The KMainWindow constructor needs a parent widget as first argument. 
254
+You can use 0 for this.<p>
255
+setView() has been replaced with setCentralWidget().<p>
256
+view() has been replaced with centralWidget().<p>
257
+addToolBar() has been removed, it is not needed any more.<p>
258
+setMenu(...) has been removed, it is not needed any more.<p>
259
+setStatusBar(...) has been removed, it is not needed any more.<p>
260
+updateRects() has been removed, it is not needed any more.<p>
261
+enableStatusBar(...) has been removed, use statusBar()-&gt;show() and/or
262
+statusBar()-&gt;hide() instead.<p>
263
+enableToolBar(...) has been removed, use toolBar()-&gt;show() and/or 
264
+toolBar()-&gt;hide() instead. <p>
265
+
266
+view_* public variables do no longer exist. There is really no reason
267
+for an app to use this information. If you do need it anyway, use
268
+mainViewGeometry() instead.<P>
269
+
270
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
271
+
272
+<H3><A NAME="KHelpMenu">KHelpMenu</A></H3>
273
+
274
+helpMenu() has been moved to KMainWindow from KApplication (kapp).<P>
275
+
276
+Both the "About KDE" and the "About &lt;Application&gt;" dialog boxes
277
+are now modeless. "About KDE" is a completely new widget.<P>
278
+
279
+If you used in the toplevel window (that is derived from KMainWindow)
280
+"kapp-&gt;helpMenu( bool, QString )" to get the help menu
281
+you must now change this to "helpMenu( QString )". The QString defaults
282
+to QString::null so it is sufficient to write helpMenu().<P>
283
+
284
+The old aboutKDE(), aboutApp() and appHelpActivated() of KApplication
285
+have all been removed. If you need direct access to these or need
286
+access to a help menu in a class that is not derived from
287
+KMainWindow then allocate an instance of the new class KHelpMenu.
288
+See KDE 2.0 API reference or khelpmenu.h (kdeui) for additional info.<P>
289
+Espen Sand &lt;<A HREF="mailto:espen@kde.org">espen@kde.org</A>&gt;<P>
290
+
291
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
292
+
293
+<H3><A NAME="KToolBar">KToolBar</A></H3>
294
+
295
+enable(...) is depreciated, use show()/hide() instead.<p>
296
+enableFloating(...) has been removed, use enableMoving() instead.<p>
297
+setMaxHeight() is depreciated, use setMaximumHeight() instead.<p>
298
+maxHeight() is depreciated, use maximumHeight() instead.<p>
299
+setMaxWidth() is depreciated, use setMaximumWidth() instead.<p>
300
+maxWidth() is depreciated, use maximumWidth() instead.<p>
301
+
302
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
303
+
304
+<H3><A NAME="launching">Starting other programs</A></H3>
305
+
306
+In KDE 2.0 there are several ways to start other programs from within
307
+your application. Here is a short summary of your options with reasons why
308
+you should or should not use them.
309
+<H4>1. fork + exec</H4>
310
+<P>
311
+You never want to use this unless you have a very good reason why it is 
312
+impossible to use KProcess.
313
+</P>
314
+<H4>2. KProcess</H4>
315
+<P>
316
+You want to use this if you need to start a new process which needs to be a 
317
+child of your process, e.g. because you want to catch stdout/stderr or need 
318
+to send it data via stdin. You should never use this to start other KDE 
319
+applications unless your application is called kgdb :-) If you need to
320
+send/receive text like data to/from the process, you are probably better 
321
+off with KProcIO
322
+</P>
323
+
324
+<H4>3. KProcIO</H4>
325
+<P>
326
+Like KProcess. Unlike KProcess, this class actually makes it easy to 
327
+send data to and receive data from the process.
328
+
329
+</P>
330
+<H4>4. startServiceByDesktopPath</H4>
331
+<P>
332
+Preferred way to launch desktop (KDE/Gnome/X) applications or KDE services. 
333
+The application/service must have a .desktop file. It will make use of 
334
+KDEinit for increased startup performance and lower memory usage. These 
335
+benefits only apply to applications available as KDEinit loadable module (KLM)
336
+</P>
337
+<H4>5. KRun</H4>
338
+<P>
339
+Generic way to open documents/applications/shell commands. Uses
340
+startServiceBy.... where applicable. Offers the additional 
341
+benefit of startup-notification.<BR>
342
+KRun can start any application, from the binary or the desktop file,
343
+it will determine the mimetype of a file before running the
344
+preferred handler for it, and it can also start shell commands.
345
+This makes KRun the recommended way to run another program in KDE 2.
346
+</P>
347
+
348
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
349
+
350
+<H3><A NAME="khtmlw">khtmlw</A></H3>
351
+
352
+khtmlw has been replaced with khtml.<BR>
353
+<UL>
354
+	<LI>KHTMLView has vanished. Just use KHTMLWidget, which does scrollbar
355
+  managing for free.
356
+
357
+	<LI>A lot of the API has changed. If you just want to open a file/URL,
358
+  you just need to do:<P>
359
+  <PRE>
360
+	KHTMLWidget *w = new KHTMLWidget();
361
+	w-&gt;openURL(myURL);
362
+  </PRE>
363
+
364
+	<LI>khtml uses QString's instead of char *'s now. This means, that most
365
+  of the api has changed. In all functions:<P>
366
+  <PRE>
367
+     const char * -&gt; QString
368
+     QStrList -&gt; QStringList
369
+  </PRE>
370
+  The only exception for the moment is KHTMLWidget::write(), which does
371
+  also exist in a const char * version.<P>
372
+
373
+
374
+<LI>you won't need the getKHTMLWiget function anymore. Just replace
375
+	getKHTMLWidget-&gt;xxx() with xxx()<P>
376
+<LI>xxx(QString) -&gt; xxx(const QString &amp;)<P>
377
+<LI>consistent naming. All getXyz() functions are renamed to xyz()<P>
378
+<LI>replaced/changed functions:<P>
379
+<TABLE BORDER="1">
380
+<TR>
381
+<TD>KHTMLWidget::setDefaultFontBase()</TD>
382
+<TD>-&gt; setFontSizes()</TD>
383
+</TR>
384
+<TR>
385
+<TD>x/yOffset()</TD>
386
+<TD>-&gt; contentsX/Y()</TD>
387
+</TR>
388
+<TR>
389
+<TD>getSelectedText(QString &amp;)</TD>
390
+<TD>-&gt; QString selectedText()</TD>
391
+</TR>
392
+<TR>
393
+<TD COLSPAN="2" ROWSPAN="0">findTextEnd() has vanished. just remove the call from your code</TD>
394
+</TR>
395
+<TR>
396
+<TD>gotoXY(x, y)</TD>
397
+<TD>-&gt; setContentsPos(x, y)</TD>
398
+</TR>
399
+<TR>
400
+<TD>docWidth()</TD>
401
+<TD>-&gt; contentsWidth()</TD>
402
+</TR>
403
+<TR>
404
+<TD>docHeight()</TD>
405
+<TD>-&gt; contentsHeight()</TD>
406
+</TR>
407
+</TABLE><P>
408
+
409
+<LI>Don't forget to change the link-flags! (-lkhtml -lkjava instead of -lkhtmlw)
410
+</UL>
411
+
412
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
413
+
414
+<H3><A NAME="KIntegerLine">KIntegerLine, KIntLineEdit</A></H3>
415
+
416
+  KIntegerLine and KIntLineEdit  have been replaced by KIntNumInput.
417
+  The new header file is called knuminput.h.<P>
418
+
419
+  The new KIntNumInput can have an optional slider attached, ensures
420
+  that the entered value is in a given range (use MAX_INT or similar
421
+  if you don't care about the range) and can maintain a descriptive
422
+  label and also a unit for the edited value.<P>
423
+
424
+  The API is almost the same and it simplifies existing code a bit,
425
+  so give it a try. If you need more functionality, please contact
426
+  me, Dirk A. Mueller &lt;<A HREF="mailto:mueller@kde.org">mueller@kde.org</A>&gt;.<P>
427
+
428
+  The additional class KDoubleNumInput gives you the same look &amp; feel,
429
+  but allows you to edit floating point numbers.<P>
430
+
431
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
432
+
433
+<H3><A NAME="KDNDIcon">KDNDIcon, KDNDDropZone, KDNDWidget, kdecore/drag.h</A></H3>
434
+
435
+KDE Drag and Drop is Dead.  Long live Qt Xdnd.<P>
436
+
437
+Xdnd is better anyway, because it has been adopted by all the other
438
+major GUI toolkits still under active development (this precludes
439
+Motif, but maybe we can convince the lesstif guys!).  Some changes
440
+are necessary to convert your old KDND-based stuff to Qt DND.<P>
441
+<UL>
442
+<LI>Remove drag.h from all of your sources / header files.<P>
443
+<LI>Remove KDNDDropZone object creations.  Instead of creating an
444
+  object of this type and then connecting it to some arbitrary slot
445
+  to handle drops, call "setAcceptDrops(true)" in your widget
446
+  constructor and then override the protected methods dragEnterEvent,
447
+  dragMoveEvent, dragLeaveEvent, and dropEvent.<P>
448
+<LI>You should be aware that to handle drops, you will either have to
449
+  inherit a widget and then override the methods mentioned above,
450
+  or install an event handler for the widget in that widget's parent,
451
+  and then handle QEvent::DragMove or QEvent::Drop inside there (if
452
+  you want to avoid inheritance).<P>
453
+<LI>You can emulate the old DndURL drop-type behavior with the Qt
454
+  Drag Object type QUriList.<P>
455
+<LI>You can start a drag from inside your widget's mouseMoveEvent
456
+  method if you wish.<P>
457
+<LI>Qt includes a Drag and Drop tutorial.  We suggest you read that
458
+  now if you are confused.<P>
459
+<LI>QMultiLineEdit has already a DnD interface that accepts text/*
460
+  If you want to add support for other mimetypes, you need to
461
+  re-implement all DnD-methods (also dragMoveEvent()) and pass
462
+  QTextDrag's to the parent methods.<P>
463
+<LI>QTextDrag also accepts text/uri-list, which means that you
464
+  always need to check for QUriDrag first if you want to get
465
+  both working.<P>
466
+<LI>The mimetype for Uri's is now text/uri-list. If you've used
467
+  the proprietary Qt 1.x url/url, you need to adjust that.
468
+</UL>
469
+
470
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
471
+
472
+<H3><A NAME="KConfigBase">KConfigBase, KConfig, KSimpleConfig</A></H3>
473
+
474
+  These classes have been largely re-implemented.  The external API
475
+  remains mostly the same, with the single notable change that
476
+  the groupIterator and entryIterator methods have been removed and
477
+  instead replaced by groupList (which returns a QStringList of groups)
478
+  and entryMap(const QString &amp;group) (which returns a QMap of entries
479
+  in the specified group).  This is due to internal changes in KConfig
480
+  which would make providing iterators possibly rather difficult.<P>
481
+
482
+  Much more extensive documentation on the KConfig and friends API can
483
+  be found in the kdoc generated documentation from the header files,
484
+  and in kdecore/KCONFIG_DESIGN.<P>
485
+
486
+  To use the new iterator, you will probably want to do something like
487
+  this:<P>
488
+  <PRE>
489
+
490
+  QMap&lt;QString, QString&gt; tmpMap = config-&lt;entryMap(myGroup);
491
+  QMap&lt;QString, QString&gt;::Iterator aIt(tmpMap.begin());
492
+
493
+  for (; aIt != tmpMap.end(); ++aIt) {
494
+   // body here.  Access iterator key as aIt.key(),
495
+   // data as *aIt.
496
+  }
497
+  </PRE>
498
+
499
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
500
+
501
+<H3><A NAME="libkfm">libkfm has disappeared</A></H3>
502
+
503
+  Lots of other functionalities have been taken out of kfm, some being
504
+  now in libkio, some in libkonq.<P>
505
+ <STRONG> Replacement table :</STRONG><P>
506
+<TABLE BORDER="1">
507
+
508
+<TR><TD>KFM::download         </TD><TD>-&gt; KIO::NetAccess::download (kdelibs/kio/netaccess.h)</TD></TR>
509
+<TR><TD>KFM::removeTempFile   </TD><TD>-&gt; KIO::NetAccess::removeTempFile</TD></TR>
510
+<TR><TD COLSPAN="2" ROWSPAN="0">refreshDesktop, sortDesktop, selectRootIcons : removed; kdesktop handles it</TD></TR>
511
+<TR><TD>KFM::configure        </TD><TD>-&gt; see konqueror DCOP interface</TD></TR>
512
+<TR><TD>KFM::openURL          </TD><TD>-&gt; "(void) new KRun (url)" (kdelibs/kio/krun.h)</TD></TR>
513
+<TR><TD>KFM::refreshDirectory </TD><TD>-&gt; not needed anymore since konqy/kdesktop use KDirWatch</TD></TR>
514
+<TR><TD>KFM::openProperties   </TD><TD>-&gt; "(void) new KPropertiesDialog (url)" (kdelibs/kfile/kpropsdlg.h)</TD></TR>
515
+<TR><TD>KFM::exec             </TD><TD>-&gt; "(void) new KRun (url)" (kdelibs/kio/krun.h)</TD></TR>
516
+<TR><TD>KFM::copy, KFM::move  </TD><TD>-&gt; KIO::Job (async, see kio/job.h)<BR>
517
+                            or KIO::NetAccess (sync, see kio/netaccess.h)</TD></TR>
518
+<TR><TD>DlgLocation           </TD><TD>-&gt; Use KLineEditDlg (kdeui/klineeditdlg.h) instead</TD></TR>
519
+</TABLE>
520
+
521
+<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
522
+
523
+<H3><A NAME="KDialog">KDialog</A></H3>
524
+
525
+KDialog is no longer defined in kwizard.h. Include kdialog.h instead.<P>
526
+Note that the best way to write new dialogs is to use KDialogBase (see kdialogbase.h)<P>
527
+
528