# TINE 5


### Building

Check out the repository with

       $ git clone https://mcs-gitlab.desy.de/tine/tine-kernel/tine-5.git
       $ cd tine-5

The library version number is stored in tinedefs.h. For building with `makeDdeb` it is also needed
in the `LIBNO` file. You can easily update that via

       $ tools/update-libno.sh

Usually the LIBNO file should be already ok on freshly checkout out repo.
If a mismatch is found some files are updated and you will need to check them in
afterwards.

The build is configured with Meson and afterwards processed by `ninja`. For a local build

       $ meson builddir
       $ ninja -C builddir
       $ ninja -C builddir install

Here a list of possibly useful parameters that can be given to Meson:
* `--prefix=` Where the libraries should be installed, default `/usr`
* `--sysconfdir=` Where to put the DB file, default `/etc/tine`
* `--buildtype=debug` Build everything with full debug symbols and no optimization
* `-Dtools=false` Set to false to prevent building the tine toolset, default true
* `-DPyTine=false `Set to false to prevent building the Python library, default true

### Debian packaging

Debian packaging is possible with

       $ debuild --no-lintian --no-sign -b

or as Doocs package with

       $ makeDdeb -D
       $ makeDdeb -I

You do not need to set a build system up beforehand, it will call Meson itself and create a fresh
build system setup for the packaging.

To clean up after packaging

       $ dh_clean

### Updating

When this repo is updated from `git@doocs-git.desy.de:vendor/desy/mcs/tine/tine-package.git` or
the Subversion repo
* Copy source code recursively from their `source/` into our `.`, but exclude the `meson*` files
* Copy their `database/` into our `data/`
* Copy their `doocs/tine-config` into our `data/`
* Run `tools/update-libno.sh`
* Add and commit all changes
