[Openicc] Profile installation and association for Linux/Unix/X11

Markus Raab openicc at markus-raab.org
Wed Apr 30 08:55:59 PDT 2008

Am Mittwoch, 30. April 2008 08:22 schrieb Graeme Gill:
> Markus Raab wrote:
> > Unfortunately you are absolutely right. The reason is that mounting in
> > the yet unreleased 0.7 is a brand-new feature. But everybody is welcome
> > to change the situation and write backends!
> I started looking into writing a JSON back end for Elektra 0.7,

That would be great!

You may want to have a look at:
CODING document, section Compile a backend or = Add a backend  = if you want 
that it comes into elektra (BSD licence required).

> It seems that building Elektra from source is not easy. My first attempt
> on my Fedora Core 8 box resulted in errors such as:

It is only easy if you have the correct automake/autoconf.
1.9.6 is known to work.

> Looking into the bootstrap.sh file, I determined that I have
> automake-1.10 and aclocal-1.10 as the default versions on this system,
> which Elektra doesn't seem to want to use. I changed them to
> 1.7 as per the acceptable version range in the check below this
> and then got this sort of thing:
> ./bootstrap.sh
> > You should add the contents of `/usr/share/aclocal/libtool.m4' to
> > `aclocal.m4'. ACLOCAL
> > aclocal: configure.ac: 289: macro `AM_ICONV' not found in library
> > configure.ac: no proper invocation of AM_INIT_AUTOMAKE was found.

Seems like I have changed something to be not compatible to 1.7 anymore ;(

> Having failed with V0.7, I then tried to at least build it from the
> 0.6.10-2 RPM on the source forge site, and got this:
> rpmbuild --rebuild elektra-0.6.10-2.src.rpm
> > Installing elektra-0.6.10-2.src.rpm
> > warning: user aviram does not exist - using root
> > warning: group aviram does not exist - using root
> > warning: user aviram does not exist - using root
> > warning: group aviram does not exist - using root
> > error: Package already exists: %package debuginfo

0.6 is not really useful anymore if you don't have software using it. Multiple 
backends are not supported there.

> I'm really not at all familiar with automake, and don't really want to know
> any more about it (one of the reasons I chose a different build system for
> my software was specifically to avoid having to get tangled up in automake
> and friends), so I haven't pursued it any further. I'm not finding the
> documentation within Elektra particularly easy to comprehend, so I was
> hoping to trace the behavior of various back ends to determine what the
> back end API actually consists of.

I have uploaded the documentation here:

But basically a backend consists of only 5 functions, see
src/backends/template you can use it as starting point:
int kdbOpen_template(KDBHandle *handle)
int kdbClose_template(KDBHandle *handle)
ssize_t kdbGet_template(KDBHandle *handle, KeySet *r, const Key *parentKey)
ssize_t kdbSet_template(KDBHandle *handle, KeySet *r, const Key *parentKey)

What these functions needs to fulfill is described in detail in the 
documentation Modules -> KDB Backends
don't be scared, you don't have to fulfill everything described in kdbGet and 
kdbSet, you can declare with capabilities what your backend supports.

thank you
Markus Raab

More information about the openicc mailing list