commit bd101b881b3d64e9249e7f267112864386dd8f288e5ad87540ded12b26592686 Author: Klaus Kämpf Date: Thu Jan 12 09:42:03 2012 +0000 Accepting request 99876 from multimedia:photo let's move argyllcms there, so we could use this project as devel repository for factory submission OBS-URL: https://build.opensuse.org/request/show/99876 OBS-URL: https://build.opensuse.org/package/show/multimedia:color_management/argyllcms?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/19-color.fdi b/19-color.fdi new file mode 100644 index 0000000..643c663 --- /dev/null +++ b/19-color.fdi @@ -0,0 +1,92 @@ + + + + + + + + access_control + color + linux.device_file + + + + + + access_control + color + linux.device_file + + + + + + + access_control + color + linux.device_file + + + + + + + access_control + color + linux.device_file + + + + access_control + color + linux.device_file + + + + access_control + color + linux.device_file + + + + + + + access_control + color + linux.device_file + + + + + + + access_control + color + linux.device_file + + + + access_control + color + linux.device_file + + + + access_control + color + linux.device_file + + + + access_control + color + linux.device_file + + + + diff --git a/Argyll_V1.3.0_autotools.patch b/Argyll_V1.3.0_autotools.patch new file mode 100644 index 0000000..5deb912 --- /dev/null +++ b/Argyll_V1.3.0_autotools.patch @@ -0,0 +1,1208 @@ +=== modified file 'Makefile' +--- Argyll_V1.3.0/Makefile 2009-11-06 16:34:36 +0000 ++++ argyllcms-autotools/Makefile 2010-09-12 17:13:26 +0000 +@@ -1,10 +1,1 @@ +-# default Makefile to invoke Jam +- +-all:: +- jam -q -fJambase -j 3 +- +-clean:: +- jam clean +- +-install:: +- jam -q -fJambase -j 3 install ++# Empty Makefile + +=== added file 'Makefile.am' +--- Argyll_V1.3.0/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,30 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libargyll.la libargyllusb.la ++privatelibdir = $(pkglibdir) ++ ++libargyll_la_SOURCES = xicc/xicc.c xicc/xicc.h xicc/xcam.c xicc/xcam.h \ ++ gamut/gamut.c gamut/gamut.h xicc/xfit.c xicc/xfit.h \ ++ xicc/cam97s3.c xicc/cam97s3.h xicc/cam02.c xicc/cam02.h \ ++ xicc/moncurve.c xicc/moncurve.h xicc/xspect.c xicc/xspect.h \ ++ xicc/xcal.c xicc/xcal.h xicc/xcolorants.h xicc/xcolorants.c ++libargyll_la_LIBADD = ./rspl/librspl.la $(ICC_LIBS) \ ++ ./numlib/libargyllnum.la ./cgats/libcgats.la ++ ++if OS_LINUX ++LIBUSB_OS_SUPPORT = libusb1/libusb/os/linux_usbfs.c libusb1/libusb/os/linux_usbfs.h ++endif ++ ++libargyllusb_la_SOURCES = libusb1/libusb/core.c \ ++ libusb1/libusb/descriptor.c libusb1/libusb/io.c \ ++ libusb1/libusb/sync.c $(LIBUSB_OS_SUPPORT) ++libargyllusb_la_CFLAGS = -I $(top_srcdir)/libusb1/libusb -D _GNU_SOURCE ++ ++SUBDIRS = h doc ref numlib cgats $(ICC_SUBDIRS) plot rspl jcnf ucmm \ ++ render . gamut spectro xicc target link tweak profile scanin \ ++ imdi ++ ++EXTRA_DIST = Readme.txt ttbd.txt log.txt ++ + +=== added file 'Makefile.shared' +--- Argyll_V1.3.0/Makefile.shared 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/Makefile.shared 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,16 @@ ++# -*- mode: Makefile -*- ++ ++# Common CFLAGS for Argyll components ++AM_CFLAGS = -DUNIX -DUSE_LIBUSB1 -I$(top_srcdir)/cgats \ ++-I$(top_srcdir)/gamut -I$(top_srcdir)/h -I$(top_srcdir)/jcnf \ ++-I$(top_srcdir)/libusb1/libusb -I$(top_srcdir)/numlib \ ++-I$(top_srcdir)/plot -I$(top_srcdir)/profile -I$(top_srcdir)/render \ ++-I$(top_srcdir)/rspl -I$(top_srcdir)/spectro -I$(top_srcdir)/target \ ++-I$(top_srcdir)/ucmm -I$(top_srcdir)/xicc $(TIFF_CFLAGS) $(ICC_CFLAGS) \ ++$(YAJL_CFLAGS) ++ ++# Build libs in other dirs when required ++../%.la: ++ $(MAKE) -C $(@D) $(@F) ++./%.la: ++ $(MAKE) -C $(@D) $(@F) + +=== modified file 'cgats/Makefile' +--- Argyll_V1.3.0/cgats/Makefile 2008-11-16 13:45:00 +0000 ++++ argyllcms-autotools/cgats/Makefile 2010-09-12 17:13:26 +0000 +@@ -1,68 +1,1 @@ +-# UNIX style makefile, for icclib and friends. +-# "include" the right environment for your system, +-# by uncommenting the appropriate line: +- +-# Microsoft C++, WinNT setup +-#include Makefile.WNT +- +-# IBM C++, WinNT setup +-include Makefile.IBMNT +- +-# Generic UNIX setup +-#include Makefile.UNIX +- +-# Apple OSX +-#include Makefile.OSX +- +-############################### +- +-#Compile with separate stndard malloc & file io +-#CCDEFINES = $(DEFFLAG)SEPARATE_STD +- +-#Set optimisation on +-CCFLAGS = $(CCFLAGSDEF) $(CCOPTFLAG) $(CCDEFINES) +- +-#Set debugging on +-#CCFLAGS = $(CCFLAGSDEF) $(CCDEBUGFLAG) $(CCDEFINES) +- +-STDHDRS = $(STDHDRSDEF) +-LINKFLAGS = $(LINKFLAGSDEF) $(LINKDEBUGFLAG) +- +-all:: libcgats$(SUFLIB) pars$(SUFEXE) cgats$(SUFEXE) +- +- +-# Separate for executables +-parsstd$(SUFOBJ): parsstd.c pars.h +- $(CC) $(CCOF)parsstd$(SUFOBJ) parsstd.c +- +-cgatsstd$(SUFOBJ): cgatsstd.c cgats.h pars.h +- $(CC) $(CCOF)cgatsstd$(SUFOBJ) cgatsstd.c +- +- +-pars$(SUFOBJ): pars.c pars.h +- $(CC) $(CCOF)pars$(SUFOBJ) pars.c +- +-cgats$(SUFOBJ): cgats.c cgats.h pars.h +- $(CC) $(CCOF)cgats$(SUFOBJ) cgats.c +- +- +-libcgats$(SUFLIB): pars$(SUFOBJ) cgats$(SUFOBJ) +- $(LIBU) $(LIBOF)libcgats$(SUFLIB) cgats$(SUFOBJ) pars$(SUFOBJ) +- $(RANLIB) libcgats$(SUFLIB) +- +- +-sa_pars$(SUFOBJ): pars.c pars.h +- $(CC) $(CCOF)sa_pars$(SUFOBJ) $(DEFFLAG)STANDALONE_TEST pars.c +- +-pars$(SUFEXE): sa_pars$(SUFOBJ) parsstd$(SUFOBJ) +- $(LINK) $(LINKOF)pars$(SUFEXE) sa_pars$(SUFOBJ) parsstd$(SUFOBJ) $(LINKLIBS) +- +- +-sa_cgats$(SUFOBJ): cgats.c cgats.h pars.h +- $(CC) $(CCOF)sa_cgats$(SUFOBJ) $(DEFFLAG)STANDALONE_TEST cgats.c +- +-cgats$(SUFEXE): sa_cgats$(SUFOBJ) pars$(SUFOBJ) parsstd$(SUFOBJ) cgatsstd$(SUFOBJ) +- $(LINK) $(LINKOF)cgats$(SUFEXE) sa_cgats$(SUFOBJ) pars$(SUFOBJ) parsstd$(SUFOBJ) \ +- cgatsstd$(SUFOBJ) $(LINKLIBS) +- +- ++# Empty Makefile + +=== added file 'cgats/Makefile.am' +--- Argyll_V1.3.0/cgats/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/cgats/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,11 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libcgats.la ++privatelibdir = $(pkglibdir) ++ ++libcgats_la_SOURCES = pars.c pars.h cgats.c cgats.h parsstd.c \ ++ cgatsstd.c ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'configure.ac' +--- Argyll_V1.3.0/configure.ac 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/configure.ac 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,133 @@ ++AC_INIT([argyll], [1.2.0]) ++AM_INIT_AUTOMAKE([1.9 foreign]) ++ ++AC_PROG_CC ++AC_PROG_RANLIB ++AC_PROG_INSTALL ++ ++AM_PROG_LIBTOOL ++AC_PROG_LIBTOOL ++ ++AM_CONFIG_HEADER([config.h]) ++ ++AC_PATH_XTRA ++ ++AC_CHECK_LIB(m, sqrt) ++AC_CHECK_LIB(pthread, pthread_create) ++ ++AC_CHECK_LIB(tiff, TIFFOpen, TIFF_LIBS="-ltiff", , -lm) ++AC_SUBST([TIFF_LIBS]) ++ ++AC_CHECK_LIB(rt, clock_gettime) ++ ++AC_ARG_WITH(system-libicc, [ --with-system-libicc use system libicc instead of argyllcms copy],system_libicc=$withval,system_libicc=no) ++AC_MSG_CHECKING([whether to use system libicc or not]) ++if test x$system_libicc = xno ; then ++ HAVE_ICC=false ++ AC_MSG_RESULT(no) ++else ++ AC_MSG_RESULT(yes) ++ AC_CHECK_LIB(icc, new_icmFileStd_name, HAVE_ICC="true", , -lm) ++ if test "$HAVE_ICC" != "true" ; then ++ AC_MSG_ERROR([system libicc missing or not compatible with argyllcms]) ++ fi ++fi ++if test "$HAVE_ICC" = "true" ; then ++ ICC_LIBS="-licc" ++else ++ ICC_LIBS='$(top_srcdir)/icc/libicc.la' ++ ICC_CFLAGS='-I$(top_srcdir)/icc' ++ ICC_SUBDIRS='icc' ++fi ++AC_SUBST([ICC_LIBS]) ++AC_SUBST([ICC_CFLAGS]) ++AC_SUBST([ICC_SUBDIRS]) ++ ++AC_ARG_WITH(system-libyajl, [ --with-system-libyajl use system libyajl instead of argyllcms copy],system_libyajl=$withval,system_libyajl=no) ++AC_MSG_CHECKING([whether to use system libyajl or not]) ++if test x$system_libyajl = xno ; then ++ HAVE_YAJL=false ++ AC_MSG_RESULT(no) ++else ++ AC_MSG_RESULT(yes) ++ AC_CHECK_LIB(yajl, yajl_gen_c_comment, HAVE_YAJL="true", , -lm) ++ if test "$HAVE_YAJL" != "true" ; then ++ AC_MSG_ERROR([system libyajl missing or not compatible with argyllcms]) ++ fi ++fi ++if test "$HAVE_YAJL" = "true" ; then ++ YAJL_LIBS="-lyajl" ++else ++ YAJL_LIBS='$(top_srcdir)/jcnf/yajl/libyajl.la' ++ YAJL_CFLAGS='-I$(top_srcdir)/jcnf/yajl' ++ YAJL_SUBDIRS='yajl' ++fi ++AC_SUBST([YAJL_LIBS]) ++AC_SUBST([YAJL_CFLAGS]) ++AC_SUBST([YAJL_SUBDIRS]) ++ ++AC_CHECK_LIB(X11, XOpenDisplay, X_LIBS="$X_LIBS -lX11") ++AC_CHECK_LIB(Xext, XextFindDisplay, X_LIBS="$X_LIBS -lXext",,-lX11) ++AC_CHECK_LIB(Xss, XScreenSaverSuspend, X_LIBS="$X_LIBS -lXss",,-lXext -lX11) ++AC_CHECK_LIB(Xrandr, XRRRootToScreen, X_LIBS="$X_LIBS -lXrandr",,-LXext -lX11) ++AC_CHECK_LIB(Xinerama, XineramaQueryScreens, X_LIBS="$X_LIBS -lXinerama",,-LXext -lX11) ++AC_CHECK_LIB(Xxf86vm, XF86VidModeGetGamma, X_LIBS="$X_LIBS -lXxf86vm",,-lXext -lX11) ++AC_SUBST([X_LIBS]) ++ ++AC_SUBST(OS_LINUX) ++AC_SUBST(OS_BSD) ++case $host in ++ *-linux*) ++ OS_LINUX=1 ++ OS_BSD=0 ++ AC_DEFINE([OS_LINUX],[1],[Linux kernel]) ++ AM_CONDITIONAL([OS_LINUX],[true]) ++ ;; ++ *-freebsd*|*-kfreebsd*-gnu|*-openbsd*|*-netbsd*) ++ OS_LINUX=0 ++ OS_BSD=1 ++ AC_DEFINE([OS_LINUX],[0],[Linux kernel]) ++ AM_CONDITIONAL([OS_LINUX],[false]) ++ ;; ++ *) ++ OS_LINUX=0 ++ OS_BSD=0 ++ AC_DEFINE([OS_LINUX],[0],[Linux kernel]) ++ AM_CONDITIONAL([OS_LINUX],[false]) ++ ;; ++esac ++AC_DEFINE([API_EXPORTED],[],[Default visibility]) ++ ++AC_C_BIGENDIAN ++if test "$ac_cv_c_bigendian" = "yes"; then ++ BIGENDIAN="1" ++else ++ BIGENDIAN="0" ++fi ++AC_SUBST(BIGENDIAN) ++ ++AC_CONFIG_FILES([Makefile ++ h/Makefile ++ doc/Makefile ++ ref/Makefile ++ numlib/Makefile ++ cgats/Makefile ++ plot/Makefile ++ rspl/Makefile ++ icc/Makefile ++ gamut/Makefile ++ xicc/Makefile ++ link/Makefile ++ spectro/Makefile ++ profile/Makefile ++ tweak/Makefile ++ scanin/Makefile ++ render/Makefile ++ target/Makefile ++ imdi/Makefile ++ jcnf/Makefile ++ jcnf/yajl/Makefile ++ ucmm/Makefile]) ++ ++AC_OUTPUT ++ + +=== added file 'doc/Makefile.am' +--- Argyll_V1.3.0/doc/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/doc/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,8 @@ ++## Process this file with automake to produce Makefile.in ++ ++docdir = $(datadir)/doc/argyll ++ ++doc_DATA = $(wildcard *.txt) $(wildcard *.html) $(wildcard *.jpg) \ ++ $(wildcard *.gif) ++ ++EXTRA_DIST = $(doc_DATA) +\ No newline at end of file + +=== added file 'gamut/Makefile.am' +--- Argyll_V1.3.0/gamut/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/gamut/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,25 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libgamut.la libgammap.la ++privatelibdir = $(pkglibdir) ++ ++libgamut_la_SOURCES = gamut.h gamut.c ++libgamut_la_LIBADD = ../cgats/libcgats.la $(ICC_LIBS) \ ++ ../numlib/libargyllnum.la ++ ++libgammap_la_SOURCES = gammap.h gammap.c nearsmth.c nearsmth.h ++libgammap_la_LIBADD = ./libgamut.la $(ICC_LIBS) \ ++ ../numlib/libargyllnum.la ../plot/libvrml.la \ ++ ../rspl/librspl.la ../libargyll.la ../cgats/libcgats.la ++ ++LDADD = ./libgamut.la ./libgammap.la $(ICC_LIBS) ../cgats/libcgats.la \ ++ ../rspl/librspl.la ../plot/libvrml.la ../xicc/libxicc.la \ ++ ../spectro/libinsttypes.la ../numlib/libargyllnum.la ++ ++bin_PROGRAMS = viewgam ++ ++check_PROGRAMS = smthtest GenRMGam GenVisGam maptest surftest fakegam ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'h/Makefile.am' +--- Argyll_V1.3.0/h/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/h/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,5 @@ ++## Process this file with automake to produce Makefile.in ++ ++EXTRA_DIST = Readme.txt copyright.h config.h sort.h llist.h xlist.h \ ++ counters.h ++ + +=== modified file 'icc/Makefile' +--- Argyll_V1.3.0/icc/Makefile 2008-11-16 13:45:00 +0000 ++++ argyllcms-autotools/icc/Makefile 2010-09-12 17:13:26 +0000 +@@ -1,82 +1,1 @@ +-# UNIX style makefile, for icclib and friends. +-# "include" the right environment for your system, +-# by uncommenting the appropriate line: +- +-# Microsoft C++, WinNT setup +-include Makefile.WNT +- +-# IBM C++, WinNT setup +-#include Makefile.IBMNT +- +-# Generic UNIX setup +-#include Makefile.UNIX +- +-# Apple OSX +-#include Makefile.OSX +- +-############################### +- +-#Compile with separate stdio +-#CCDEFINES = $(DEFFLAG)SEPARATE_STD +- +-#Set optimisation on +-CCFLAGS = $(CCFLAGSDEF) $(CCOPTFLAG) $(CCDEFINES) +- +-#Set debugging on +-#CCFLAGS = $(CCFLAGSDEF) $(CCDEBUGFLAG) $(CCDEFINES) +- +-STDHDRS = $(STDHDRSDEF) +-LINKFLAGS = $(LINKFLAGSDEF) $(LINKDEBUGFLAG) +- +-all:: libicc$(SUFLIB) icctest$(SUFEXE) lutest$(SUFEXE) icclu$(SUFEXE) iccdump$(SUFEXE) iccrw$(SUFEXE) +- +- +-icc$(SUFOBJ): icc.c icc.h +- $(CC) $(CCOF)icc$(SUFOBJ) icc.c +- +-libicc$(SUFLIB): icc$(SUFOBJ) +- $(LIBU) $(LIBOF)libicc$(SUFLIB) icc$(SUFOBJ) +- $(RANLIB) libicc$(SUFLIB) +- +- +-# Separate for executables +-iccstd$(SUFOBJ): iccstd.c icc.h +- $(CC) $(CCOF)iccstd$(SUFOBJ) iccstd.c +- +- +-icctest$(SUFOBJ): icctest.c icc.h +- $(CC) $(CCOF)icctest$(SUFOBJ) icctest.c +- +-icctest$(SUFEXE): icctest$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- $(LINK) $(LINKOF)icctest$(SUFEXE) icctest$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- +- +-lutest$(SUFOBJ): lutest.c icc.h +- $(CC) $(CCOF)lutest$(SUFOBJ) lutest.c +- +-lutest$(SUFEXE): lutest$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- $(LINK) $(LINKOF)lutest$(SUFEXE) lutest$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- +- +-icclu$(SUFOBJ): icclu.c icc.h +- $(CC) $(CCOF)icclu$(SUFOBJ) icclu.c +- +-icclu$(SUFEXE): icclu$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- $(LINK) $(LINKOF)icclu$(SUFEXE) icclu$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- +- +-iccdump$(SUFOBJ): iccdump.c icc.h +- $(CC) $(CCOF)iccdump$(SUFOBJ) iccdump.c +- +-iccdump$(SUFEXE): iccdump$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- $(LINK) $(LINKOF)iccdump$(SUFEXE) iccdump$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- +- +-iccrw$(SUFOBJ): iccrw.c icc.h +- $(CC) $(CCOF)iccrw$(SUFOBJ) iccrw.c +- +-iccrw$(SUFEXE): iccrw$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- $(LINK) $(LINKOF)iccrw$(SUFEXE) iccrw$(SUFOBJ) iccstd$(SUFOBJ) libicc$(SUFLIB) +- +- +- ++# Empty Makefile + +=== added file 'icc/Makefile.am' +--- Argyll_V1.3.0/icc/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/icc/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,20 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++LIBICC_VERSION=2.12 ++ ++lib_LTLIBRARIES = libicc.la ++ ++libicc_la_SOURCES = icc.h iccV42.h icc.c iccstd.c ++libicc_la_LDFLAGS = -version-number $(shell echo $(LIBICC_VERSION) | tr . :):0 ++ ++include_HEADERS = icc.h iccV42.h ++ ++LDADD = libicc.la ++ ++bin_PROGRAMS = iccdump icclu ++ ++check_PROGRAMS = icctest iccrw lutest ++ ++EXTRA_DIST = License.txt Readme.txt + +=== modified file 'imdi/Makefile' +--- Argyll_V1.3.0/imdi/Makefile 2009-11-06 16:34:36 +0000 ++++ argyllcms-autotools/imdi/Makefile 2010-09-12 17:13:26 +0000 +@@ -1,66 +1,1 @@ +- +-# Boilerplate Makefile for compiling imdi +- +-# Copyright 2000 - 2007 Graeme W. Gill +-# This material is licenced under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 :- +-# see the License.txt file for licencing details. +- +-# "include" the right environment for your system, +-# by uncommenting the appropriate line: +- +-# Microsoft VC++, WinNT setup +-include Makefile.WNT +- +-# Generic UNIX setup +-#include Makefile.UNIX +- +-# Apple OS X +-#include Makefile.OSX +- +- +-############################### +- +-#Set optimisation on +-CCFLAGS = $(CCFLAGSDEF) $(CCOPTFLAG) $(CCDEFINES) $(BCONFIG) +- +-#Set debugging on +-#CCFLAGS = $(CCFLAGSDEF) $(CCDEBUGFLAG) $(CCDEFINES) $(BCONFIG) +-# debugging #define +-#CCFLAGS = $(CCFLAGSDEF) $(CCDEBUGFLAG) $(CCDEFINES) $(DEFFLAG)DEBUG +-LINKFLAGS = $(LINKFLAGSDEF) $(LINKDEBUGFLAG) +- +-STDHDRS = $(INCFLAG)$(STDHDRSDEF) +- +-all:: libimdi$(SUFLIB) +- +-# Used by both code generator and runtime +-imdi_make$(SUFEXE): imdi_make$(SUFOBJ) imdi_gen$(SUFOBJ) cgen$(SUFOBJ) +- $(LINK) $(LINKOF)imdi_make$(SUFEXE) imdi_make$(SUFOBJ) imdi_gen$(SUFOBJ) cgen$(SUFOBJ) +- +- +-# The code generator program +- +-cgen$(SUFOBJ): cgen.c imdi_utl.h imdi_arch.h imdi_gen.h imdi_tab.h +- $(CC) cgen.c +- +-imdi_gen$(SUFOBJ): imdi_gen.c imdi_utl.h imdi_arch.h imdi_gen.h +- $(CC) imdi_gen.c +- +-# Generate the kernel files +-imdi_k.h imdi_k.c : imdi_make$(SUFEXE) +- .$(SLASH)imdi_make$(SUFEXE) +- +- +-# imdi runtime library +- +-imdi$(SUFOBJ): imdi.c imdi.h imdi_tab.h imdi_k.h imdi_k.c +- $(CC) imdi.c +- +-libimdi$(SUFLIB): imdi$(SUFOBJ) imdi_tab$(SUFOBJ) +- $(LIBU) $(LIBOF)$@ imdi$(SUFOBJ) imdi_tab$(SUFOBJ) +- $(RANLIB) libimdi$(SUFLIB) +- +- +- +- +- ++# Empty Makefile + +=== added file 'imdi/Makefile.am' +--- Argyll_V1.3.0/imdi/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/imdi/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,36 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libimdi.la ++privatelibdir = $(pkglibdir) ++ ++libimdi_la_SOURCES = imdi.c imdi_tab.c imdi_arch.h imdi_gen.h imdi.h \ ++ imdi_tab.h imdi_utl.h refi.h imdi_k.h ++ ++bin_PROGRAMS = cctiff greytiff ++ ++BINLDADD = ./libimdi.la ../spectro/libinsttypes.la ../plot/libvrml.la \ ++ ../xicc/libxicc.la ../xicc/libxutils.la ../gamut/libgamut.la \ ++ ../gamut/libgammap.la ../rspl/librspl.la $(ICC_LIBS) \ ++ ../cgats/libcgats.la ../numlib/libargyllnum.la ../libargyll.la \ ++ $(TIFF_LIBS) ++ ++cctiff_LDADD = $(BINLDADD) ++greytiff_LDADD = $(BINLDADD) ++ ++check_PROGRAMS = ctest ++ ++ctest_SOURCES = ctest.c cgen.c ++ ++noinst_PROGRAMS = imdi_make ++ ++imdi_make_SOURCES = imdi_make.c imdi_gen.c cgen.c ++ ++BUILT_SOURCES = imdi_k.h ++ ++imdi.c: imdi_k.h ++imdi_k.h: imdi_make ++ ./imdi_make ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'jcnf/Makefile.am' +--- Argyll_V1.3.0/jcnf/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/jcnf/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,17 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++SUBDIRS = $(YAJL_SUBDIRS) ++ ++privatelib_LTLIBRARIES = libjcnf.la ++privatelibdir = $(pkglibdir) ++ ++libjcnf_la_SOURCES = jcnf.h jcnf.c ++libjcnf_la_LIBADD = $(YAJL_LIBS) ++ ++LDADD = ./libjcnf.la $(YAJL_LIBS) ++ ++check_PROGRAMS = test ++ ++EXTRA_DIST = Readme.txt + +=== added file 'jcnf/yajl/Makefile.am' +--- Argyll_V1.3.0/jcnf/yajl/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/jcnf/yajl/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,15 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libyajl.la ++privatelibdir = $(pkglibdir) ++ ++libyajl_la_SOURCES = yajl_common.h yajl_gen.h yajl_parse.h yajl.c \ ++ yajl_alloc.c yajl_alloc.h yajl_buf.c yajl_buf.h yajl_encode.c \ ++ yajl_encode.h yajl_gen.c yajl_lex.c yajl_lex.h yajl_parser.c \ ++ yajl_parser.h ++ ++LDADD = ./libyajl.la ++ ++check_PROGRAMS = yajl_test json_verify + +=== modified file 'libusbw/Makefile' +--- Argyll_V1.3.0/libusbw/Makefile 2008-11-16 13:45:00 +0000 ++++ argyllcms-autotools/libusbw/Makefile 2010-09-12 17:13:26 +0000 +@@ -1,263 +1,1 @@ +-# LIBUSB-WIN32, Generic Windows USB Library +-# Copyright (c) 2002-2005 Stephan Meyer +-# +-# This program is free software; you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or +-# (at your option) any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. +-# +-# You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- +- +- +-# If you're cross-compiling and your mingw32 tools are called +-# i586-mingw32msvc-gcc and so on, then you can compile libusb-win32 +-# by running +-# make host_prefix=i586-mingw32msvc all +- +- +-ifdef host_prefix +- override host_prefix := $(host_prefix)- +-endif +- +-CC = $(host_prefix)gcc +-LD = $(host_prefix)ld +-WINDRES = $(host_prefix)windres +-DLLTOOL = $(host_prefix)dlltool +- +-MAKE = make +-CP = cp +-CD = cd +-MV = mv +-RM = -rm -fr +-TAR = tar +-ISCC = iscc +-INSTALL = install +-LIB = lib +-IMPLIB = implib +-UNIX2DOS = unix2dos +- +-VERSION_MAJOR = 0 +-VERSION_MINOR = 1 +-VERSION_MICRO = 12 +-VERSION_NANO = 1 +- +-VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_MICRO).$(VERSION_NANO) +-RC_VERSION = $(VERSION_MAJOR),$(VERSION_MINOR),$(VERSION_MICRO),$(VERSION_NANO) +-RC_VERSION_STR = '\"$(VERSION)\"' +-INST_VERSION = $(VERSION) +- +-INF_DATE = $(shell date +"%m/%d/%Y") +-DATE = $(shell date +"%Y%m%d") +- +-DDK_MAKE_DIR = ./ddk_make +- +-TARGET = libusb +-DLL_TARGET = $(TARGET)$(VERSION_MAJOR) +-LIB_TARGET = $(TARGET) +-DRIVER_TARGET = $(TARGET)$(VERSION_MAJOR).sys +- +-DLL_TARGET_X64 = $(TARGET)$(VERSION_MAJOR)_x64 +-DRIVER_TARGET_X64 = $(TARGET)$(VERSION_MAJOR)_x64.sys +- +-INSTALL_DIR = /usr +-DLL_OBJECTS = usb.o error.o descriptors.o windows.o resource.o install.o \ +- registry.o +- +-DRIVER_OBJECTS = abort_endpoint.o claim_interface.o clear_feature.o \ +- dispatch.o get_configuration.o \ +- get_descriptor.o get_interface.o get_status.o \ +- ioctl.o libusb_driver.o pnp.o release_interface.o reset_device.o \ +- reset_endpoint.o set_configuration.o set_descriptor.o \ +- set_feature.o set_interface.o transfer.o vendor_request.o \ +- power.o driver_registry.o driver_debug.o libusb_driver_rc.o +- +-INSTALLER_NAME = $(TARGET)-win32-filter-bin-$(INST_VERSION).exe +-SRC_DIST_DIR = $(TARGET)-win32-src-$(INST_VERSION) +-BIN_DIST_DIR = $(TARGET)-win32-device-bin-$(INST_VERSION) +- +- +-DIST_SOURCE_FILES = ./src +-DIST_MISC_FILES = COPYING_LGPL.txt COPYING_GPL.txt AUTHORS.txt +- +-SRC_DIR = ./src +-DRIVER_SRC_DIR = $(SRC_DIR)/driver +- +-VPATH = .:./src:./src/driver:./tests +- +-INCLUDES = -I./src -I./src/driver -I. +- +-CFLAGS = -O2 -Wall -mno-cygwin +-WIN_CFLAGS = $(CFLAGS) -mwindows +- +-CPPFLAGS = -DVERSION_MAJOR=$(VERSION_MAJOR) \ +- -DVERSION_MINOR=$(VERSION_MINOR) \ +- -DVERSION_MICRO=$(VERSION_MICRO) \ +- -DVERSION_NANO=$(VERSION_NANO) \ +- -DINF_DATE='$(INF_DATE)' \ +- -DINF_VERSION='$(VERSION)' \ +- -DDBG +- +-WINDRES_FLAGS = -I./src -DRC_VERSION='$(RC_VERSION)' \ +- -DRC_VERSION_STR=$(RC_VERSION_STR) +- +-LDFLAGS = -s -mno-cygwin -L. -lusb -lgdi32 -luser32 -lcfgmgr32 \ +- -lsetupapi -lcomctl32 +-WIN_LDFLAGS = $(LDFLAGS) -mwindows +- +- +-DLL_LDFLAGS = -s -mdll -mno-cygwin \ +- -Wl,--kill-at \ +- -Wl,--out-implib,$(LIB_TARGET).a \ +- -Wl,--enable-stdcall-fixup \ +- -L. -lcfgmgr32 -lsetupapi +- +- +-DRIVER_LDFLAGS = -s -shared -Wl,--entry,_DriverEntry@8 \ +- -nostartfiles -nostdlib -L. -lusbd -lntoskrnl -lhal +- +- +-EXE_FILES = testlibusb.exe testlibusb-win.exe inf-wizard.exe install-filter.exe +- +- +-.PHONY: all +-all: $(DLL_TARGET).dll $(EXE_FILES) $(DRIVER_TARGET) README.txt +- +-$(DLL_TARGET).dll: $(DLL_OBJECTS) +- $(CC) -o $@ $(DLL_OBJECTS) $(DLL_TARGET).def $(DLL_LDFLAGS) +- +- +-$(DRIVER_TARGET): libusbd.a $(DRIVER_OBJECTS) +- $(CC) -o $@ $(DRIVER_OBJECTS) $(DLL_TARGET)_drv.def $(DRIVER_LDFLAGS) +- +-libusbd.a: +- $(DLLTOOL) --dllname usbd.sys --add-underscore --def ./src/driver/usbd.def \ +- --output-lib libusbd.a +- +-inf-wizard.exe: inf_wizard_rc.o inf_wizard.o registry.o error.o +- $(CC) $(WIN_CFLAGS) -o $@ -I./src $^ $(WIN_LDFLAGS) +- +-testlibusb.exe: testlibusb.o +- $(CC) $(CFLAGS) -o $@ -I./src $^ $(LDFLAGS) +- +-install-filter.exe: install_filter.o +- $(CC) $(CFLAGS) -o $@ -I./src $^ $(WIN_LDFLAGS) +- +-testlibusb-win.exe: testlibusb_win.o testlibusb_win_rc.o +- $(CC) $(WIN_CFLAGS) -o $@ -I./src $^ $(WIN_LDFLAGS) +- +-%.o: %.c libusb_driver.h driver_api.h +- $(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS) $(INCLUDES) +- +-%.o: %.rc +- $(WINDRES) $(WINDRES_FLAGS) $< -o $@ +- +-README.txt: README.in +- sed -e 's/@VERSION@/$(INST_VERSION)/' $< > $@ +- +- +-.PHONY: bcc_implib +-bcc_lib: +- $(IMPLIB) -a $(LIB_TARGET).lib $(DLL_TARGET).dll +- +-.PHONY: msvc_lib +-msvc_lib: +- $(LIB) /machine:i386 /def:$(DLL_TARGET).def +- $(MV) $(DLL_TARGET).lib $(LIB_TARGET).lib +- +-.PHONY: bin_dist +-bin_dist: all +- $(INSTALL) -d $(BIN_DIST_DIR)/lib/gcc +- $(INSTALL) -d $(BIN_DIST_DIR)/lib/bcc +- $(INSTALL) -d $(BIN_DIST_DIR)/lib/msvc +- $(INSTALL) -d $(BIN_DIST_DIR)/lib/msvc_x64 +- $(INSTALL) -d $(BIN_DIST_DIR)/lib/dynamic +- $(INSTALL) -d $(BIN_DIST_DIR)/include +- $(INSTALL) -d $(BIN_DIST_DIR)/bin +- $(INSTALL) -d $(BIN_DIST_DIR)/examples +- +- $(INSTALL) $(EXE_FILES) $(BIN_DIST_DIR)/bin +- +- $(INSTALL) $(DRIVER_TARGET) $(BIN_DIST_DIR)/bin +- $(INSTALL) $(DLL_TARGET).dll $(BIN_DIST_DIR)/bin +- +- $(INSTALL) $(DDK_MAKE_DIR)/$(DRIVER_TARGET) $(BIN_DIST_DIR)/bin/$(DRIVER_TARGET_X64) +- $(INSTALL) $(DDK_MAKE_DIR)/$(DLL_TARGET).dll $(BIN_DIST_DIR)/bin/$(DLL_TARGET_X64).dll +- +- $(INSTALL) $(SRC_DIR)/usb.h $(BIN_DIST_DIR)/include +- $(INSTALL) $(LIB_TARGET).a $(BIN_DIST_DIR)/lib/gcc +- $(MAKE) bcc_lib +- $(INSTALL) $(LIB_TARGET).lib $(BIN_DIST_DIR)/lib/bcc +- $(MAKE) msvc_lib +- $(INSTALL) $(LIB_TARGET).lib $(BIN_DIST_DIR)/lib/msvc +- $(INSTALL) $(DDK_MAKE_DIR)/$(LIB_TARGET).lib $(BIN_DIST_DIR)/lib/msvc_x64 +- $(INSTALL) $(SRC_DIR)/libusb_dyn.c $(BIN_DIST_DIR)/lib/dynamic +- $(INSTALL) $(DIST_MISC_FILES) README.txt $(BIN_DIST_DIR) +- $(INSTALL) ./examples/*.iss $(BIN_DIST_DIR)/examples +- $(INSTALL) ./examples/*.c $(BIN_DIST_DIR)/examples +- $(UNIX2DOS) $(BIN_DIST_DIR)/examples/*.iss +- $(UNIX2DOS) $(BIN_DIST_DIR)/*.txt +- +-.PHONY: src_dist +-src_dist: +- $(INSTALL) -d $(SRC_DIST_DIR)/src +- $(INSTALL) -d $(SRC_DIST_DIR)/src/driver +- $(INSTALL) -d $(SRC_DIST_DIR)/tests +- $(INSTALL) -d $(SRC_DIST_DIR)/examples +- $(INSTALL) -d $(SRC_DIST_DIR)/ddk_make +- +- $(INSTALL) $(SRC_DIR)/*.c $(SRC_DIST_DIR)/src +- $(INSTALL) $(SRC_DIR)/*.h $(SRC_DIST_DIR)/src +- $(INSTALL) $(SRC_DIR)/*.rc $(SRC_DIST_DIR)/src +- +- $(INSTALL) ./examples/*.iss $(SRC_DIST_DIR)/examples +- $(INSTALL) ./ddk_make/sources* $(SRC_DIST_DIR)/ddk_make +- $(INSTALL) ./ddk_make/makefile $(SRC_DIST_DIR)/ddk_make +- $(INSTALL) ./ddk_make/*.txt $(SRC_DIST_DIR)/ddk_make +- $(INSTALL) ./ddk_make/*.bat $(SRC_DIST_DIR)/ddk_make +- $(UNIX2DOS) $(SRC_DIST_DIR)/ddk_make/* +- +- $(INSTALL) $(SRC_DIR)/driver/*.h $(SRC_DIST_DIR)/src/driver +- $(INSTALL) $(SRC_DIR)/driver/*.c $(SRC_DIST_DIR)/src/driver +- $(INSTALL) $(SRC_DIR)/driver/*.def $(SRC_DIST_DIR)/src/driver +- $(INSTALL) $(SRC_DIR)/driver/*.rc $(SRC_DIST_DIR)/src/driver +- +- $(INSTALL) ./tests/*.c $(SRC_DIST_DIR)/tests +- $(INSTALL) ./tests/*.rc $(SRC_DIST_DIR)/tests +- $(INSTALL) $(DIST_MISC_FILES) *.in Makefile manifest.txt *.def \ +- installer_license.txt $(SRC_DIST_DIR) +- $(UNIX2DOS) $(SRC_DIST_DIR)/*.txt +- +- +-.PHONY: dist +-dist: bin_dist src_dist +- sed -e 's/@VERSION@/$(INST_VERSION)/' \ +- -e 's/@BIN_DIST_DIR@/$(BIN_DIST_DIR)/' \ +- -e 's/@SRC_DIST_DIR@/$(SRC_DIST_DIR)/' \ +- -e 's/@INSTALLER_TARGET@/$(INSTALLER_TARGET)/' \ +- install.iss.in > install.iss +- $(UNIX2DOS) install.iss +- $(TAR) -czf $(SRC_DIST_DIR).tar.gz $(SRC_DIST_DIR) +- $(TAR) -czf $(BIN_DIST_DIR).tar.gz $(BIN_DIST_DIR) +- $(ISCC) install.iss +- $(RM) $(SRC_DIST_DIR) +- $(RM) $(BIN_DIST_DIR) +- +-.PHONY: snapshot +-snapshot: INST_VERSION = $(DATE) +-snapshot: dist +- +-.PHONY: clean +-clean: +- $(RM) *.o *.dll *.a *.exp *.lib *.exe *.tar.gz *~ *.iss *.rc *.h +- $(RM) ./src/*~ *.sys *.log +- $(RM) $(DRIVER_SRC_DIR)/*~ +- $(RM) README.txt +- ++# Empty Makefile + +=== added file 'link/Makefile.am' +--- Argyll_V1.3.0/link/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/link/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,13 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++LDADD = ../spectro/libinsttypes.la ../xicc/libxicc.la \ ++ ../xicc/libxutils.la ../gamut/libgamut.la \ ++ ../gamut/libgammap.la ../plot/libplot.la ../plot/libvrml.la \ ++ ../rspl/librspl.la $(ICC_LIBS) ../cgats/libcgats.la \ ++ ../numlib/libargyllnum.la $(X_LIBS) $(TIFF_LIBS) ++ ++bin_PROGRAMS = collink pathplot ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'numlib/Makefile.am' +--- Argyll_V1.3.0/numlib/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/numlib/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,17 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libargyllnum.la ++privatelibdir = $(pkglibdir) ++ ++libargyllnum_la_SOURCES = numlib.h numsup.c numsup.h dnsq.c dnsq.h \ ++ powell.c powell.h dhsx.c dhsx.h ludecomp.c ludecomp.h svd.c \ ++ svd.h zbrent.c zbrent.h rand.c rand.h sobol.c sobol.h aatree.c ++ ++LDADD = ./libargyllnum.la ++ ++check_PROGRAMS = dnsqtest tpowell tdhsx LUtest svdtest zbrenttest \ ++ soboltest ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'plot/Makefile.am' +--- Argyll_V1.3.0/plot/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/plot/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,14 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libplot.la libvrml.la ++privatelibdir = $(pkglibdir) ++ ++libplot_la_SOURCES = plot.h plot.c ++libplot_la_LIBADD = $(X_LIBS) ++ ++libvrml_la_SOURCES = vrml.h vrml.c ++libvrml_la_LIBADD = $(ICC_LIBS) ../numlib/libargyllnum.la ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'profile/Makefile.am' +--- Argyll_V1.3.0/profile/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/profile/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,25 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libprof.la ++privatelibdir = $(pkglibdir) ++ ++libprof_la_SOURCES = prof.h profin.c profout.c ++libprof_la_LIBADD = ../gamut/libgammap.la $(ICC_LIBS) \ ++ ../gamut/libgamut.la ../xicc/libxicc.la \ ++ ../numlib/libargyllnum.la ../spectro/libinsttypes.la \ ++ ../xicc/libxutils.la ../libargyll.la ++ ++LDADD = ./libprof.la ../xicc/libxutils.la ../spectro/libinst.la \ ++ ../xicc/libxicc.la ../spectro/libinsttypes.la \ ++ ../gamut/libgamut.la ../gamut/libgammap.la ../plot/libvrml.la \ ++ ../plot/libplot.la ../rspl/librspl.la \ ++ ../numlib/libargyllnum.la $(ICC_LIBS) ../cgats/libcgats.la \ ++ ../libargyll.la $(TIFF_LIBS) ../libargyllusb.la ++ ++bin_PROGRAMS = simpprof kodak2ti3 cb2ti3 txt2ti3 splitti3 \ ++ profcheck invprofcheck mppprof mppcheck verify colprof printcal \ ++ applycal sepgen ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'ref/Makefile.am' +--- Argyll_V1.3.0/ref/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/ref/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,9 @@ ++## Process this file with automake to produce Makefile.in ++ ++refdir = $(datadir)/color/argyll/ref ++ ++ref_DATA = $(wildcard *.cal) $(wildcard *.cht) $(wildcard *.cie) \ ++ $(wildcard *.icm) $(wildcard *.sp) $(wildcard *.ti1) \ ++ $(wildcard *.ti2) ++ ++EXTRA_DIST = $(ref_DATA) + +=== added file 'render/Makefile.am' +--- Argyll_V1.3.0/render/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/render/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,15 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = librender.la ++privatelibdir = $(pkglibdir) ++ ++librender_la_SOURCES = render.h render.c ++librender_la_LIBADD = $(TIFF_LIBS) ../numlib/libargyllnum.la ++ ++LDADD = ./librender.la ../numlib/libargyllnum.la $(TIFF_LIBS) ++ ++check_PROGRAMS = timage ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'rspl/Makefile.am' +--- Argyll_V1.3.0/rspl/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/rspl/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,17 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = librspl.la ++privatelibdir = $(pkglibdir) ++ ++librspl_la_SOURCES = rspl.h rspl_imp.h mlbs.h rspl.c scat.c rev.c \ ++ rev.h gam.c spline.c opt.c ++librspl_la_LIBADD = ../numlib/libargyllnum.la ../plot/libvrml.la ++ ++LDADD = ./librspl.la ../numlib/libargyllnum.la ../plot/libplot.la \ ++ ../plot/libvrml.la $(X_LIBS) $(TIFF_LIBS) $(ICC_LIBS) ++ ++check_PROGRAMS = revbench c1 c1df t2d t2ddf t3d t3ddf tnd trnd ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'scanin/Makefile.am' +--- Argyll_V1.3.0/scanin/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/scanin/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,21 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libscanrd.la ++privatelibdir = $(pkglibdir) ++ ++libscanrd_la_SOURCES = scanrd.h scanrd_.h scanrd.c ++libscanrd_la_LIBADD = ../rspl/librspl.la ../numlib/libargyllnum.la ++ ++LDADD = ./libscanrd.la ../numlib/libargyllnum.la $(ICC_LIBS) \ ++ ../cgats/libcgats.la ../xicc/libxicc.la $(TIFF_LIBS) \ ++ ../libargyll.la ++ ++bin_PROGRAMS = scanin ++ ++refdir = $(datadir)/color/argyll/ref ++ ++ref_DATA = $(wildcard *.cht) $(wildcard *.cie) $(wildcard *.ti2) ++ ++EXTRA_DIST = $(ref_DATA) License.txt Readme.txt + +=== added file 'spectro/Makefile.am' +--- Argyll_V1.3.0/spectro/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/spectro/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,44 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libinsttypes.la libconv.la libinst.la libdisp.la ++privatelibdir = $(pkglibdir) ++ ++libinsttypes_la_SOURCES = insttypes.h insttypes.c insttypeinst.h ++libinsttypes_la_LIBADD = ../libargyll.la ++ ++libinst_la_SOURCES = inst.h inst.c insttypes.c dtp20.c dtp20.h dtp22.c \ ++ dtp22.h dtp41.c dtp41.h dtp51.c dtp51.h dtp92.c dtp92.h \ ++ i1disp.c i1disp.h i1pro.c i1pro.h i1pro_imp.c i1pro_imp.h \ ++ munki.c munki_imp.c ss.c ss.h ss_imp.c ss_imp.h hcfr.c hcfr.h \ ++ spyd2.c spyd2.h spyd2setup.h spyd2PLD.h huey.c huey.h unixio.c \ ++ usbio.c hidio.c pollem.c pollem.h icoms.h conv.h usbio.h \ ++ hidio.h xdg_bds.c xdg_bds.h ++libinst_la_LIBADD = ../libargyllusb.la $(ICC_LIBS) ../numlib/libargyllnum.la \ ++ ../libargyll.la ../rspl/librspl.la libconv.la ++ ++libdisp_la_SOURCES = dispsup.c dispwin.c dispwin.h dispsup.h ++libdisp_la_LIBADD = $(X_LIBS) ../ucmm/libucmm.la $(ICC_LIBS) \ ++ ../numlib/libargyllnum.la libconv.la libinst.la ../libargyll.la ++ ++libconv_la_SOURCES = conv.c pollem.c ++libconv_la_LIBADD = ../libargyll.la ../numlib/libargyllnum.la ++ ++LDADD = ./libinsttypes.la ./libdisp.la ./libinst.la ./libconv.la \ ++ ../ucmm/libucmm.la ../jcnf/libjcnf.la $(YAJL_LIBS) \ ++ ../xicc/libxicc.la $(ICC_LIBS) ../cgats/libcgats.la \ ++ ../rspl/librspl.la ../gamut/libgamut.la ../target/libtarget.la \ ++ ../plot/libplot.la ../numlib/libargyllnum.la $(X_LIBS) \ ++ ../libargyllusb.la ../libargyll.la ++ ++bin_PROGRAMS = synthcal dispwin dispread dispcal fakeread synthread \ ++ chartread spotread illumread ccmxmake spec2cie average spyd2en ++ ++dispwin_CFLAGS = $(AM_CFLAGS) -DSTANDALONE_TEST ++ ++synthcal_DEPENDENCIES = ../gamut/libgammap.la ../target/libtarget.la ++ ++spyd2en_SOURCES = spyd2en.c vinflate.c ++ ++EXTRA_DIST = Readme.txt + +=== added file 'target/Makefile.am' +--- Argyll_V1.3.0/target/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/target/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,24 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libtarget.la ++privatelibdir = $(pkglibdir) ++ ++libtarget_la_SOURCES = alphix.c alphix.h randix.c randix.h ++ ++LDADD = ./libtarget.la ../rspl/librspl.la ../plot/libvrml.la \ ++ $(ICC_LIBS) ../render/librender.la ../cgats/libcgats.la \ ++ ../xicc/libxicc.la ../gamut/libgamut.la \ ++ ../spectro/libinsttypes.la ../spectro/libconv.la \ ++ ../numlib/libargyllnum.la $(TIFF_LIBS) ++ ++bin_PROGRAMS = targen printtarg ++ ++targen_DEPENDENCIES = ../spectro/libinsttypes.la ++targen_SOURCES = targen.c targen.h ofps.c ofps.h ifarp.c ifarp.h \ ++ simplat.c simplat.h simdlat.c simdlat.h prand.c prand.h ++ ++printtarg_SOURCES = printtarg.c ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'tweak/Makefile.am' +--- Argyll_V1.3.0/tweak/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/tweak/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,13 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++LDADD = ../spectro/libinsttypes.la ../gamut/libgamut.la \ ++ ../gamut/libgammap.la ../plot/libvrml.la ../xicc/libxutils.la \ ++ ../xicc/libxicc.la ../rspl/librspl.la ../gamut/libgamut.la \ ++ ../gamut/libgammap.la $(ICC_LIBS) ../cgats/libcgats.la \ ++ ../numlib/libargyllnum.la $(TIFF_LIBS) ++ ++bin_PROGRAMS = refine ++ ++EXTRA_DIST = License.txt Readme.txt + +=== added file 'ucmm/Makefile.am' +--- Argyll_V1.3.0/ucmm/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/ucmm/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,9 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libucmm.la ++privatelibdir = $(pkglibdir) ++ ++libucmm_la_SOURCES = ucmm.h ucmm.c ++libucmm_la_LIBADD = $(ICC_LIBS) ../jcnf/libjcnf.la + +=== added file 'xicc/Makefile.am' +--- Argyll_V1.3.0/xicc/Makefile.am 1970-01-01 00:00:00 +0000 ++++ argyllcms-autotools/xicc/Makefile.am 2010-09-12 17:13:26 +0000 +@@ -0,0 +1,31 @@ ++## Process this file with automake to produce Makefile.in ++ ++include $(top_srcdir)/Makefile.shared ++ ++privatelib_LTLIBRARIES = libxicc.la libxutils.la ++privatelibdir = $(pkglibdir) ++ ++libxicc_la_SOURCES = xicc.h xicc.c xlutfix.c xspect.c xspect.h xsep.c \ ++ xsep.h xdevlin.c xdevlin.h xcam.c xcam.h cam97s3.c cam97s3.h \ ++ cam02.c cam02.h mpp.c ccmx.c xfit.c xfit.h moncurve.c \ ++ moncurve.h mpp.h xdgb.c ++libxicc_la_LIBADD = $(ICC_LIBS) ../gamut/libgamut.la \ ++ ../numlib/libargyllnum.la ../spectro/libinsttypes.la \ ++ ../cgats/libcgats.la ../rspl/librspl.la ../libargyll.la ++ ++libxutils_la_SOURCES = xutils.h xutils.c ++libxutils_la_LIBADD = $(TIFF_LIBS) $(ICC_LIBS) ++ ++LDADD = ./libxicc.la ./libxutils.la ../rspl/librspl.la \ ++ ../numlib/libargyllnum.la ../gamut/libgamut.la \ ++ ../gamut/libgammap.la ../spectro/libinsttypes.la $(ICC_LIBS) \ ++ ../cgats/libcgats.la ../plot/libvrml.la ../plot/libplot.la \ ++ $(TIFF_LIBS) $(X_LIBS) ../libargyll.la ../libargyllusb.la ++ ++bin_PROGRAMS = fakeCMY iccgamut mpplu revfix tiffgamut xicclu \ ++ extracticc extractttag specplot ccttest ++ ++fakeCMY_DEPENDENCIES = ../spectro/libinsttypes.la \ ++ ../gamut/libgammap.la ../target/libtarget.la ++ ++EXTRA_DIST = xmono.c xmatrix.c xlut.c + diff --git a/Argyll_V1.3.5_autotools.patch b/Argyll_V1.3.5_autotools.patch new file mode 100644 index 0000000..fca4880 --- /dev/null +++ b/Argyll_V1.3.5_autotools.patch @@ -0,0 +1,57 @@ +diff -wruN ../orig-Argyll_V1.3.5/profile/Makefile.am ./profile/Makefile.am +--- ../orig-Argyll_V1.3.5/profile/Makefile.am 2012-01-11 20:53:56.448041068 +0100 ++++ ./profile/Makefile.am 2012-01-11 21:43:19.152803748 +0100 +@@ -11,8 +11,8 @@ + ../numlib/libargyllnum.la ../spectro/libinsttypes.la \ + ../xicc/libxutils.la ../libargyll.la + +-LDADD = ./libprof.la ../xicc/libxutils.la ../spectro/libinst.la \ +- ../xicc/libxicc.la ../spectro/libinsttypes.la \ ++LDADD = ./libprof.la ../xicc/libxutils.la ../xicc/libxicc.la \ ++ ../spectro/libinst.la ../spectro/libinsttypes.la \ + ../gamut/libgamut.la ../gamut/libgammap.la ../plot/libvrml.la \ + ../plot/libplot.la ../rspl/librspl.la \ + ../numlib/libargyllnum.la $(ICC_LIBS) ../cgats/libcgats.la \ +diff -wruN ../orig-Argyll_V1.3.5/spectro/Makefile.am ./spectro/Makefile.am +--- ../orig-Argyll_V1.3.5/spectro/Makefile.am 2012-01-11 20:53:56.448041068 +0100 ++++ ./spectro/Makefile.am 2012-01-11 21:51:16.265039580 +0100 +@@ -10,6 +10,8 @@ + + libinst_la_SOURCES = inst.h inst.c insttypes.c dtp20.c dtp20.h dtp22.c \ + dtp22.h dtp41.c dtp41.h dtp51.c dtp51.h dtp92.c dtp92.h \ ++ i1d3.c i1d3.h \ ++ colorhug.c colorhug.h \ + i1disp.c i1disp.h i1pro.c i1pro.h i1pro_imp.c i1pro_imp.h \ + munki.c munki_imp.c ss.c ss.h ss_imp.c ss_imp.h hcfr.c hcfr.h \ + spyd2.c spyd2.h spyd2setup.h spyd2PLD.h huey.c huey.h unixio.c \ +@@ -33,7 +35,7 @@ + ../libargyllusb.la ../libargyll.la + + bin_PROGRAMS = synthcal dispwin dispread dispcal fakeread synthread \ +- chartread spotread illumread ccmxmake spec2cie average spyd2en ++ chartread spotread illumread ccxxmake spec2cie average spyd2en + + dispwin_CFLAGS = $(AM_CFLAGS) -DSTANDALONE_TEST + +diff -wruN ../orig-Argyll_V1.3.5/target/Makefile.am ./target/Makefile.am +--- ../orig-Argyll_V1.3.5/target/Makefile.am 2012-01-11 20:53:56.448041068 +0100 ++++ ./target/Makefile.am 2012-01-11 21:19:48.114575843 +0100 +@@ -11,6 +11,7 @@ + $(ICC_LIBS) ../render/librender.la ../cgats/libcgats.la \ + ../xicc/libxicc.la ../gamut/libgamut.la \ + ../spectro/libinsttypes.la ../spectro/libconv.la \ ++ ../spectro/libinst.la \ + ../numlib/libargyllnum.la $(TIFF_LIBS) + + bin_PROGRAMS = targen printtarg +diff -wruN ../orig-Argyll_V1.3.5/xicc/Makefile.am ./xicc/Makefile.am +--- ../orig-Argyll_V1.3.5/xicc/Makefile.am 2012-01-11 20:53:56.448041068 +0100 ++++ ./xicc/Makefile.am 2012-01-11 20:53:22.997984221 +0100 +@@ -8,6 +8,7 @@ + libxicc_la_SOURCES = xicc.h xicc.c xlutfix.c xspect.c xspect.h xsep.c \ + xsep.h xdevlin.c xdevlin.h xcam.c xcam.h cam97s3.c cam97s3.h \ + cam02.c cam02.h mpp.c ccmx.c xfit.c xfit.h moncurve.c \ ++ ccss.h ccss.c \ + moncurve.h mpp.h xdgb.c + libxicc_la_LIBADD = $(ICC_LIBS) ../gamut/libgamut.la \ + ../numlib/libargyllnum.la ../spectro/libinsttypes.la \ diff --git a/Argyll_V1.3.5_src.zip b/Argyll_V1.3.5_src.zip new file mode 100644 index 0000000..e54fd4b --- /dev/null +++ b/Argyll_V1.3.5_src.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:905dc6b5493e02eee76ef7384d619d1135704650a14d27b13c549002a1d9908c +size 12892085 diff --git a/ColorHug-sensor-driver.patch b/ColorHug-sensor-driver.patch new file mode 100644 index 0000000..587e074 --- /dev/null +++ b/ColorHug-sensor-driver.patch @@ -0,0 +1,959 @@ +diff -wruN ../orig-Argyll_V1.3.5/libusb1/55-Argyll.rules ./libusb1/55-Argyll.rules +--- ../orig-Argyll_V1.3.5/libusb1/55-Argyll.rules 2012-01-11 21:54:38.365302389 +0100 ++++ ./libusb1/55-Argyll.rules 2012-01-11 21:56:39.478274483 +0100 +@@ -46,6 +46,9 @@ + # Huey + ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2005", ENV{COLOR_MEASUREMENT_DEVICE}="1" + ++# ColorHug ++ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="f8dA", ENV{COLOR_MEASUREMENT_DEVICE}="1" ++ + # Set ID_VENDOR and ID_MODEL acording to VID and PID + IMPORT{program}="usb-db %p" + +diff -wruN ../orig-Argyll_V1.3.5/spectro/afiles ./spectro/afiles +--- ../orig-Argyll_V1.3.5/spectro/afiles 2011-10-24 14:10:26.000000000 +0200 ++++ ./spectro/afiles 2012-01-11 21:56:05.116268005 +0100 +@@ -60,6 +60,8 @@ + LzmaDec.c + huey.c + huey.h ++colorhug.c ++colorhug.h + spec2cie.c + average.c + conv.h +diff -wruN ../orig-Argyll_V1.3.5/spectro/colorhug.c ./spectro/colorhug.c +--- ../orig-Argyll_V1.3.5/spectro/colorhug.c 1970-01-01 01:00:00.000000000 +0100 ++++ ./spectro/colorhug.c 2012-01-11 21:56:05.116268005 +0100 +@@ -0,0 +1,752 @@ ++/* ++ * Argyll Color Correction System ++ * ++ * Hughski ColorHug related functions ++ * ++ * Author: Richard Hughes ++ * Date: 30/11/2011 ++ * ++ * Copyright 2006 - 2007, Graeme W. Gill ++ * Copyright 2011, Richard Hughes ++ * All rights reserved. ++ * ++ * (Based on huey.c) ++ * ++ * This material is licenced under the GNU GENERAL PUBLIC LICENSE Version 2 or later :- ++ * see the License2.txt file for licencing details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifndef SALONEINSTLIB ++#include "copyright.h" ++#include "aconfig.h" ++#include "numlib.h" ++#else /* SALONEINSTLIB */ ++#include "sa_config.h" ++#include "numsup.h" ++#endif /* SALONEINSTLIB */ ++#include "xspect.h" ++#include "insttypes.h" ++#include "icoms.h" ++#include "conv.h" ++#include "colorhug.h" ++ ++static inst_code colorhug_interp_code(inst *pp, int ec); ++ ++/* Interpret an icoms error into a ColorHug error */ ++static int icoms2colorhug_err(int se) { ++ if (se & ICOM_USERM) { ++ se &= ICOM_USERM; ++ if (se == ICOM_USER) ++ return COLORHUG_USER_ABORT; ++ if (se == ICOM_TERM) ++ return COLORHUG_USER_TERM; ++ if (se == ICOM_TRIG) ++ return COLORHUG_USER_TRIG; ++ if (se == ICOM_CMND) ++ return COLORHUG_USER_CMND; ++ } ++ if (se != ICOM_OK) ++ return COLORHUG_COMS_FAIL; ++ return COLORHUG_OK; ++} ++ ++/* ColorHug commands that we care about */ ++typedef enum { ++ ch_set_mult = 0x04, /* Set multiplier value */ ++ ch_set_integral = 0x06, /* Set integral time */ ++ ch_get_serial = 0x0b, /* Gets the serial number */ ++ ch_set_leds = 0x0e, /* Sets the LEDs */ ++ ch_take_reading = 0x23 /* Takes an XYZ reading */ ++} ColorHugCmd; ++ ++/* Diagnostic - return a description given the instruction code */ ++static char *inst_desc(int cc) { ++ static char buf[40]; ++ switch(cc) { ++ case 0x04: ++ return "SetMultiplier"; ++ case 0x06: ++ return "SetIntegral"; ++ case 0x0b: ++ return "GetSerial"; ++ case 0x0e: ++ return "SetLeds"; ++ case 0x23: ++ return "TakeReadingXYZ"; ++ } ++ sprintf(buf,"Unknown %02x",cc); ++ return buf; ++} ++ ++/* Error codes interpretation */ ++static char * ++colorhug_interp_error(inst *pp, int ec) { ++ ec &= inst_imask; ++ switch (ec) { ++ case COLORHUG_INTERNAL_ERROR: ++ return "Internal software error"; ++ case COLORHUG_COMS_FAIL: ++ return "Communications failure"; ++ case COLORHUG_UNKNOWN_MODEL: ++ return "Not a known ColorHug Model"; ++ case COLORHUG_USER_ABORT: ++ return "User hit Abort key"; ++ case COLORHUG_USER_TERM: ++ return "User hit Terminate key"; ++ case COLORHUG_USER_TRIG: ++ return "User hit Trigger key"; ++ case COLORHUG_USER_CMND: ++ return "User hit a Command key"; ++ ++ case COLORHUG_OK: ++ return "OK"; ++ case COLORHUG_UNKNOWN_CMD: ++ return "Unknown connamd"; ++ case COLORHUG_WRONG_UNLOCK_CODE: ++ return "Wrong unlock code"; ++ case COLORHUG_NOT_IMPLEMENTED: ++ return "Not implemented"; ++ case COLORHUG_UNDERFLOW_SENSOR: ++ return "Sensor underflow"; ++ case COLORHUG_NO_SERIAL: ++ return "No serial"; ++ case COLORHUG_WATCHDOG: ++ return "Watchdog"; ++ case COLORHUG_INVALID_ADDRESS: ++ return "Invalid address"; ++ case COLORHUG_INVALID_LENGTH: ++ return "Invalid length"; ++ case COLORHUG_INVALID_CHECKSUM: ++ return "Invlid checksum"; ++ case COLORHUG_INVALID_VALUE: ++ return "Invalid value"; ++ case COLORHUG_UNKNOWN_CMD_FOR_BOOTLOADER: ++ return "Unknown command for bootloader"; ++ case COLORHUG_NO_CALIBRATION: ++ return "No calibration"; ++ case COLORHUG_OVERFLOW_MULTIPLY: ++ return "Multiply overflow"; ++ case COLORHUG_OVERFLOW_ADDITION: ++ return "Addition overflow"; ++ case COLORHUG_OVERFLOW_SENSOR: ++ return "Sensor overflow"; ++ case COLORHUG_OVERFLOW_STACK: ++ return "Stack overflow"; ++ ++ /* Internal errors */ ++ case COLORHUG_NO_COMS: ++ return "Communications hasn't been established"; ++ case COLORHUG_NOT_INITED: ++ return "Insrument hasn't been initialised"; ++ default: ++ return "Unknown error code"; ++ } ++} ++ ++/* Do a command/response exchange with the colorhug */ ++static inst_code ++colorhug_command(colorhug *p, ++ ColorHugCmd cmd, ++ unsigned char *in, uint in_size, ++ unsigned char *out, uint out_size, ++ double timeout) ++{ ++ int i; ++ unsigned char buf[64]; ++ int wbytes; ++ int rbytes; ++ int se, ua = 0, rv = inst_ok; ++ int isdeb = 0; ++ ++ /* Turn off low level debug messages, and sumarise them here */ ++ isdeb = p->icom->debug; ++ if (isdeb <= 2) ++ p->icom->debug = 0; ++ ++ if (isdeb) { ++ fprintf(stderr,"colorhug: Sending cmd '%s' args '%s'\n", ++ inst_desc(cmd), icoms_tohex(in, in_size)); ++ } ++ ++ /* Send the command with any specified data */ ++ buf[0] = cmd; ++ if (in != NULL) ++ memcpy(buf + 1, in, in_size); ++ if (p->icom->is_hid) { ++ se = p->icom->hid_write(p->icom, buf, in_size + 1, &wbytes, timeout); ++ } else { ++ se = p->icom->usb_write(p->icom, 0x01, buf, in_size + 1, &wbytes, timeout); ++ } ++ if (se != 0) { ++ if (se & ICOM_USERM) { ++ ua = (se & ICOM_USERM); ++ } ++ if (se & ~ICOM_USERM) { ++ if (isdeb) ++ fprintf(stderr,"colorhug: Command send failed with ICOM err 0x%x\n", se); ++ p->icom->debug = isdeb; ++ return colorhug_interp_code((inst *)p, COLORHUG_COMS_FAIL); ++ } ++ } ++ rv = colorhug_interp_code((inst *)p, icoms2colorhug_err(ua)); ++ if (isdeb) ++ fprintf(stderr,"colorhug: ICOM err 0x%x\n",ua); ++ if (wbytes != in_size + 1) ++ rv = colorhug_interp_code((inst *)p, COLORHUG_BAD_WR_LENGTH); ++ if (rv != inst_ok) { ++ p->icom->debug = isdeb; ++ return rv; ++ } ++ ++ /* Now fetch the response */ ++ if (isdeb) ++ fprintf(stderr,"colorhug: Reading response\n"); ++ ++ if (p->icom->is_hid) { ++ se = p->icom->hid_read(p->icom, buf, out_size + 2, &rbytes, timeout); ++ } else { ++ se = p->icom->usb_read(p->icom, 0x81, buf, out_size + 2, &rbytes, timeout); ++ } ++ ++ if (isdeb && rbytes >= 2) { ++ fprintf(stderr,"Recieved cmd '%s' error '%s' args '%s'\n", ++ inst_desc(buf[1]), ++ colorhug_interp_error((inst *) p, buf[0]), ++ icoms_tohex(buf, rbytes - 2)); ++ } ++ ++ if (se != 0) { ++ ++ /* deal with command error */ ++ if (rbytes == 2 && buf[0] != COLORHUG_OK) { ++ rv = colorhug_interp_code((inst *)p, buf[0]); ++ return rv; ++ } ++ ++ /* deal with underrun or overrun */ ++ if (rbytes != out_size + 2) { ++ rv = colorhug_interp_code((inst *)p, COLORHUG_BAD_RD_LENGTH); ++ return rv; ++ } ++ ++ /* there's another reason it failed */ ++ if (se & ICOM_USERM) { ++ ua = (se & ICOM_USERM); ++ } ++ if (se & ~ICOM_USERM) { ++ if (isdeb) ++ fprintf(stderr,"colorhug: Response read failed with ICOM err 0x%x\n",se); ++ p->icom->debug = isdeb; ++ return colorhug_interp_code((inst *)p, COLORHUG_COMS_FAIL); ++ } ++ } ++ rv = colorhug_interp_code((inst *)p, icoms2colorhug_err(ua)); ++ if (rv != inst_ok) ++ return rv; ++ ++ /* check the command was the same */ ++ if (buf[1] != cmd) { ++ rv = colorhug_interp_code((inst *)p, COLORHUG_BAD_RET_CMD); ++ return rv; ++ } ++ if (out != NULL) { ++ memcpy(out, buf + 2, out_size); ++ } ++ if (isdeb) { ++ fprintf(stderr,"colorhug: '%s' ICOM err 0x%x\n", ++ icoms_tohex(buf + 2, out_size),ua); ++ } ++ p->icom->debug = isdeb; ++ return rv; ++} ++ ++/* Take a short, and convert it into a byte buffer */ ++static void short2buf(unsigned char *buf, int inv) ++{ ++ buf[0] = (inv >> 0) & 0xff; ++ buf[1] = (inv >> 8) & 0xff; ++} ++ ++/* Converts a packed float to a double */ ++static double packed_float_to_double (uint32_t pf) ++{ ++ return (double) pf / (double) 0x10000; ++} ++ ++/* Set the device LED state */ ++static inst_code ++colorhug_set_LEDs(colorhug *p, int mask) ++{ ++ int i; ++ unsigned char ibuf[4]; ++ inst_code ev; ++ ++ mask &= 0x3; ++ p->led_state = mask; ++ ++ ibuf[0] = mask; ++ ibuf[1] = 0; /* repeat */ ++ ibuf[2] = 0; /* on */ ++ ibuf[3] = 0; /* off */ ++ ++ /* Do command */ ++ ev = colorhug_command(p, ch_set_leds, ++ ibuf, sizeof (ibuf), /* input */ ++ NULL, 0, /* output */ ++ 1.0); ++ return ev; ++} ++ ++/* Take a XYZ measurement from the device */ ++static inst_code ++colorhug_take_XYZ_measurement(colorhug *p, double XYZ[3]) ++{ ++ inst_code ev; ++ int i; ++ uint8_t ibuf[2]; ++ uint32_t obuf[3]; ++ ++ if (!p->inited) ++ return colorhug_interp_code((inst *)p, COLORHUG_NOT_INITED); ++ ++ /* Choose the calibration matrix */ ++ short2buf(ibuf + 0, p->crt ? 65 : 64); ++ ++ /* Do the measurement, and return the values */ ++ ev = colorhug_command(p, ch_take_reading, ++ ibuf, sizeof (ibuf), ++ (unsigned char *) obuf, sizeof (obuf), ++ 1.0); ++ if (ev != inst_ok) ++ return ev; ++ ++ /* Convert to doubles */ ++ for (i = 0; i < 3; i++) ++ XYZ[i] = packed_float_to_double (obuf[i]); ++ ++ /* Apply the colorimeter correction matrix */ ++ icmMulBy3x3(XYZ, p->ccmat, XYZ); ++ ++ if (p->debug) { ++ fprintf(stderr,"colorhug: returning XYZ = %f %f %f\n", ++ XYZ[0],XYZ[1],XYZ[2]); ++ } ++ return inst_ok; ++} ++ ++/* Establish communications with a ColorHug */ ++static inst_code ++colorhug_init_coms(inst *pp, int port, baud_rate br, flow_control fc, double tout) { ++ colorhug *p = (colorhug *) pp; ++ ++ if (p->debug) { ++ p->icom->debug = p->debug; /* Turn on debugging */ ++ fprintf(stderr,"colorhug: About to init coms\n"); ++ } ++ ++ /* Open as an HID if available */ ++ if (p->icom->is_hid_portno(p->icom, port) != instUnknown) { ++ ++ if (p->debug) ++ fprintf(stderr,"colorhug: About to init HID\n"); ++ ++ /* Set config, interface */ ++ p->icom->set_hid_port(p->icom, port, icomuf_none, 0, NULL); ++ ++ } else if (p->icom->is_usb_portno(p->icom, port) != instUnknown) { ++ ++ if (p->debug) ++ fprintf(stderr,"colorhug: About to init USB\n"); ++ ++ /* Set config, interface, write end point, read end point */ ++ p->icom->set_usb_port(p->icom, port, 1, 0x00, 0x00, icomuf_detach, 0, NULL); ++ ++ } else { ++ if (p->debug) ++ fprintf(stderr,"colorhug: init_coms called to wrong device!\n"); ++ return colorhug_interp_code((inst *)p, COLORHUG_UNKNOWN_MODEL); ++ } ++ ++ if (p->debug) ++ fprintf(stderr,"colorhug: init coms has suceeded\n"); ++ ++ p->gotcoms = 1; ++ return inst_ok; ++} ++ ++/* Set the device multiplier */ ++static inst_code ++colorhug_set_multiplier (colorhug *p, int multiplier) ++{ ++ inst_code ev; ++ unsigned char ibuf[1]; ++ ++ /* Set the desired multiplier */ ++ ibuf[0] = multiplier; ++ ev = colorhug_command(p, ch_set_mult, ++ ibuf, sizeof (ibuf), ++ NULL, 0, ++ 1.0); ++ return ev; ++} ++ ++/* Set the device integral time */ ++static inst_code ++colorhug_set_integral (colorhug *p, int integral) ++{ ++ inst_code ev; ++ unsigned char ibuf[2]; ++ ++ /* Set the desired integral time */ ++ short2buf(ibuf + 0, integral); ++ ev = colorhug_command(p, ch_set_integral, ++ ibuf, sizeof (ibuf), ++ NULL, 0, ++ 1.0); ++ return ev; ++} ++ ++/* Initialise the ColorHug */ ++static inst_code ++colorhug_init_inst(inst *pp) ++{ ++ colorhug *p = (colorhug *)pp; ++ inst_code ev; ++ ++ if (p->debug) ++ fprintf(stderr,"colorhug: About to init instrument\n"); ++ ++ /* Must establish coms first */ ++ if (p->gotcoms == 0) ++ return colorhug_interp_code((inst *)p, COLORHUG_NO_COMS); ++ ++ /* Turn the LEDs off */ ++ ev = colorhug_set_LEDs(p, 0x0); ++ if (ev != inst_ok) ++ return ev; ++ ++ /* Turn the sensor on */ ++ ev = colorhug_set_multiplier(p, 0x03); ++ if (ev != inst_ok) ++ return ev; ++ ++ /* Set the integral time to maximum precision */ ++ ev = colorhug_set_integral(p, 0xffff); ++ if (ev != inst_ok) ++ return ev; ++ ++ p->itype = instColorHug; ++ p->trig = inst_opt_trig_keyb; ++ p->inited = 1; ++ if (p->debug) ++ fprintf(stderr,"colorhug: instrument inited OK\n"); ++ ++ /* Flash the LEDs */ ++ ev = colorhug_set_LEDs(p, 0x1); ++ if (ev != inst_ok) ++ return ev; ++ msec_sleep(50); ++ ev = colorhug_set_LEDs(p, 0x2); ++ if (ev != inst_ok) ++ return ev; ++ msec_sleep(50); ++ ev = colorhug_set_LEDs(p, 0x1); ++ if (ev != inst_ok) ++ return ev; ++ msec_sleep(50); ++ ev = colorhug_set_LEDs(p, 0x0); ++ if (ev != inst_ok) ++ return ev; ++ ++ return ev; ++} ++ ++/* Read a single sample */ ++static inst_code ++colorhug_read_sample( ++inst *pp, ++char *name, /* Strip name (7 chars) */ ++ipatch *val) { /* Pointer to instrument patch value */ ++ colorhug *p = (colorhug *)pp; ++ int user_trig = 0; ++ int rv = inst_protocol_error; ++ ++ if (p->trig == inst_opt_trig_keyb) { ++ int se; ++ if ((se = icoms_poll_user(p->icom, 1)) != ICOM_TRIG) { ++ /* Abort, term or command */ ++ return colorhug_interp_code((inst *)p, icoms2colorhug_err(se)); ++ } ++ user_trig = 1; ++ if (p->trig_return) ++ printf("\n"); ++ } ++ ++ /* Read the XYZ value */ ++ if ((rv = colorhug_take_XYZ_measurement(p, val->aXYZ)) != inst_ok) { ++ return rv; ++ } ++ ++ val->XYZ_v = 0; ++ val->aXYZ_v = 1; /* These are absolute XYZ readings ? */ ++ val->Lab_v = 0; ++ val->sp.spec_n = 0; ++ val->duration = 0.0; ++ ++ if (user_trig) ++ return inst_user_trig; ++ return rv; ++} ++ ++/* Insert a colorimetric correction matrix */ ++inst_code colorhug_col_cor_mat( ++inst *pp, ++double mtx[3][3] ++) { ++ colorhug *p = (colorhug *)pp; ++ ++ if (mtx == NULL) ++ icmSetUnity3x3(p->ccmat); ++ else ++ icmCpy3x3(p->ccmat, mtx); ++ ++ return inst_ok; ++} ++ ++/* Determine if a calibration is needed */ ++inst_cal_type colorhug_needs_calibration(inst *pp) { ++ return inst_ok; ++} ++ ++/* Request an instrument calibration */ ++inst_code colorhug_calibrate( ++inst *pp, ++inst_cal_type calt, /* Calibration type. inst_calt_all for all neeeded */ ++inst_cal_cond *calc, /* Current condition/desired condition */ ++char id[CALIDLEN] /* Condition identifier (ie. white reference ID) */ ++) { ++ id[0] = '\000'; ++ return inst_unsupported; ++} ++ ++/* Convert a machine specific error code into an abstract dtp code */ ++static inst_code ++colorhug_interp_code(inst *pp, int ec) { ++ ec &= inst_imask; ++ switch (ec) { ++ ++ case COLORHUG_OK: ++ return inst_ok; ++ ++ case COLORHUG_INTERNAL_ERROR: ++ case COLORHUG_NO_COMS: ++ case COLORHUG_NOT_INITED: ++ return inst_internal_error | ec; ++ ++ case COLORHUG_COMS_FAIL: ++ return inst_coms_fail | ec; ++ ++ case COLORHUG_UNKNOWN_MODEL: ++ return inst_unknown_model | ec; ++ ++ case COLORHUG_UNKNOWN_CMD: ++ case COLORHUG_WRONG_UNLOCK_CODE: ++ case COLORHUG_NOT_IMPLEMENTED: ++ case COLORHUG_UNDERFLOW_SENSOR: ++ case COLORHUG_NO_SERIAL: ++ case COLORHUG_WATCHDOG: ++ case COLORHUG_INVALID_ADDRESS: ++ case COLORHUG_INVALID_LENGTH: ++ case COLORHUG_INVALID_CHECKSUM: ++ case COLORHUG_INVALID_VALUE: ++ case COLORHUG_UNKNOWN_CMD_FOR_BOOTLOADER: ++ case COLORHUG_NO_CALIBRATION: ++ case COLORHUG_OVERFLOW_MULTIPLY: ++ case COLORHUG_OVERFLOW_ADDITION: ++ case COLORHUG_OVERFLOW_SENSOR: ++ case COLORHUG_OVERFLOW_STACK: ++ case COLORHUG_BAD_WR_LENGTH: ++ case COLORHUG_BAD_RD_LENGTH: ++ case COLORHUG_BAD_RET_CMD: ++ case COLORHUG_BAD_RET_STAT: ++ return inst_protocol_error | ec; ++ ++ case COLORHUG_USER_ABORT: ++ return inst_user_abort | ec; ++ case COLORHUG_USER_TERM: ++ return inst_user_term | ec; ++ case COLORHUG_USER_TRIG: ++ return inst_user_trig | ec; ++ case COLORHUG_USER_CMND: ++ return inst_user_cmnd | ec; ++ } ++ return inst_other_error | ec; ++} ++ ++/* Destroy ourselves */ ++static void ++colorhug_del(inst *pp) { ++ colorhug *p = (colorhug *)pp; ++ if (p->icom != NULL) ++ p->icom->del(p->icom); ++ free(p); ++} ++ ++/* Return the instrument capabilities */ ++inst_capability colorhug_capabilities(inst *pp) { ++ colorhug *p = (colorhug *)pp; ++ inst_capability rv; ++ ++ rv = inst_emis_spot ++ | inst_emis_disp ++ | inst_emis_disp_lcd ++ | inst_colorimeter ++ | inst_ccmx ++ ; ++ ++ return rv; ++} ++ ++/* Return the instrument capabilities 2 */ ++inst2_capability colorhug_capabilities2(inst *pp) { ++ colorhug *p = (colorhug *)pp; ++ inst2_capability rv = 0; ++ ++ rv |= inst2_prog_trig; ++ rv |= inst2_keyb_trig; ++ rv |= inst2_has_leds; ++ ++ return rv; ++} ++ ++/* Set device measurement mode */ ++inst_code colorhug_set_mode(inst *pp, inst_mode m) ++{ ++ colorhug *p = (colorhug *)pp; ++ inst_mode mm; /* Measurement mode */ ++ ++ /* The measurement mode portion of the mode */ ++ mm = m & inst_mode_measurement_mask; ++ ++ /* only display emission mode and ambient supported */ ++ if (mm != inst_mode_emis_spot ++ && mm != inst_mode_emis_disp ++ && mm != inst_mode_emis_ambient) { ++ return inst_unsupported; ++ } ++ ++ /* Spectral mode is not supported */ ++ if (m & inst_mode_spectral) ++ return inst_unsupported; ++ ++ p->mode = m; ++ return inst_ok; ++} ++ ++/* Set or reset an optional mode */ ++static inst_code ++colorhug_set_opt_mode(inst *pp, inst_opt_mode m, ...) ++{ ++ colorhug *p = (colorhug *)pp; ++ inst_code ev = inst_ok; ++ ++ /* Select CRT/LCD */ ++ if (m == inst_opt_disp_crt) { ++ if (p->crt == 0) ++ p->crt = 1; ++ return inst_ok; ++ } else if (m == inst_opt_disp_lcd) { ++ if (p->crt != 0) ++ p->crt = 0; ++ return inst_ok; ++ ++ } ++ /* Record the trigger mode */ ++ if (m == inst_opt_trig_prog ++ || m == inst_opt_trig_keyb) { ++ p->trig = m; ++ return inst_ok; ++ } ++ if (m == inst_opt_trig_return) { ++ p->trig_return = 1; ++ return inst_ok; ++ } else if (m == inst_opt_trig_no_return) { ++ p->trig_return = 0; ++ return inst_ok; ++ } ++ ++ /* Operate the LEDs */ ++ if (m == inst_opt_get_gen_ledmask) { ++ va_list args; ++ int *mask = NULL; ++ ++ va_start(args, m); ++ mask = va_arg(args, int *); ++ va_end(args); ++ *mask = 0x3; /* Two general LEDs */ ++ return inst_ok; ++ } else if (m == inst_opt_get_led_state) { ++ va_list args; ++ int *mask = NULL; ++ ++ va_start(args, m); ++ mask = va_arg(args, int *); ++ va_end(args); ++ *mask = p->led_state; ++ return inst_ok; ++ } else if (m == inst_opt_set_led_state) { ++ va_list args; ++ int mask = 0; ++ ++ va_start(args, m); ++ mask = va_arg(args, int); ++ va_end(args); ++ return colorhug_set_LEDs(p, mask); ++ } ++ ++ return inst_unsupported; ++} ++ ++/* Constructor */ ++extern colorhug *new_colorhug(icoms *icom, int debug, int verb) ++{ ++ colorhug *p; ++ if ((p = (colorhug *)calloc(sizeof(colorhug),1)) == NULL) ++ error("colorhug: malloc failed!"); ++ ++ if (icom == NULL) ++ p->icom = new_icoms(); ++ else ++ p->icom = icom; ++ ++ p->debug = debug; ++ p->verb = verb; ++ ++ /* Set the colorimeter correction matrix to do nothing */ ++ icmSetUnity3x3(p->ccmat); ++ ++ p->init_coms = colorhug_init_coms; ++ p->init_inst = colorhug_init_inst; ++ p->capabilities = colorhug_capabilities; ++ p->capabilities2 = colorhug_capabilities2; ++ p->set_mode = colorhug_set_mode; ++ p->set_opt_mode = colorhug_set_opt_mode; ++ p->read_sample = colorhug_read_sample; ++ p->needs_calibration = colorhug_needs_calibration; ++ p->col_cor_mat = colorhug_col_cor_mat; ++ p->calibrate = colorhug_calibrate; ++ p->interp_error = colorhug_interp_error; ++ p->del = colorhug_del; ++ ++ /* Until initalisation */ ++ p->itype = instUnknown; ++ ++ return p; ++} +diff -wruN ../orig-Argyll_V1.3.5/spectro/colorhug.h ./spectro/colorhug.h +--- ../orig-Argyll_V1.3.5/spectro/colorhug.h 1970-01-01 01:00:00.000000000 +0100 ++++ ./spectro/colorhug.h 2012-01-11 21:56:05.116268005 +0100 +@@ -0,0 +1,85 @@ ++/* ++ * Argyll Color Correction System ++ * ++ * Hughski ColorHug related defines ++ * ++ * Author: Richard Hughes ++ * Date: 30/11/2011 ++ * ++ * Copyright 2006 - 2007, Graeme W. Gill ++ * Copyright 2011, Richard Hughes ++ * All rights reserved. ++ * ++ * (Based on huey.h) ++ * ++ * This material is licenced under the GNU GENERAL PUBLIC LICENSE Version 2 or later :- ++ * see the License2.txt file for licencing details. ++ */ ++ ++#ifndef COLORHUG_H ++ ++#include "inst.h" ++ ++/* Note: update colorhug_interp_error() and colorhug_interp_code() in colorhug.c */ ++/* if anything of these #defines are added or subtracted */ ++ ++/* Fake Error codes */ ++#define COLORHUG_INTERNAL_ERROR 0x61 /* Internal software error */ ++#define COLORHUG_COMS_FAIL 0x62 /* Communication failure */ ++#define COLORHUG_UNKNOWN_MODEL 0x63 /* Not an colorhug */ ++#define COLORHUG_DATA_PARSE_ERROR 0x64 /* Read data parsing error */ ++#define COLORHUG_USER_ABORT 0x65 /* User hit abort */ ++#define COLORHUG_USER_TERM 0x66 /* User hit terminate */ ++#define COLORHUG_USER_TRIG 0x67 /* User hit trigger */ ++#define COLORHUG_USER_CMND 0x68 /* User hit command */ ++ ++/* Real error codes */ ++#define COLORHUG_OK 0x00 ++#define COLORHUG_UNKNOWN_CMD 0x01 ++#define COLORHUG_WRONG_UNLOCK_CODE 0x02 ++#define COLORHUG_NOT_IMPLEMENTED 0x03 ++#define COLORHUG_UNDERFLOW_SENSOR 0x04 ++#define COLORHUG_NO_SERIAL 0x05 ++#define COLORHUG_WATCHDOG 0x06 ++#define COLORHUG_INVALID_ADDRESS 0x07 ++#define COLORHUG_INVALID_LENGTH 0x08 ++#define COLORHUG_INVALID_CHECKSUM 0x09 ++#define COLORHUG_INVALID_VALUE 0x0a ++#define COLORHUG_UNKNOWN_CMD_FOR_BOOTLOADER 0x0b ++#define COLORHUG_NO_CALIBRATION 0x0c ++#define COLORHUG_OVERFLOW_MULTIPLY 0x0d ++#define COLORHUG_OVERFLOW_ADDITION 0x0e ++#define COLORHUG_OVERFLOW_SENSOR 0x0f ++#define COLORHUG_OVERFLOW_STACK 0x10 ++ ++/* Internal errors */ ++#define COLORHUG_NO_COMS 0x22 ++#define COLORHUG_NOT_INITED 0x23 ++#define COLORHUG_BAD_WR_LENGTH 0x25 ++#define COLORHUG_BAD_RD_LENGTH 0x26 ++#define COLORHUG_BAD_RET_CMD 0x27 ++#define COLORHUG_BAD_RET_STAT 0x28 ++ ++ ++/* COLORHUG communication object */ ++struct _colorhug { ++ INST_OBJ_BASE ++ ++ inst_mode mode; /* Currently selected mode */ ++ ++ inst_opt_mode trig; /* Reading trigger mode */ ++ int trig_return; /* Emit "\n" after trigger */ ++ ++ int ser_no; /* Serial number */ ++ int crt; /* NZ if set to CRT */ ++ double ccmat[3][3]; /* Colorimeter correction matrix */ ++ int led_state; /* Current LED state */ ++ ++}; typedef struct _colorhug colorhug; ++ ++/* Constructor */ ++extern colorhug *new_colorhug(icoms *icom, int debug, int verb); ++ ++ ++#define COLORHUG_H ++#endif /* COLORHUG_H */ +diff -wruN ../orig-Argyll_V1.3.5/spectro/inst.c ./spectro/inst.c +--- ../orig-Argyll_V1.3.5/spectro/inst.c 2011-10-24 14:10:27.000000000 +0200 ++++ ./spectro/inst.c 2012-01-11 21:56:05.116268005 +0100 +@@ -476,6 +476,8 @@ + p = (inst *)new_spyd2(icom, debug, verb); + else if (itype == instHuey) + p = (inst *)new_huey(icom, debug, verb); ++ else if (itype == instColorHug) ++ p = (inst *)new_colorhug(icom, debug, verb); + else { + return NULL; + } +diff -wruN ../orig-Argyll_V1.3.5/spectro/instlib.ksh ./spectro/instlib.ksh +--- ../orig-Argyll_V1.3.5/spectro/instlib.ksh 2011-10-24 14:10:26.000000000 +0200 ++++ ./spectro/instlib.ksh 2012-01-11 21:56:05.116268005 +0100 +@@ -9,7 +9,7 @@ + + echo "Making standalone GPLv2 instrument archive instlib.zip " + +-FILES="License2.txt Makefile.OSX Makefile.UNIX Makefile.WNT pollem.h pollem.c conv.h conv.c hidio.h hidio.c icoms.h inst.h inst.c insttypes.c insttypes.h insttypeinst.h dtp20.c dtp20.h dtp22.c dtp22.h dtp41.c dtp41.h dtp51.c dtp51.h dtp92.c dtp92.h ss.h ss.c ss_imp.h ss_imp.c i1disp.c i1disp.h i1d3.h i1d3.c i1pro.h i1pro.c i1pro_imp.h i1pro_imp.c munki.h munki.c munki_imp.h munki_imp.c hcfr.c hcfr.h huey.c huey.h spyd2.c spyd2.h spyd2setup.h spyd2PLD.h spyd2en.c i1d3ccss.c vinflate.c inflate.c LzmaDec.c LzmaDec.h LzmaTypes.h ntio.c unixio.c usbio.h usbio.c xdg_bds.c xdg_bds.h ../xicc/xspect.h ../xicc/xspect.c ../xicc/ccss.h ../xicc/ccss.c ../rspl/rspl1.h ../rspl/rspl1.c ../h/sort.h ../numlib/numsup.h ../numlib/numsup.c ../cgats/pars.h ../cgats/pars.c ../cgats/parsstd.c ../cgats/cgats.h ../cgats/cgats.c ../cgats/cgatsstd.c spotread.c" ++FILES="License2.txt Makefile.OSX Makefile.UNIX Makefile.WNT pollem.h pollem.c conv.h conv.c hidio.h hidio.c icoms.h inst.h inst.c insttypes.c insttypes.h insttypeinst.h dtp20.c dtp20.h dtp22.c dtp22.h dtp41.c dtp41.h dtp51.c dtp51.h dtp92.c dtp92.h ss.h ss.c ss_imp.h ss_imp.c i1disp.c i1disp.h i1d3.h i1d3.c i1pro.h i1pro.c i1pro_imp.h i1pro_imp.c munki.h munki.c munki_imp.h munki_imp.c hcfr.c hcfr.h huey.c huey.h colorhug.c colorhug.h spyd2.c spyd2.h spyd2setup.h spyd2PLD.h spyd2en.c i1d3ccss.c vinflate.c inflate.c LzmaDec.c LzmaDec.h LzmaTypes.h ntio.c unixio.c usbio.h usbio.c xdg_bds.c xdg_bds.h ../xicc/xspect.h ../xicc/xspect.c ../xicc/ccss.h ../xicc/ccss.c ../rspl/rspl1.h ../rspl/rspl1.c ../h/sort.h ../numlib/numsup.h ../numlib/numsup.c ../cgats/pars.h ../cgats/pars.c ../cgats/parsstd.c ../cgats/cgats.h ../cgats/cgats.c ../cgats/cgatsstd.c spotread.c" + + rm -f instlib.zip + rm -rf _zipdir +diff -wruN ../orig-Argyll_V1.3.5/spectro/insttypes.c ./spectro/insttypes.c +--- ../orig-Argyll_V1.3.5/spectro/insttypes.c 2011-10-24 14:10:27.000000000 +0200 ++++ ./spectro/insttypes.c 2012-01-11 21:56:05.116268005 +0100 +@@ -73,6 +73,8 @@ + return "Datacolor Spyder3"; + case instHuey: + return "GretagMacbeth Huey"; ++ case instColorHug: ++ return "Hughski ColorHug"; + default: + break; + } +@@ -124,6 +126,8 @@ + return instSpyder3; + else if (strcmp(name, "GretagMacbeth Huey") == 0) + return instHuey; ++ else if (strcmp(name, "Hughski ColorHug") == 0) ++ return instColorHug; + + return instUnknown; + } +@@ -183,6 +187,11 @@ + return instSpyder3; + } + ++ if (idVendor == 0x04d8) { /* Microchip */ ++ if (idProduct == 0xf8da) /* Hughski ColorHug */ ++ return instColorHug; ++ } ++ + /* Add other instruments here */ + + return instUnknown; +@@ -260,6 +269,8 @@ + case instHuey: + return 1; /* Not applicable */ + ++ case instColorHug: ++ return 1; /* Not applicable */ + + default: + break; +diff -wruN ../orig-Argyll_V1.3.5/spectro/insttypes.h ./spectro/insttypes.h +--- ../orig-Argyll_V1.3.5/spectro/insttypes.h 2011-10-24 14:10:26.000000000 +0200 ++++ ./spectro/insttypes.h 2012-01-11 21:56:05.116268005 +0100 +@@ -44,6 +44,7 @@ + instSpyder2, /* Datacolor/ColorVision Spyder2 */ + instSpyder3, /* Datacolor Spyder3 */ + instHuey, /* GretagMacbeth Huey */ ++ instColorHug, /* Hughski ColorHug */ + + } instType; + +diff -wruN ../orig-Argyll_V1.3.5/spectro/Jamfile ./spectro/Jamfile +--- ../orig-Argyll_V1.3.5/spectro/Jamfile 2011-10-24 14:10:26.000000000 +0200 ++++ ./spectro/Jamfile 2012-01-11 21:56:05.116268005 +0100 +@@ -69,7 +69,7 @@ + ../plot $(LIBUSBHDRS) $(CMMHDRS) ; + + # Instrument access library library +-Library libinst : inst.c insttypes.c dtp20.c dtp22.c dtp41.c dtp51.c dtp92.c i1disp.c i1d3.c i1pro.c i1pro_imp.c munki.c munki_imp.c ss.c ss_imp.c hcfr.c spyd2.c huey.c $(IOFILE) usbio.c hidio.c ; ++Library libinst : inst.c insttypes.c dtp20.c dtp22.c dtp41.c dtp51.c dtp92.c i1disp.c i1d3.c i1pro.c i1pro_imp.c munki.c munki_imp.c ss.c ss_imp.c hcfr.c spyd2.c huey.c colorhug.c $(IOFILE) usbio.c hidio.c ; + + # Display access library + Library libdisp : dispsup.c dispwin.c : : : $(LibWinH) ; diff --git a/argyllcms-1.0.2-legal.patch b/argyllcms-1.0.2-legal.patch new file mode 100644 index 0000000..9fd7153 --- /dev/null +++ b/argyllcms-1.0.2-legal.patch @@ -0,0 +1,662 @@ +diff -uNr Argyll_V1.0.1.orig/doc/ArgyllDoc.html Argyll_V1.0.1/doc/ArgyllDoc.html +--- Argyll_V1.0.1.orig/doc/ArgyllDoc.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/ArgyllDoc.html 2008-07-27 11:39:29.000000000 +0200 +@@ -18,7 +18,7 @@ + Author: Graeme Gill +

