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. Database drivers (MySQL, PostgreSQL) 2. Development files 2.1. KexiDB development files 2.2. Chalk development files 3. Scripting support 4. Microsoft Access Import (optional, recommended) 5. Quick command-line tests of Kexi installation 1. Database drivers ------------------- Kexi provides database drivers for MySQL and PostgreSQL. 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: libmysqlclient for MySQL; and and libpqxx for PostgreSQL (libpqxx in turn depends on libpq). Thus, the MySQL driver package could contain: lib/trinity/kexidb_mysqldriver.so lib/trinity/kexidb_mysqldriver.la lib/trinity/keximigrate_mysql.so lib/trinity/keximigrate_mysql.la share/services/kexidb_mysqldriver.desktop share/services/keximigrate_mysql.desktop The PostgreSQL driver package consists of the following files: lib/trinity/kexidb_pqxxsqldriver.so lib/trinity/kexidb_pqxxsqldriver.la lib/trinity/keximigrate_pqxx.so lib/trinity/keximigrate_pqxx.la share/services/kexidb_pqxxsqldriver.desktop share/services/keximigrate_pqxx.desktop Note that you SHOULD NOT care about SQLite database driver or adding dependencies for SQLite, because SQLite support is built into Kexi using a fork of SQLite source code. 2. Development files -------------------- 2.1. KexiDB development files Location: koffice/kexi/kexiutils, koffice/kexi/kexidb, koffice/kexi/migration KexiDB, the database abstraction library used in Kexi, installs some development files which are required for building external plugins, such as the MS Access import plugin described below. We recommend providing KexiDB development files in a separate package. The files are: include/kexidb/*.h include/kexiutils/*.h lib/libkexidb.la lib/libkexidb.so lib/libkexidbparser.so lib/libkexidbparser.la The installation can be tested by building the MS Access import plugin as described in the Microsoft Access import plugin section below. 2.2. Chalk development files Location: koffice/chalk/core, koffice/chalk/sdk, koffice/chalk/chalkcolor, koffice/chalk/ui These directories contain header files that are installed and can be used by plugin developers to extend Chalk 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. Scripting support -------------------- Preliminary support for Ruby and Python scripting is available for Chalk and Kexi. It can be disabled by passing the '--disable-scripting' option to 'configure'. The 'Kross' scripting library (koffice/lib/kross) provides access to the Python and Ruby scripting languages by the dynamically loaded plugins. Build time dependencies: Python and Ruby development packages need to be installed in order to build KOffice with full scripting support. In addition, the Ruby interpreter is also required at build time. Run time dependencies: Kross detects which of these libraries is installed dynamically, at run-time. Therefore, KOffice packages need not have any run-time dependencies on any scripting interpreter. The scripting language plugins can be found in: koffice/lib/kross/python; and koffice/lib/kross/ruby. They install as: lib/trinity/krosspython.{la,so}; and lib/trinity/krossruby.{la,so} It is recommended to put each interpreter plugin into a separate package, and the user decide if they would like support for each language individually. For example, the Python scripting package may contain: lib/trinity/krosspython.so lib/trinity/krosspython.la share/apps/kexi/scripts/exportxhtml/ExportXHTML.py share/apps/kexi/scripts/exportxhtml/ExportXHTML.rc share/apps/kexi/scripts/importxhtml/ImportXHTML.py share/apps/kexi/scripts/importxhtml/ImportXHTML.rc share/apps/kexi/scripts/projectdocumentor/ProjectDocumentor.py share/apps/kexi/scripts/projectdocumentor/ProjectDocumentor.rc share/apps/chalk/scripts/invert.py share/apps/chalk/scripts/reshapehisto.py and the Ruby scripting package may contain: lib/trinity/krossruby.so lib/trinity/krossruby.la share/apps/chalk/scripts/ruby/invert.rb share/apps/chalk/scripts/ruby/changecs.rb share/apps/chalk/scripts/ruby/randompaint.rb 4. Microsoft Access Import (optional, recommended) ------------------------------------- A plugin to allow the import of MS Access (.mdb) files is available for packaging separately. It is called KexiMDB. This package is based on a stripped-down and modified version of mdbtools: http://mdbtools.sf.net/ The package should be built after KOffice. It requires GLib, and the Kexi development files as described above. The version of the plugin for use with KOffice 1.5 should be available from: ftp://ftp.kde.org/pub/kde/stable/apps/KDE3.x/database/keximdb-1.0.tar.gz Alternatively, it can be found in the KDE Subversion repository. It can be built as follows: svn export svn://anonsvn.kde.org/home/kde/branches/work/keximdb/koffice-1.5 keximdb-1.0 cd keximdb-1.0 make -f Makefile.cvs ./configure --enable-debug=full make make install Configure may need to be informed of the location of the KexiDB headers using the --with-kexidb-includes=... and the --with-kexidb-libraries=... options. 5. 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 message) This will: - create a new empty database file "testdb", - open it, - create a new empty form