company logo

Compile and install the Linux Package

In order to install the Linux package, odaba-12.0.0.tar.bz2 (or any other version) may be downloaded from http://sourceforge.net/p/odaba/. The package contains the complete documentation and the sources and procedures to build the software.

After unpacking and copying the files to local directories, one may compile the system. In order to build the basic database libraries and tools, only the base sources need to be build. In order to build the GUI framework and ODABA GUI tools, QT 4 has to be installed as development-package.

ODABA can be installed on any Linux (Suse, Fedora, Gentoo, Arch). In order to install ODABA, you have to

  • unpack the installation file
  • compile the source-package for your platform
  • roll a package and use the facilities provided by you distribution to install

Please read the INSTALL file provided with the source package as it contains hints about the dependencies your system has to provide.

In order to configure and install the source package, the following packages have to be available:

  • automake
  • autotools
  • libtool
  • pkg-config
Unpack installation file

In order to unpack the installation file, one may simply call

    $ tar xjf odaba-[version].tar.bz2

where version is the current version number of the ODABA release (e.g. 12.0.0). The result is the ODABA-source tree in a directory 'odaba-[version]'.

Notes:

I requires about 300 MB of free disk space to unpack ODABA.

configure

Installation is controlled by several options, which are mainly used in order to include optional features. For activating proper options, configure has to be called on all platforms before compiling the package.

configure [--enable-gui] [--prefix=target]

[--with-qt=qt-location]

[--with-zlib=zlib-location]

[--with-libcurl=libcurl-location]

[--with-libzip=libzip-location]

[--with-hunspell=hunspell-location]

[--with-libmicrohttpd=libmicrohttpd-location]

In order to build ODABA including GUI framework one may call configure without parameters. For suppressing installing GUI framework, one may pass --disable-gui.

target - a target location might be passed in order to create the ODABA system folder in a different place than in the Window's program folder (see next step: make install).

qt-location - locations for Qt header files and libraries in Qt installation folder are necessary in order to enable GUI applications and ODABA GUI tools. ODABA runs with QT4 as well as with Qt5.

zlib-location - locations for zlib header files and libraries in zlib installation folder are necessary in order to activate the compression feature, which is used in order to compress large data fields as well as net packages. This is not explicitly required but may improve performance.

libzip-location - locations for libzip header files and libraries in libzip installation folder are necessary in order to use the Open Document generation feature. When the component has not been activated, document generation will fail.

hunspell-location - locations for hunspell header files and libraries in hunspell installation folder is needed for activating the spell checker feature. When the option has not been set, no spell check is performed (e.g. in Terminus).

libmicrohttpd-location - locations for libmicrothhpd header files and libraries in libmicrothhpd installation folder is needed for activating the HTTP server features.

When installed components do not correspond to expected directory structure, component sources have to be defined more detailled, e.g. like

configure --with-hunspell-include=.../hunspell-1.3.1/src/hunspell

--with-hunspell-lib=.../hunspell-1.3.1/lib

Extended features features, which have been installed at default locations will be detected automatically and need not to be defined when configuring ODABA. In order to use extended features, following libraries may be provided (but need not):

  • readline provides command line history and editing features for the terminal. For UNIX, readline is mandatory.
  • zlib is used for data compression in different places (e.g. for transferring data via net or loading compressed databases in replication server mode). It is also required for BackupDB and RestoreDB.
  • libzip is used to read and generate OpenDocument files. This feature is used for generating LibreOffice documents from document templates.
  • libcurl supports various communication protocols and is used for sending emails via ssmtp protocol. In case the platform does not provide libcurl in a recent version it is still possible to send emails using the unencrypted port 25 or send mail on UNIX platforms. This feature is used, e.g. for the ODE ticket-tracking feature.
  • libhunspell is required for using the built-in spell checker, which is supported for most large text fields (documentation) in several ODE tools.
  • libmicrohttpd is required in order to provide HTTP server features. Without providing this library, OHTTPServer(D) will not work.

When installing those libraries after installing ODABA, ODABA has to be re-installed afterward in order to activate newly installed features (configure, make, make install).

