Packaging Information for KOffice.
----------------------------------

We recommend building several binary packages from the KOffice source.

Splitting KOffice into packages:
 * gives users a better choice of which components they have
   installed;
 * allows users to install just the applications without unnecessary
   dependencies;
 * helps to reduce packaging conflicts for users with non-standard
   package selections.


Table Of Contents
-----------------
1. Kexi
1.1. Kexi database and migration drivers
1.2. Kexi default database driver: SQLite
1.3. Kexi development files
1.4. Quick command-line tests of Kexi installation
2. Krita
2.1. Krita development files
3. Debug information
4. KOffice libraries

1. Kexi
=======

1.1. Kexi database and migration drivers
----------------------------------------

Kexi provides database drivers and migration drivers for a number of
database types or data sources. The following matrix lists them:

 Name         Database driver files            Migration driver files
 ------------------------------------------------------------------------
 MySQL        kexidb_mysqldriver.so            keximigrate_mysql.so
              kexidb_mysqldriver.desktop       keximigrate_mysql.desktop
 PostgreSQL   kexidb_pqxxsqldriver.so          keximigrate_pqxx.so
              kexidb_pqxxsqldriver.desktop     keximigrate_pqxx.desktop
 Sybase & MS SQL Server
              kexidb_sybasedriver.so           keximigrate_sybase.so
              kexidb_sybasedriver.desktop      keximigrate_sybase.desktop
 XBase
              kexidb_xbasedriver.so            keximigrate_xbase.so
              kexidb_xbasedriver.desktop       keximigrate_xbase.desktop

(Oracle driver is not currently distributed)

Plugin .so files typically go to $KDEDIR/lib/kde4,
and .desktop service files go to $KDEDIR/share/services/.

We suggest putting each driver in a separate package, and that installation of
these packages be optional.  Each driver package may then depend on the corresponding
'native' libraries. For example libmysqlclient for MySQL and libpqxx for PostgreSQL
(libpqxx in turn depends on libpq).

TODO: add dependencies to the table above and minimal versions of them

1.2. Kexi default database driver: SQLite
-----------------------------------------

In contrast to the other database drivers, SQLite 3 driver should be part
of the main Kexi package. Thus, Kexi main package should depend on SQLite 3 package.

TODO: explain minimal SQLite version, and its features (http://kdedevelopers.org/node/4156)


1.3. Kexi development files
---------------------------

Kexi ships no development files at the moment, so -devel packages are not needed.


1.4. Quick command-line tests of Kexi installation
--------------------------------------------------

If you don't want to click through Kexi interface but still want
to make (almost) sure the application is properly packaged, please 
install it and type the following from the command line:

 kexi --create-opendb --drv sqlite3 --new form testdb

(ignore possible warning messages)
This will:
- create a new empty database file "testdb",
- open it,
- create a new empty form


2. Krita
========

2.1. Krita development files
----------------------------

Location: koffice/krita/image, koffice/krita/ui

These directories contain header files that are installed and can be
used by plugin developers to extend Krita with new tools, colorspaces,
paint-ops and more.  If your distribution packages development files
separately, it may be a good idea to make a package with these headers.


3. Debug information
====================

For alpha and beta packages, please build with debug output enabled, but for
production packages the -DCMAKE_CXX_FLAGS="-DKDE_NO_DEBUG_OUTPUT" is recommended.
A significant performance increase will be the result.


4. KOffice libraries
====================

KOffice share common functionality within libraries, placed in libs/ subdirectory.
KOffice libraries should be placed in a single package, separate from KOffice applications.
Below is the list of the libraries.

Name       Conditional compilation flag    Globally used in KOffice?   Public API
                                                                       (headers installed)
           (default: NO)                   (default: YES)              (default: YES)
------------------------------------------------------------------------------------------

flake
kokross    SHOULD_BUILD_SCRIPTING                                      NO
kopageapp
koplugin                                                               NO
koproperty                                 Kexi, KPlato                NO
koreports                                  Kexi, KPlato                NO
kotext
main
odf
pigment
widgets