Introduction

+ Argyll is an open source, ICC compatible color management +-system. It supports accurate ICC profile creation for scanners, CMYK ++system. It supports accurate ICC profile creation for acquisition devices, CMYK + printers, + film recorders and calibration and profiling of displays. + Spectral sample data is supported, +diff -uNr Argyll_V1.0.1.orig/doc/chartread.html Argyll_V1.0.1/doc/chartread.html +--- Argyll_V1.0.1.orig/doc/chartread.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/chartread.html 2008-07-27 11:40:27.000000000 +0200 +@@ -206,7 +206,7 @@ +
+ Normally the patch locations are not needed in the + output, but if a chart is being read as an input reference (for use in +-profiling a scanner or a camera), then the patch locations will still ++profiling an acquisition device), then the patch locations will still + be needed. The -a flag adds + the locations to the output .ti3 file.
+
+diff -uNr Argyll_V1.0.1.orig/doc/colprof.html Argyll_V1.0.1/doc/colprof.html +--- Argyll_V1.0.1.orig/doc/colprof.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/colprof.html 2008-07-27 11:41:01.000000000 +0200 +@@ -617,8 +617,8 @@ + absolute value, and any values whiter than that, will not be clipped by + the profile. The profile effectively operates in an absolute intent + mode,  irrespective of what intent is selected when it is used. +-This flag can be useful when an input profile is needed for using a +-scanner as a "poor mans" colorimeter, or if the white point of the test ++This flag can be useful when an input profile is needed for using an ++acquisition device as a "poor mans" colorimeter, or if the white point of the test + chart doesn't represent the white points of media + that will be used in practice, and that white point adjustment will be + done individually in some downstream application.
+diff -uNr Argyll_V1.0.1.orig/doc/Installing_Linux.html Argyll_V1.0.1/doc/Installing_Linux.html +--- Argyll_V1.0.1.orig/doc/Installing_Linux.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/Installing_Linux.html 2008-07-27 11:42:29.000000000 +0200 +@@ -30,7 +30,7 @@ + variable to give access to the executables from your command line + environment. + The .tgz file also contains several useful reference files (such as +-scanner ++acquisition device + chart recognition templates, sample illumination spectrum etc.) in the + ref sub-directory, as + well +diff -uNr Argyll_V1.0.1.orig/doc/Installing_MSWindows.html Argyll_V1.0.1/doc/Installing_MSWindows.html +--- Argyll_V1.0.1.orig/doc/Installing_MSWindows.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/Installing_MSWindows.html 2008-07-27 11:42:50.000000000 +0200 +@@ -69,7 +69,7 @@ +
+ The .zip file also contains several useful reference files + (such as +-scanner ++acquisition device + chart recognition templates, sample illumination spectrum etc.) in the + ref sub-directory, all the current documentation in a doc + sub-directory, and instrument USB drivers in the libusbw directory.
+diff -uNr Argyll_V1.0.1.orig/doc/Installing_OSX.html Argyll_V1.0.1/doc/Installing_OSX.html +--- Argyll_V1.0.1.orig/doc/Installing_OSX.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/Installing_OSX.html 2008-07-27 11:39:58.000000000 +0200 +@@ -30,7 +30,7 @@ + with how to do this, consult an appropriate tutorial, e.g. <ShellIntro>. + The .tgz file also contains several useful reference files (such as +-scanner chart recognition templates, sample illumination spectrum ++acquisition device chart recognition templates, sample illumination spectrum + etc.) in the ref sub-directory, as well as + all the current documentation in a doc sub-directory.
+
+diff -uNr Argyll_V1.0.1.orig/doc/Organisation.html Argyll_V1.0.1/doc/Organisation.html +--- Argyll_V1.0.1.orig/doc/Organisation.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/Organisation.html 2008-07-27 11:36:55.000000000 +0200 +@@ -13,7 +13,7 @@ + This directory contains routines that generate calibration test charts, + based + on various distribution algorithms suitable for +-reading using an Xrite DTP51 or DTP41 colorimeter, or scanner for print ++reading using an Xrite DTP51 or DTP41 colorimeter, or acquisition device for print + charts, + the Gretag Spectrolino for film charts, or the Xrite DTP92 pr DTP94 for + monitor +diff -uNr Argyll_V1.0.1.orig/doc/printtarg.html Argyll_V1.0.1/doc/printtarg.html +--- Argyll_V1.0.1.orig/doc/printtarg.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/printtarg.html 2008-07-27 11:36:27.000000000 +0200 +@@ -167,7 +167,7 @@ + file, and a .ti2 file containing the device test values together with + the layout information needed to identify the patch location. This + module can also generate the image recognition templates needed to read +-the print targets in using a scanner.
++the print targets in using an acquisition device.
+
+ The -v flag turns on verbose mode. Prints + information about how many patches there are in a row, how many patches +diff -uNr Argyll_V1.0.1.orig/doc/scanin.html Argyll_V1.0.1/doc/scanin.html +--- Argyll_V1.0.1.orig/doc/scanin.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/scanin.html 2008-07-27 11:34:18.000000000 +0200 +@@ -23,7 +23,7 @@ + recogin.cht + valin.cie [diag.tif]
+    :- inputs +-'input.tif',  and outputs scanner ++'input.tif',  and outputs device + 'input.ti3', or
+
+ usage                   + Replace device values in .ti3
+                       +-Default is to create a scanner .ti3 file
++Default is to create a device .ti3 file
+
 -F x1,y1,x2,y2,x3,y3,x4,y4