In case the platform that is used to build ODABA does not provide pkg-config it is possible to provide all dependent libraries using variables ( see example ).

:: supposed that all referenced features have been installed at default locations

./configure --enable-gui --prefix=/tmp/odaba

Compiling GNU/Linux

After unpacking (unpack) the installation file one may build the base libraries and tools (ODABA) as well as the GUI framework and GUI tools (ODABA GUI). There is a more detailed guide in share/doc/odaba/INSTALL that also lists the dependencies for common platforms by name.

Compile

In order to build ODABA, you need

    g++, libstdc++, readline, libc, qt, curl, libzip, zlib, libmicrohttpd

Since ODABA 11.1 autotools are supported. Therefore, configuring build and install of ODABA is now similar to any package you already know by executing

    $ ./configure && make && make install

In order to build the ODABA GUI framework, in addition you need

    qt4.5 to qt5.11

configure will automatically disable features that require libraries not installed on the build-host.

When running into problems:

common reasons for compile errors are:

  • different include paths - fix: set eg QtCore_CFLAGS
  • different library names - fix: set eg QtCore_LIBS
  • missing includes - e.g. some system include is not included as expected - fix: src/#/name/bat/qlib/cppfile, add include
  • defect classes - sometimes a class cannot be used on the system (e.g. Windows, only or in development) but is not necessary for the package

It would be nice when you let us know what you fixed for which platform so we can add this to the main line tree.

$ CXXFLAGS="$(CXXFLAGS)" ./configure \

   --prefix=/develop/odaba-$(shell cat VERSION) \

   --exec_prefix=/develop/odaba-$(shell cat VERSION)

$ make

$ make install

Install package

After compilation succeeded executables have to be installed on the system. Depending on settings when configuring the system, ODABA will be installed in default location (/usr/local/) or in the odaba root location passed in --prefix while configuring the package.

$ ./configure --prefix=/home/username/odaba-[VERSION]

In order to install the package, call

$ [sudo] make install

Depending on the configure parameters this action may require root access to create the directories in the system. For default configuration (without --prefix) write access is required for /usr/local, which is not the default on every platform. When running make install does not work, one has to call the installation as system administrator (sudo).

After installation, following folders are created below the ODABA root directory (/usr/lib or settings from --prefix):

etc/odaba - tools configuration files

etc/odaba/tpl - ODABA configuration file templates

include - common API header files

include/odaba - ODABA database API header files

include/odabagui - ODABA GUI API header files

lib - dynamic ODABA system libraries

lib/odaba/modules - optional and plugin libraries

lib/odaba/tools - executables (utilities, gui frame work, tools etc.)

share/odaba - system databases and maintenance procedures (.sh)

share/odaba/procedures - compile procedures

share/odaba/scripts - sample scripts (for data model definition - ODL, script example - OSI and OShell)

share/odaba/template - LibreOffice document templates (ODABA document interface)

After installing, ODABA tools may be called from the tools directory. Most ODABA tool require a configuration or ini-file for passing run-time information to the tool. Configuration (ini) files are described in the corresponding tools documentation. In order to make dynamic and optional libraries available, the LD_LIBRARY_PATH should be set at least to:

LD_LIBRARY_PATH=$(ODABA_ROOT)/lib:$(ODABA_ROOT)/odaba/modules

export LD_LIBRARY_PATH

Instead of exporting the library path one also me precede the function call by path setting. One way to generate appropriate procedures and configuration files is calling CreateProject (see Create new project).

Most steps described in the following chapters suppose that ODABA had been installed in the default location (/usr/local). When it had been installed in another place, one simply has to replace /usr/local by the location passed in --prefix.

QT settings

ODE tools are optimized for small letters. Thus, default setting as e.g. being used in UBuntu make tools looking strange, since labels do not fit and will be cut. In order to get a proper look for ODE tools, one may run Qt Settings. This in not installed by default and one may have to install qt4-qtconfig.

In the Qt Settings dialog, one may change font settings to a regular 8 points font, which makes tools looking much better.

Qt Settings. dialog is not provided with Qt5.

Uninstall ODABA

In order to remove the package, the directories as being listed in the topic above have to be removed. So far, there is no procedure generated for removing files.