[Openicc] Linux CM ideology .. Linux CM proposal

Kai-Uwe Behrmann ku.b at gmx.de
Tue Feb 8 01:15:52 PST 2011


Am 08.02.11, 11:48 +1100 schrieb Graeme Gill:
> Jan-Peter Homann wrote:

>> Here at the OpenICC, we have the possibilty to work on better integrated
>> solutions. The proposal i have posted at OpenICC wiki
>> http://www.freedesktop.org/wiki/OpenIcc (point 9)
>
> I would actually suggest a much more modest proposal to start, and
> that is providing a system wide registry of devices and associated
> profiles, and a means to read and write the registry.
>
> I would propose creating a file format and a library to access
> the settings. Make it (relatively) self contained, so that
> it doesn't imply bringing a lot of baggage along, or any particular
> environment or system dependence, so that it can gain wide acceptance.
> It would provide a lowest common denominator, and provide
> a foundation for applications to do their own color management,
> as well as system libraries to provide color management
> services.

good point

> I suspect agreeing on even something as simple as the above (with
> the aspects of how to store it, how to access it, how to identify
> devices, and how to identify appropriate profiles for a given
> device state + desktop/distro/operating system politics), will
> be a formidable enough challenge. If we could get that far, the
> rest might flow on.

I think we are basically agree about a key/value pair registry / data 
base.

As Oyranos targets at multi platforms a small library dependency has high 
priority.

To realise the DB we can base it on:
* JSON as use in ArgyllCMS,
* Elektra files based data base (DB) as in Oyranos
* XML
* sqlite as used in colord


JSON appears to be accessible by yail, which is small, widely deployed and 
cross platform.
XML needs libxml2, which is not as small but widely deployed and cross 
platform.
Elektra file access needs Elektra or alternatively file access on C level.
The syntax is very very simple. More and more industry applications 
deploy it. C and Elektra are cross platform.
SQLite is a small library. The data base itself is a chunk of data other 
than the previously mentioned formats. It is widely deployed and cross 
platform.


A examples of a Elektra key/value file follows.
~/.kdb/user/shared/freedesktop.org/imaging/config.device.icc_profile.printer.CUPS/1/device_name:
"RG002
40
<DATA>
Stylus-COLOR-740"
There is no end of line.


A self contained DB accessor needs to embed the according format library 
and detect at compile time a system installed library.

The Elektra file scheme, which is the default for Elektra, is the 
only completly independent one, because the syntax needs just some lines 
of code.


kind regards
Kai-Uwe Behrmann
-- 
developing for colour management 
www.behrmann.name + www.oyranos.org



More information about the openicc mailing list