Skip to content

oyranos-cms/oyranos

Repository files navigation

Oyranos README

Pipeline Coverity Scan Build Status Documentation Codecov coverage License

The Color Management System (CMS) Oyranos allows the coordination of device specific Informations (ICC profiles) und system wide settings.

Links

Dependencies

From Sources

Mandatory
Optional
  • libxml2 - for XML parsing (or internal fallback)
  • [libXcm >= 0.5.4] (https://gitlab.com/oyranos/libxcm) - for monitor support (or internal fallback)
  • Yajl - JSON API (or internal fallback)
  • Oyjl - Oyjl Shared Basics API (or internal fallback)
  • libOpenICC - JSON/Yajl based DB API (or internal fallback)
  • Elektra - DB API and D-Bus messaging
  • FLTK - (--enable-threads) is needed for the example Gui
  • For the documentation use doxygen, graphviz and graphviz-gd packages.
  • LCOV - coverage docu
  • Qt - for a nice observer utility
  • CUPS - for CUPS ICC configuration support
  • libraw - for cameraRAW decoding
  • exiv2 - for cameraRAW decoding
  • SANE - only with Oyranos SANE_CAP_COLOUR patch
  • Cairo - for a tool and a example
  • gettext - i18n
  • microhttpd - oyjlArgsWeb renderer

Debian/Ubuntu:

sudo apt-get install locales build-essential git autoconf cmake ruby libxml2-dev libyajl-dev libdbus-1-dev gettext libfltk1.3-dev libjpeg-dev libpng-dev libcairo2-dev x11proto-xf86vidmode-dev x11proto-xext-dev libxxf86vm-dev libxrandr-dev libxinerama-dev libxpm-dev libxfixes-dev libxft-dev fluid ftgl-dev liblcms-dev libexiv2-dev libcups2-dev cmake
# oyranos-0.9.7 can now be installed successfully.
sudo apt-get install libqt4-dev                        # Synnefo
sudo apt-get install kdelibs5-dev                      # KolorManager
sudo apt-get install libgtk2.0-dev libglib2.0-dev libgutenprintui2-dev libopenexr-dev # CinePaint
sudo apt-get install doxygen graphviz                  # for documentation
Optional
ICC Examin to build afterwards. oyranos-config-fltk uses the profile viewer.

Fedora 17

git
gcc-c++
elektra-devel
exiv2-devel
cmake
cups-devel
sane-backends-devel
liblcms-devel
liblcms2-devel
icc-profiles-basiccolor-lstarrgb
icc-profiles-lcms-lab
icc-profiles-openicc-printing
icc-profiles-openicc-rgb
libtool
libtool-ltdl-devel
libxml2-devel
libpng-devel
libtiff-devel
LibRaw-devel
libXinerama-devel
libXrandr-devel
libXcm-devel
fltk-devel
fltk-fluid
gettext
yajl-devel
doxygen
graphviz
Optional
cairo-devel
qt-devel
netpbm-progs
exiv2-devel

Arch Linux

extra/libxml2
extra/libxrandr
extra/libxinerama
extra/libxfixes
extra/libxxf86vm
extra/lcms
extra/lcms2
extra/graphviz
extra/doxygen
community/yajl
AUR/libxcm
AUR/openicc (TODO verify if correct package)
Optional
extra/qt
extra/fltk
community/libraw
AUR/xcalib
AUR/elektra

NOTE1: If you have problems installing elektra from AUR, use this PKGBUILD: ./extras/arch.abs/elektra/PKGBUILD

NOTE2: To build an Arch package of Oyranos from yor local git branch, use './extras/arch.abs/oyranos-git/PKGBUILD' and (a) replace '_gitroot' variable, (b) replace the branch name in line 44.

openSUSE Leap 15.5

zypper install cmake color-filesystem gcc-c++ git autoconf libtool make patch pkgconfig desktop-file-utils xdg-utils update-desktop-files ghostscript-fonts-std Mesa-devel libltdl-devel cups-devel elektra libxml2-devel libyajl-devel libyaml-devel libmicrohttpd-devel liblcms-devel liblcms2-devel libjpeg-devel libpng-devel libtiff-devel libraw-devel libexiv2-devel libxcm-devel libXcm0 libSM-devel xorg-x11-libXfixes-devel xorg-x11-libXpm-devel libXinerama-devel libXrandr-devel libXxf86vm-devel xbacklight sane-backends-devel fltk-devel libXft-devel ftgl-devel glu-devel gettext gettext-tools cairo-devel netpbm
# oyranos-0.9.7 can now be installed successfully.
zypper install libqt4-devel libqt5-qtbase-common-devel          # Synnefo
zypper install patterns-kde-devel_kde_frameworks                # KolorManager
zypper install gtk2-devel libopenexr-devel gutenprint-devel     # CinePaint
zypper install doxygen graphviz                                 # for documentation

Building

$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install

Build Flags

... are typical cmake flags like CMAKE_C_FLAGS to tune compilation.

  • CMAKE_INSTALL_PREFIX to install into paths and so on. Use on the command line through -DCMAKE_INSTALL_PREFIX=/my/path .
  • XDG_CONFIG_DIR - path to install oyranos-monitor-setup.desktop; defaults to /etc/xdg/autostart/
  • USE_GCOV - enable gcov/lcov compiler flags on the Unix platform and the coverage target
  • USE_SYSTEM_ELEKTRA - fail if not found
  • USE_SYSTEM_LIBXCM - fail if not found; default is shipped fallback version
  • USE_SYSTEM_OPENICC - fail if not found; default is shipped fallback version
  • USE_SYSTEM_OYJL - fail if not found; default is shipped fallback version
  • USE_SYSTEM_YAJL - fail if not found; default is shipped fallback version
  • USE_SYSTEM_LIBXML2 - fail if not found; default is shipped fallback version
  • ENABLE_QT - detect Qt5 and Qt4i; default is ON
  • ENABLE_OPENMP - detect OpenMP support; default is ON
  • ENABLE_FLTK - default is ON
  • ENABLE_DOCU_OYRANOS - generate with doxygen; default is ON
  • ENABLE_TESTS_OYRANOS - default is ON
  • ENABLE_EXAMPLES_OYRANOS - default is ON
  • ENABLE_SHARED_LIBS_OYRANOS - default is ON
  • ENABLE_STATIC_LIBS_OYRANOS - default is ON

Maintenance

libOyjl is included as a subtree project. Its main use is in the Oyranos tree. However spin off projects use the OyjlArgs API already. Checkout of the Oyranos tree includes the Oyjl sources - simple. For git check in of changes in openicc/oyjl use the prefix in: $ git commit openicc/oyjl -m "*[oyjl]: XXX" For commiting to Oyjl project use: $ git commit openicc/oyjl # to register the libOyjl changes $ git stash # hide everything else. git is a bit picky here. $ git subtree push -P openicc/oyjl oyjl master $ git stash pop # restore the stash cache For pulling in/update openicc/oyjl from the Oyjl upstream: $ git stash # hide everything else. git is a bit picky here. $ git subtree pull -P openicc/oyjl oyjl master $ git stash pop # restore the stash cache