+@@ -187,10 +187,10 @@ + of the chart are visible within the image, and if the image is cropped + to exclude the chart edges, it may well not recognize the chart + properly. It is designed to cope with a variety of resolutions, and +-will cope with some degree of noise in the scan (due to screening ++will cope with some degree of noise in the acquisition (due to screening + artefacts on the original, or film grain), but it isn't really designed + to accept very high resolution input. For anything over 600DPI, you +-should consider down sampling the scan using a filtering downsample, ++should consider down sampling the image using a filtering downsample, + before submitting the file to scanin.
+
+ There are 5 basic modes that scanin operates in.
+@@ -199,7 +199,7 @@ + assumed to be parsing an input device characterization chart (ie. an + IT8.7/2 chart), for the purpose of creating a .ti3 data file containing +-the CIE test values and the corresponding RGB scanner values. The .ti3 file can then be used for + creating + an input profile using colprof. The file +@@ -221,7 +221,7 @@ + file in + this situation, should be a good quality image, perhaps synthetically + generated +-(rather than being scanned), and perfectly oriented, to make ++(rather than being parsed), and perfectly oriented, to make + specification + of the patch locations easier. The file arguments are: The + TIFF file that +@@ -245,7 +245,7 @@ + input devices to be used as a crude replacement for a color measuring + instrument. The icc profile has + (presumably) been +-created by scanning an IT8.7/2 chart (or similar) through the RGB input ++created with an image of a IT8.7/2 chart (or similar) through the RGB input + device, + and + then using scanin to create the .ti3 file needed to feed to colprof to +@@ -267,7 +267,7 @@ + The resulting .ti3 file will have the same base name as the input TIFF + file. + If there is more than one page in the test chart, then scanin will need +-to be run multiple times, once for each scan file made from each test ++to be run multiple times, once for each image file made from each test + chart. The -ca flag combination should be + used + for all pages after the first, +@@ -339,7 +339,7 @@ +
+ By default the automatic chart recognition copes with + rotation, scale and stretch in the chart image, making it suitable for +-charts that have been scanned, or shot squarely with a camera. If a ++charts that have been acquired, or shot squarely with a camera. If a + chart has been shot not exactly facing the camera (perhaps to avoid + reflection, or to get more even lighting), then it will suffer from + perspective distortion as well. The Normally scanin computes an average of the pixel values + within a sample square, using a "robust" mean, that discards pixel + values that are too far from the average ("outlier" pixel values). This +-is done in an attempt to discard value that are due to scanning ++is done in an attempt to discard value that are due to acquisition + artefacts such as dust, scratches etc. You can force scanin to return + the true mean values for the sample squares that includes all the pixel + values, by using the -m flag.
+@@ -357,9 +357,9 @@ + Normally scanin has reasonably robust feature + recognition, but the default assumption is that the input chart has an + approximately even visual distribution of patch values, and has been +-scanned and converted to a typical gamma 2.2 corrected image, meaning ++acquired and converted to a typical gamma 2.2 corrected image, meaning + that the average patch pixel value is expected to be about 50%. If this +-is not the case (for instance if the input chart has been scanned with ++is not the case (for instance if the input chart has been processed with + linear light or "raw" encoding), then it may enhance the image + recognition to provide the approximate gamma encoding of the image. For + instance, if linear light encoding ("Raw") is used, a Installing a + display profile +


+-Profiling Scanners

++Profiling Acquisition Devices +

    Types of test charts

+-

    Taking readings from a scanner

+-

    Creating a scanner profile

++

    Taking readings from an acquisition device

++

    Creating an acquisition device profile

+


+ Profiling Printers

+

    Creating a print test chart

+

    Reading a print test chart + using an instrument

+

    Reading a print test chart +-using a scanner

++using an acquisition device +

+

    Creating a printer profile
+

+@@ -353,14 +353,14 @@ + the connected display.
+
+
+-

Profiling Scanners

+-Because a scanner is an input device, it is necessary to go about ++

Profiling Acquisition Devices

++Because a acquisition device is an input device, it is necessary to go about + profiling it in quite a different way to an output device. To profile +-it, a test chart is needed to exercise the scanner response, to which ++it, a test chart is needed to exercise the device response, to which + the CIE values for each test patch is known. Generally standard + reflection or transparency test charts are used for this purpose.
+

Types of test charts

+-The most common and popular test chart for scanner profiling is the ++The most common and popular test chart for acquisiton device profiling is the + IT8.7/2 chart. This is a standard format chart generally reproduced on + photographic film, containing about 264 test patches. The Kodak Q-60 + Color Input Target is a typical example:
+@@ -400,18 +400,18 @@ + CMP_DT_003
+
+-

Taking readings from a scanner

+-The test chart you are using needs to be placed on the scanner, and the +-scanner needs to be configured to a suitable state, and restored to ++

Taking readings from an acquisition device

++The test chart you are using needs to be exposed to the device, and the ++acquisition device needs to be configured to a suitable state, and restored to + that + same state when used subsequently with the resulting profile. The chart + should + be scanned, and saved to a TIFF format file. I will assume the + resulting +-file is called scanner.tif. The raster file need only be roughly ++file is called device.tif. The raster file need only be roughly + cropped so as to contain the test chart (including the charts edges).
+
+-The second step is to extract the RGB values from the scanner.tif file, ++The second step is to extract the RGB values from the device.tif file, + and match then to the reference CIE values. + To locate the patch values in the scan, the scanin utility + needs to +@@ -485,32 +485,32 @@ + chart recognition template file will need to be created (this is beyond + the scope of the current documentation).
+
+-To create the scanner .ti3 file, run the scanin utility as ++To create the device .ti3 file, run the scanin utility as + follows + (assuming an IT8 chart is being used):
+
+- scanin -v scanner.tif It8.cht It8ref.txt
++ scanin -v device.tif It8.cht It8ref.txt
+
+ "It8ref.txt" is assumed to be the name of the CIE reference file +-supplied by the chart manufacturer. The resulting file will be named "scanner.ti3".
++supplied by the chart manufacturer. The resulting file will be named "device.ti3".
+
+ scanin will process 16 bit per +-component .tiff files, which (if the scanner is capable of creating ++component .tiff files, which (if the device is capable of creating + such files),  may improve the quality of the profile.
+
+ If you have any doubts about the correctness of the chart recognition, + or the subsequent profile's delta E report is unusual, then use the + scanin diagnostic flags -dipn and examine + the diag.tif diagnostic file.
+-

Creating a scanner profile

+-Similar to a display profile, a scanner profile can be either a +-shaper/matrix or LUT based profile. Well behaved scanners will ++

Creating an acquisition device profile

++Similar to a display profile, an acquisition device profile can be either a ++shaper/matrix or LUT based profile. Well behaved devices will + probably give the best results + with a shaper/matrix profile, but if the fit is poor, consider using a + LUT + type profile.
+
+-If the purpose of the scanner profile is to use it as a substitute for ++If the purpose of the device profile is to use it as a substitute for + a + colorimeter, then the -u flag should be used to avoid clipping + values above the white point. Unless the shaper/matrix type profile is +@@ -520,24 +520,24 @@ + To create a matrix/shaper profile, the following suffices:
+
+ colprof -v -D"Scanner A" -D"Device A" -qm -as +-scanner
++device
+
+ For a LUT based profile then the following would be used:
+
+ colprof -v -D"Scanner A" ++ href="colprof.html#E">-D"Device A" + -qm +-scanner
++device
+
+ For the purposes of a poor mans colorimeter, the following would + generally be used:
+
+ colprof -v -D"Scanner A" ++ href="colprof.html#E">-D"Device A" + -qm -u +-scanner
++device
+
+ Make sure you check the delta E report at the end of the profile + creation, to see if the profile is behaving reasonably.
+@@ -703,7 +703,7 @@ + -ii1 -pA4 + PrinterA
+
+-For using with a scanner as a colorimeter, the Gretag Spectroscan ++For using with an acquisition device as a colorimeter, the Gretag Spectroscan + layout is suitable, but the -s flag + should be used so as to generate a layout suitable for scan + recognition, as well as generating the scan recognition template +@@ -804,28 +804,27 @@ + for each type of instrument. Continue with Creating + a printer profile.
+
+-

Reading a print test chart using a scanner or +-camera
++

Reading a print test chart using an acquisition device
+

+
+-Argyll supports using a scanner or even a camera as a substitute for a ++Argyll supports using any acquisition device as a substitute for a + colorimeter. +-While a scanner or camera is no replacement for a color measurement ++While most are no replacement for a color measurement + instrument, it may give acceptable results in some situations, and may + give better results than a generic profile for a printing device.
+
+-The main limitation of the scanner-as-colorimeter approach are:
++The main limitation of the any-device-as-colorimeter approach are:
+
+-* The scanner dynamic range and/or precision may not match the printers ++* The acquisition device dynamic range and/or precision may not match the printers + or what is required for a good profile.
+-* The spectral interaction of the scanner test chart and printer test +-chart with the scanner ++* The spectral interaction of the device test chart and printer test ++chart with the device + spectral response can cause color errors.
+ * Spectral differences caused by different black amounts in the print + test chart can cause + color errors.
+ * The IT8 chart gamut may be so much smaller than the printers that the +-scanner profile is too inaccurate.
++acquisition device profile is too inaccurate.
+
+ As well as some of the above, a camera may not be suitable if it + automatically adjusts exposure or white point when taking a picture, +@@ -834,23 +833,23 @@ + The end result is often a profile that has a slight color cast to, + compared to a profile created using a colorimeter or spectrometer..
+
+-It is assumed that you have created a scanner or camera profile ++It is assumed that you have created an acquisition device profile + following the procedure + outline above. For best possible results it +-is advisable to both profile the scanner or camera, and use it in ++is advisable to both profile the acquisition device, and use it in + scanning the + printed test chart, in as "raw" mode as possible (i.e. using 16 bits +-per component images, if the scanner or camera is ++per component images, if the acquisition device is + capable of doing so; not setting white or black points, using a fixed + exposure etc.). It is + generally advisable to create a LUT type input profile, and use the -u flag to + avoid clipping scanned value whiter than the input calibration chart.
+
+-Scan or photograph your printer chart (or charts) on the scanner or +-camera previously profiled. ++Scan or photograph your printer chart (or charts) on the acquisition device ++previously profiled. + The +-scanner or camera must be configured and used exactly the same as it ++acquisition device must be configured and used exactly the same as it + was when it + was profiled.
+
+@@ -858,21 +857,21 @@ + style="font-weight: bold;">PrinterB.tif
(or PrinterB1.tif, PrinterB2.tif etc. in the case of +-multiple charts). As with profiling the scanner or camera, the raster ++multiple charts). As with profiling the acquisition device, the raster + file need + only be roughly cropped so as to contain the test chart.
+
+-The scanner recognition files ++The acquisition device recognition files + created when printtarg was run + is assumed to be called PrinterB.cht. +-Using the scanner profile created previously (assumed to be called scanner.icm), the printer test chart ++Using the device profile created previously (assumed to be called device.icm), the printer test chart + scan patches are converted to CIE values using the scanin utility:
+
+ scanin -v -c PrinterB.tif +-PrinterB.cht scanner.icm ++PrinterB.cht device.icm + PrinterB
+
+ If there were multiple test chart pages, the results would be +@@ -881,15 +880,15 @@ +
+ scanin -v -c PrinterB1.tif +-PrinterB1.cht scanner.icm ++PrinterB1.cht device.icm + PrinterB
+ scanin -v -ca PrinterB2.tif +-PrinterB2.cht scanner.icm ++PrinterB2.cht device.icm + PrinterB
+ scanin -v -ca PrinterB3.tif +-PrinterB3.cht scanner.icm ++PrinterB3.cht device.icm + PrinterB
+
+ Now that the PrinterB.ti3 data +diff -uNr Argyll_V1.0.1.orig/doc/targen.html Argyll_V1.0.1/doc/targen.html +--- Argyll_V1.0.1.orig/doc/targen.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/targen.html 2008-07-27 11:53:34.000000000 +0200 +@@ -615,7 +615,7 @@ +       3 x Letter   1386
+       4 x Letter   1848
+
+-  Scanner (printtarg with -iSS -s options):
++  Acquisition device (printtarg with -iSS -s options):
+
+        1 x A4R      1014
+        2 x A4R      2028
+diff -uNr Argyll_V1.0.1.orig/doc/ti3_format.html Argyll_V1.0.1/doc/ti3_format.html +--- Argyll_V1.0.1.orig/doc/ti3_format.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/ti3_format.html 2008-07-27 11:42:04.000000000 +0200 +@@ -173,7 +173,7 @@ + or "RGB_LAB" for an RGB printer + or display, "CMYK_XYZ" for a + printer, "XYZ_RGB" for an RGB +-scanner.
++acquisition device.
+
+ If spectral values are going to be included in the file, the following + keywords and values shall be used:
+diff -uNr Argyll_V1.0.1.orig/doc/ucmm.html Argyll_V1.0.1/doc/ucmm.html +--- Argyll_V1.0.1.orig/doc/ucmm.html 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/doc/ucmm.html 2008-07-27 11:41:27.000000000 +0200 +@@ -13,7 +13,7 @@ + designed just to handle the necessary configuration needed to track the + installation and association of ICC profiles with Unix/Linux X11 + displays. It could be expanded at some point to also hold the +-associations for other devices such as scanner and printers.
++associations for other devices such as acquisition devices and printers.
+
+ It consists primarily of a small configuration database that associates + a display monitor (identified by its EDID or the X11 display name if an +diff -uNr Argyll_V1.0.1.orig/log.txt Argyll_V1.0.1/log.txt +--- Argyll_V1.0.1.orig/log.txt 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/log.txt 2008-07-27 11:35:38.000000000 +0200 +@@ -1648,7 +1648,7 @@ + + * Added shaper/matrix input profile support. + (profile/profin.c, xicc/xmatrix.c) +- This may be more accurate for scanner profiles, ++ This may be more accurate for device profiles, + given the poor coverage of test points provided + by an IT8 chart (but doesn't appear to be in practice). + +@@ -1659,7 +1659,7 @@ + + * Added support in scanin.c and scanrd.c for + using a scan of a print test chart, plus a +- profile for the scanner, to be able to measure ++ profile for the device, to be able to measure + color for printer calibration. This + new mode handles multi-page test charts. + +@@ -1689,13 +1689,13 @@ + patch spacer contrast determination. + Also added an XYZ to sRGB conversion + function to support RGB previews of N color +- devices, as well as scanner recognition template files. ++ devices, as well as device recognition template files. + + * Expanded xicc/xcolorants.c to incorporate + an approximate device model for arbitrary + colorant combinations. This is used to + be able to approximate expected density readings, +- as well as preview colors and scanner recognition templates. ++ as well as preview colors and device recognition templates. + + * Create a new test point creation module, + target/simplat.c, to create higher dimentional, +@@ -1793,7 +1793,7 @@ + + * Added preliminary support in printtarg for the SpectroScan + spectrodensitometer. Also added preliminary support for +- scanner recognisable test charts. ++ device recognisable test charts. + + * Added option to icclink to turn off the use of linearisation + curves in the output link, since this sometimes seems to +@@ -1960,7 +1960,7 @@ + Cleaned up build automation somewhat. + + Added RGB output device profile generation support. +- Added RGB scanner device profile generation support. ++ Added RGB device profile generation support. + + Added a couple of spectrometer conversion utilities for + raw data files from other CMSs. +diff -uNr Argyll_V1.0.1.orig/profile/profcheck.c Argyll_V1.0.1/profile/profcheck.c +--- Argyll_V1.0.1.orig/profile/profcheck.c 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/profile/profcheck.c 2008-07-27 11:54:01.000000000 +0200 +@@ -360,7 +360,7 @@ + devchan = 3; + isLab = 1; + isAdditive = 1; +- /* Scanner .ti3 files: */ ++ /* Acquisition Device .ti3 files: */ + } else if (strcmp(icg->t[0].kdata[ti],"XYZ_RGB") == 0) { + devspace = icSigRgbData; + devchan = 3; +diff -uNr Argyll_V1.0.1.orig/profile/profin.c Argyll_V1.0.1/profile/profin.c +--- Argyll_V1.0.1.orig/profile/profin.c 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/profile/profin.c 2008-07-27 11:53:08.000000000 +0200 +@@ -49,7 +49,7 @@ + /* + Basic algorithm outline: + +- Scanner: ++ Acquisition Device: + + Figure out the input curves to give + the flattest grid. +diff -uNr Argyll_V1.0.1.orig/scanin/scanin.c Argyll_V1.0.1/scanin/scanin.c +--- Argyll_V1.0.1.orig/scanin/scanin.c 2008-07-27 11:18:53.000000000 +0200 ++++ Argyll_V1.0.1/scanin/scanin.c 2008-07-27 11:26:37.000000000 +0200 +@@ -2,7 +2,7 @@ + /* + * Argyll Color Correction System + * +- * Scanin: Input the scan of a test chart, and output cgats data ++ * Scanin: Input the image of a test chart, and output cgats data + * Uses scanrd to do the hard work. + * + * Author: Graeme W. Gill +@@ -72,7 +72,7 @@ + fprintf(stderr,"Author: Graeme W. Gill, licensed under the GPL Version 3\n"); + fprintf(stderr,"\n"); + fprintf(stderr,"usage: scanin [options] input.tif recogin.cht valin.cie [diag.tif]\n"); +- fprintf(stderr," :- inputs 'input.tif' and outputs scanner 'input.ti3', or\n"); ++ fprintf(stderr," :- inputs 'input.tif' and outputs device 'input.ti3', or\n"); + fprintf(stderr,"\n"); + fprintf(stderr,"usage: scanin -g [options] input.tif recogout.cht [diag.tif]\n"); + fprintf(stderr," :- outputs file 'recogout.cht', or\n"); +@@ -92,7 +92,7 @@ + fprintf(stderr," -ca Same as -c, but accumulates more values to .ti3\n"); + fprintf(stderr," from subsequent pages\n"); + fprintf(stderr," -r Replace device values in .ti2/.ti3\n"); +- fprintf(stderr," Default is to create a scanner .ti3 file\n"); ++ fprintf(stderr," Default is to create a device .ti3 file\n"); + fprintf(stderr," -F x1,y1,x2,y2,x3,y3,x4,y4\n"); + fprintf(stderr," Don't auto recognize, locate using four fiducual marks\n"); + fprintf(stderr," -p Compensate for perspective distortion\n"); +@@ -127,12 +127,12 @@ + static char datin_name[200] = { 0 }; /* Data input name (.cie/.q60) */ + static char datout_name[200] = { 0 }; /* Data output name (.ti3/.val) */ + static char recog_name[200] = { 0 }; /* Reference chart name (.cht) */ +- static char prof_name[200] = { 0 }; /* scanner profile name (.cht) */ ++ static char prof_name[200] = { 0 }; /* device profile name (.cht) */ + static char diag_name[200] = { 0 }; /* Diagnostic Output (.tif) name, if used */ + int verb = 1; + int tmean = 0; /* Return true mean, rather than robust mean */ + int repl = 0; /* Replace .ti3 device values from raster file */ +- int outo = 0; /* Output the values read, rather than creating scanner .ti3 */ ++ int outo = 0; /* Output the values read, rather than creating device .ti3 */ + int colm = 0; /* Use inage values to measure color for print profile. > 1 == append */ + int flags = SI_GENERAL_ROT; /* Default allow all rotations */ + +@@ -153,7 +153,7 @@ + scanrd *sr; /* Scanrd object */ + int err; + char *errm; +- int pnotscan = 0; /* Number of patches that wern't scanned */ ++ int pnotscan = 0; /* Number of patches that weren't processed */ + + if (argc <= 1) + usage(); +diff -uNr Argyll_V1.0.1.orig/target/printtarg.c Argyll_V1.0.1/target/printtarg.c +--- Argyll_V1.0.1.orig/target/printtarg.c 2008-07-27 11:18:52.000000000 +0200 ++++ Argyll_V1.0.1/target/printtarg.c 2008-07-27 11:37:20.000000000 +0200 +@@ -3252,7 +3252,7 @@ + } + + /******************************************************************/ +-/* Edge tracking support, for generating the scanner image */ ++/* Edge tracking support, for generating the device image */ + /* recognition reference chart file. */ + + /* Establish width and height to convert between topleft and */ +diff -uNr Argyll_V1.0.1.orig/ttbd.txt Argyll_V1.0.1/ttbd.txt +--- Argyll_V1.0.1.orig/ttbd.txt 2008-07-27 11:18:54.000000000 +0200 ++++ Argyll_V1.0.1/ttbd.txt 2008-07-27 11:54:46.000000000 +0200 +@@ -123,7 +123,7 @@ + + * Should create a .ti2 template file for some standard charts, + such as an IT8.7/3, ECI2002 random and non-random etc. +- Scanner recognition files too ?? ++ Device recognition files too ?? + + * Add an option to targen, that allows generation of + test points down the neutral axis (how does this work +@@ -293,7 +293,7 @@ + patch variance is too high (probable faulty read). + + * Add spectral fix options to scanin code to allow compensation +- for scanner and media errors when using a scanned image to ++ for device and media errors when using an acquired image to + measure color. + This means figuring out how it will work, as well as creating + to tools to create the spectral fix data (or just add general diff --git a/argyllcms-1.3.0-udev151.patch b/argyllcms-1.3.0-udev151.patch new file mode 100644 index 0000000..ca3f711 --- /dev/null +++ b/argyllcms-1.3.0-udev151.patch @@ -0,0 +1,17 @@ +diff -up Argyll_V1.3.0/libusb1/55-Argyll.rules.udev151 Argyll_V1.3.0/libusb1/55-Argyll.rules +--- Argyll_V1.3.0/libusb1/55-Argyll.rules.udev151 2010-09-23 11:42:00.784827088 +0200 ++++ Argyll_V1.3.0/libusb1/55-Argyll.rules 2010-09-23 11:42:10.586231594 +0200 +@@ -43,12 +43,6 @@ ATTRS{idVendor}=="085c", ATTRS{idProduct + # Huey + ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2005", ENV{COLOR_MEASUREMENT_DEVICE}="1" + +-# Let udev-acl and ConsoleKit manage these devices, if applicable +-TEST=="/lib/udev/udev-acl", TEST=="/var/run/ConsoleKit/database", ENV{COLOR_MEASUREMENT_DEVICE}=="*?", ENV{ACL_MANAGE}="1" +- +-# Otherwise, restrict access to members of the plugdev group +-ENV{COLOR_MEASUREMENT_DEVICE}=="*?", ENV{ACL_MANAGE}!="*?", MODE="660", GROUP="plugdev" +- + # Set ID_VENDOR and ID_MODEL acording to VID and PID + IMPORT{program}="usb-db %p" + +diff -up Argyll_V1.3.0/libusb/55-Argyll.rules.udev151 Argyll_V1.3.0/libusb/55-Argyll.rules diff --git a/argyllcms.changes b/argyllcms.changes new file mode 100644 index 0000000..9f5ae1e --- /dev/null +++ b/argyllcms.changes @@ -0,0 +1,80 @@ +------------------------------------------------------------------- +Wed Jan 11 20:00:46 UTC 2012 - kkaempf@suse.com + +- Update to 1.3.5 +- add Argyll_V1.3.5_autotools.patch covering new files to compile +- add 0001-Add-an-experimental-ColorHug-sensor-driver.patch to + support 'colorhug' from http://hughski.com (experimental) + +------------------------------------------------------------------- +Mon Nov 8 10:33:27 UTC 2010 - fcrozat@novell.com + +- Release 1.3.2 (bug fixes) +- remove argyllcms-1.3.0-include.patch (merged upstream) + +------------------------------------------------------------------- +Thu Sep 23 12:03:40 UTC 2010 - fcrozat@novell.com + +- argyllcms-1.3.0-udev151.patch: remove all ACL management from + udev rules, it is handled by udev package itself (Mandriva) +- argyllcms-1.3.0-include.patch : fix missing includes + +------------------------------------------------------------------- +Sun Sep 12 18:17:03 UTC 2010 - fcrozat@novell.com + +- Release 1.3.0 +- remove patches argyllcms-1.1.0-bufferoverflow.patch, + argyllcms-1.1.0-void.patch, argyllcms-1.1.0-strfmt.patch (merged + upstream) + +------------------------------------------------------------------- +Mon Aug 9 16:30:57 UTC 2010 - fcrozat@novell.com + +- Update patch1 with new version from Roland, merging patch10 in it + +------------------------------------------------------------------- +Mon Aug 9 15:58:06 UTC 2010 - fcrozat@novell.com + +- Update to 1.2.1 +- move back icclib to argyllcms, upstream release are not so frequent as Argyllcms one +- Patch10: allow to use (or not) system icclib +- update patches 8 and 9 with new fixes + +------------------------------------------------------------------- +Thu Aug 5 16:21:44 UTC 2010 - fcrozat@novell.com + +- Update to latest release and move icclib to a separate package +------------------------------------------------------------------ + +Mon Apr 20 08:34:10 CET 2009 - Vladimir Nadvornik +- ported to openSUSE + +------------------------------------------------------------------- +Mon Mar 23 08:34:10 CET 2009 - Ron Ciesla +- Patch for ICC library CVE-2009-{0583, 0584} by Tim Waugh. + +------------------------------------------------------------------- +Mon Feb 23 00:12:29 CET 2009 - Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild +* Wed Sep 3 2008 Nicolas Mailhot +- 1.0.3-1 +* Mon Sep 1 2008 Nicolas Mailhot +- 1.0.2-1 +* Sun Jul 27 2008 Nicolas Mailhot +- 1.0.1-1 +* Wed Mar 26 2008 Tom "spot" Callaway +- patch applied for legal reasons +* Thu Feb 8 2008 Nicolas Mailhot +- 0.70-0.8.Beta9 +- 0.70-0.8.Beta8 +* Thu Feb 7 2008 Nicolas Mailhot +- 0.70-0.7.Beta8 +* Thu Dec 14 2007 Nicolas Mailhot +- 0.70-0.6.Beta7 +- 0.70-0.5.Beta7 +* Thu Dec 13 2007 Nicolas Mailhot +- 0.70-0.4.Beta7 +* Wed Dec 12 2007 Nicolas Mailhot +- 0.70-0.3.Beta7 +- 0.70-0.2.Beta7 +- 0.70-0.1.Beta7 diff --git a/argyllcms.spec b/argyllcms.spec new file mode 100644 index 0000000..9910745 --- /dev/null +++ b/argyllcms.spec @@ -0,0 +1,171 @@ +#define alphaversion Beta8 +#define alphatag .%{alphaversion} + +%define archivename Argyll_V%{version}%{?alphaversion}_src.zip + +Name: argyllcms +Version: 1.3.5 +Release: 1 +Summary: ICC compatible color management system + +Group: System/X11/Utilities +License: GPLv3 and MIT +URL: http://www.%{name}.com/ + +Source0: %{url}%{archivename} +Source1: 19-color.fdi +Source2: color-device-file.policy +# Many thanks to Alastair M. Robinson and Roland Mas (debian) +Patch1: Argyll_V1.3.0_autotools.patch +# new and changed files in 1.3.5 +Patch2: Argyll_V1.3.5_autotools.patch +# Patch applied for legal reasons +Patch4: argyllcms-1.0.2-legal.patch +# drop udev-acl stuff, handled by udev directly (Mandriva) +Patch5: argyllcms-1.3.0-udev151.patch +# add support for colorhug (http://hughski.com) +Patch6: ColorHug-sensor-driver.patch + +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +BuildRequires: libtiff-devel unzip +BuildRequires: xorg-x11-devel + +BuildRequires: udev +Requires: udev +%if %suse_version < 1120 +BuildRequires: hal +Requires: hal +%endif + +%description +The Argyll color management system supports accurate ICC profile creation for +scanners, CMYK printers, film recorders and calibration and profiling of +displays. + +Spectral sample data is supported, allowing a selection of illuminants observer +types, and paper fluorescent whitener additive compensation. Profiles can also +incorporate source specific gamut mappings for perceptual and saturation +intents. Gamut mapping and profile linking uses the CIECAM02 appearance model, +a unique gamut mapping algorithm, and a wide selection of rendering intents. It +also includes code for the fastest portable 8 bit raster color conversion +engine available anywhere, as well as support for fast, fully accurate 16 bit +conversion. Device color gamuts can also be viewed and compared using a VRML +viewer. + + +%package doc +Summary: Argyll CMS documentation +Group: System/X11/Utilities +# Does not really make sense without Argyll CMS itself +Requires: %{name} = %{version}-%{release} + +%description doc +The Argyll color management system supports accurate ICC profile creation for +scanners, CMYK printers, film recorders and calibration and profiling of +displays. + +This package contains the Argyll color management system documentation. + +%package -n libicc2 +Summary: Libraries for icclib +Group: System/Libraries + +%description -n libicc2 +The icclib is a set of routines which implement the reading and +writing of color profile files that conform to the International +Color Consortium (ICC) Profile Format Specification, Version 3.4. + +%package -n libicc-devel +Summary: Development libraries, header files for icclib +Group: Development/Libraries/C and C++ +Requires: libicc2 = %{version} + +%description -n libicc-devel +The icclib is a set of routines which implement the reading and +writing of color profile files that conform to the International +Color Consortium (ICC) Profile Format Specification, Version 3.4. + + +%prep +%setup -q -n Argyll_V%{version} +# Autotools support +%patch1 -p1 -b .auto +%patch2 -p1 +# Legal patch required +#patch4 -p1 -b .legal +%if %suse_version >= 1120 +%patch5 -p1 -b .udev151 +%if %suse_version >= 1140 +# colorhug is for openSUSE >= 11.4 only +%patch6 -p1 +%endif +%endif + +#needed by patches 1 +autoreconf -i + +%build +%configure +make + + +%install +make install DESTDIR=%{buildroot} + +# remove unpackaged files +rm -f %{buildroot}/%{_libdir}/argyll/*.{la,a,so} %{buildroot}/%{_libdir}/*.{la,a} + +%if %suse_version < 1120 +# Do some device permission magic +install -d -m 0755 %{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/ +install -p -m 0644 %{SOURCE1} \ + %{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/ + +install -d -m 0755 %{buildroot}%{_datadir}/PolicyKit/policy/ +install -p -m 0644 %{SOURCE2} \ + %{buildroot}%{_datadir}/PolicyKit/policy/ +%else +install -d -m 0755 %{buildroot}%{_sysconfdir}/udev/rules.d +install -p -m 0644 libusb1/55-Argyll.rules \ + %{buildroot}%{_sysconfdir}/udev/rules.d +%endif + + +%clean +rm -rf %{buildroot} + +%post -n libicc2 -p /sbin/ldconfig +%postun -n libicc2 -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc *.txt + +%{_bindir}/* +%{_libdir}/argyll +%dir %{_datadir}/color +%{_datadir}/color/argyll + +%if %suse_version < 1120 +%{_datadir}/hal/fdi/policy/10osvendor/19-color.fdi +%{_datadir}/PolicyKit/policy/color-device-file.policy +%else +%{_sysconfdir}/udev/rules.d/55-Argyll.rules +%endif + +%exclude %{_datadir}/doc + +%files doc +%defattr(-,root,root,-) +%doc doc/*.html doc/*.jpg doc/*.txt + +%files -n libicc2 +%defattr(-,root,root,-) +%{_libdir}/*.so.2* + +%files -n libicc-devel +%defattr(-,root,root,-) +%{_libdir}/*.so +%{_includedir}/* + +%changelog diff --git a/color-device-file.policy b/color-device-file.policy new file mode 100644 index 0000000..ccd7007 --- /dev/null +++ b/color-device-file.policy @@ -0,0 +1,15 @@ + + + + + + Directly access color meter devices + System policy prevents access to the color meter devices + + no + yes + + +