Hello community, here is the log from the commit of package compicc for openSUSE:Factory checked in at 2012-11-21 15:09:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/compicc (Old) and /work/SRC/openSUSE:Factory/.compicc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "compicc", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/compicc/compicc.changes 2012-06-12 07:07:43.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.compicc.new/compicc.changes 2012-11-21 15:09:27.000000000 +0100 @@ -1,0 +2,7 @@ +Fri Nov 02 12:00:00 UTC 2012 - [email protected] + +- 0.8.6 release +- update to Oyranos 0.9 +- bug fixes + +------------------------------------------------------------------- Old: ---- compicc-0.8.5.tar.gz New: ---- compicc-0.8.6.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ compicc.spec ++++++ --- /var/tmp/diff_new_pack.Q3ao2o/_old 2012-11-21 15:09:28.000000000 +0100 +++ /var/tmp/diff_new_pack.Q3ao2o/_new 2012-11-21 15:09:28.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package compiz +# spec file for package compicc # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -17,21 +17,21 @@ Name: compicc -Version: 0.8.5 -Source: compicc-0.8.5.tar.gz +Version: 0.8.6 Release: 0 -License: BSD-3-Clause +Source: compicc-0.8.6.tar.bz2 Url: http://sourceforge.net/projects/compicc -Group: Productivity/Graphics/Other %define icondir /usr/share/ccsm/icons/hicolor/scalable/apps/ Summary: Compiz ICC Colour Management Server -BuildRoot: %{_tmppath}/%{name}-root +License: BSD-3-Clause +Group: Productivity/Graphics/Other +BuildRoot: %{_tmppath}/%{name}-%{version}-build Prefix: %{_prefix} # for mandriva; the compiz-devel package comes not with dependencies, so fit the compiz way %define _disable_ld_no_undefined 1 -BuildRequires: liboyranos-alpha-devel +BuildRequires: liboyranos-devel Requires: liboyranos0-monitor Recommends: oyranos-monitor Recommends: oyranos-monitor-nvidia @@ -41,37 +41,134 @@ Recommends: compizconfig-settings-manager < 0.9 %if 0%{?suse_version} > 0 -BuildRequires: gcc-c++ +BuildRequires: compiz-devel < 0.9 BuildRequires: doxygen +BuildRequires: gcc-c++ BuildRequires: graphviz -BuildRequires: pkgconfig -BuildRequires: libpng-devel +BuildRequires: libXcm-devel BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: libtool +BuildRequires: netpbm +BuildRequires: pkgconfig +BuildRequires: xdg-utils BuildRequires: xorg-x11-Mesa BuildRequires: xorg-x11-Mesa-devel -BuildRequires: xdg-utils -BuildRequires: compiz-devel < 0.9 -BuildRequires: libXcm-devel -BuildRequires: netpbm -BuildRequires: libtool %endif %if 0%{?suse_version} > 910 -BuildRequires: bash binutils diffutils file filesystem findutils flex fontconfig fontconfig-devel freetype2 freetype2-devel gcc gcc-c++ gdbm gdbm-devel gettext gettext-devel glibc glibc-devel grep gzip make patch pkgconfig rpm sed tar util-linux zlib zlib-devel %endif %if 0%{?suse_version} > 1010 -BuildRequires: Mesa Mesa-devel gcc-c++ gettext doxygen graphviz pkgconfig xorg-x11-fonts-devel xorg-x11-libICE xorg-x11-libICE-devel xorg-x11-libSM xorg-x11 xorg-x11-devel xorg-x11-libSM-devel xorg-x11-libX11 xorg-x11-libX11-devel xorg-x11-libXau xorg-x11-libXau-devel xorg-x11-libXdmcp xorg-x11-libXdmcp-devel xorg-x11-libXext xorg-x11-libXext-devel xorg-x11-libXfixes xorg-x11-libXfixes-devel xorg-x11-libXmu xorg-x11-libXmu-devel xorg-x11-libXp xorg-x11-libXp-devel xorg-x11-libXpm xorg-x11-libXpm-devel xorg-x11-libXprintUtil xorg-x11-libXprintUtil-devel xorg-x11-libXrender xorg-x11-libXrender-devel xorg-x11-libXt xorg-x11-libXt-devel xorg-x11-libXv xorg-x11-libXv-devel xorg-x11-libfontenc xorg-x11-libfontenc-devel xorg-x11-libs xorg-x11-libxkbfile xorg-x11-libxkbfile-devel xorg-x11-proto-devel xorg-x11-util-devel xorg-x11-xtrans-devel +BuildRequires: Mesa +BuildRequires: Mesa-devel +BuildRequires: doxygen +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: graphviz +BuildRequires: pkgconfig +BuildRequires: xorg-x11 +BuildRequires: xorg-x11-devel +BuildRequires: xorg-x11-fonts-devel +BuildRequires: xorg-x11-libICE +BuildRequires: xorg-x11-libICE-devel +BuildRequires: xorg-x11-libSM +BuildRequires: xorg-x11-libSM-devel +BuildRequires: xorg-x11-libX11 +BuildRequires: xorg-x11-libX11-devel +BuildRequires: xorg-x11-libXau +BuildRequires: xorg-x11-libXau-devel +BuildRequires: xorg-x11-libXdmcp +BuildRequires: xorg-x11-libXdmcp-devel +BuildRequires: xorg-x11-libXext +BuildRequires: xorg-x11-libXext-devel +BuildRequires: xorg-x11-libXfixes +BuildRequires: xorg-x11-libXfixes-devel +BuildRequires: xorg-x11-libXmu +BuildRequires: xorg-x11-libXmu-devel +BuildRequires: xorg-x11-libXp +BuildRequires: xorg-x11-libXp-devel +BuildRequires: xorg-x11-libXpm +BuildRequires: xorg-x11-libXpm-devel +BuildRequires: xorg-x11-libXprintUtil +BuildRequires: xorg-x11-libXprintUtil-devel +BuildRequires: xorg-x11-libXrender +BuildRequires: xorg-x11-libXrender-devel +BuildRequires: xorg-x11-libXt +BuildRequires: xorg-x11-libXt-devel +BuildRequires: xorg-x11-libXv +BuildRequires: xorg-x11-libXv-devel +BuildRequires: xorg-x11-libfontenc +BuildRequires: xorg-x11-libfontenc-devel +BuildRequires: xorg-x11-libs +BuildRequires: xorg-x11-libxkbfile +BuildRequires: xorg-x11-libxkbfile-devel +BuildRequires: xorg-x11-proto-devel +BuildRequires: xorg-x11-util-devel +BuildRequires: xorg-x11-xtrans-devel %endif %if 0%{?mandriva_version} > 0 -BuildRequires: Mesa mesagl-devel gcc-c++ gettext doxygen graphviz pkgconfig lcms-devel xdg-utils compiz-devel libXcm-devel netpbm libtool-devel +BuildRequires: Mesa +BuildRequires: compiz-devel +BuildRequires: doxygen +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: graphviz +BuildRequires: lcms-devel +BuildRequires: libXcm-devel +BuildRequires: libtool-devel +BuildRequires: mesagl-devel +BuildRequires: netpbm +BuildRequires: pkgconfig +BuildRequires: xdg-utils %endif %if 0%{?fedora_version} > 0 -BuildRequires: Mesa Mesa-devel gcc-c++ doxygen pkgconfig xorg-x11-devel xorg-x11-Mesa-devel libXxf86vm-devel liblcms-devel xdg-utils libXcm-devel libXrandr-devel libXinerama-devel libXmu-devel netpbm elektra-devel compiz-devel +BuildRequires: Mesa +BuildRequires: Mesa-devel +BuildRequires: compiz-devel +BuildRequires: doxygen +BuildRequires: elektra-devel +BuildRequires: gcc-c++ +BuildRequires: libXcm-devel +BuildRequires: libXinerama-devel +BuildRequires: libXmu-devel +BuildRequires: libXrandr-devel +BuildRequires: libXxf86vm-devel +BuildRequires: liblcms-devel +BuildRequires: netpbm +BuildRequires: pkgconfig +BuildRequires: xdg-utils +BuildRequires: xorg-x11-Mesa-devel +BuildRequires: xorg-x11-devel %endif %if 0%{?debian_version} > 0 -BuildRequires: gcc-c++ gettext doxygen graphviz fltk fltk-devel libpng-devel libjpeg-devel pkgconfig xorg-x11 xorg-x11-devel xorg-x11-Mesa-devel xorg-x11-libXext xorg-x11-libXext-devel xorg-x11-libXpm xorg-x11-libXpm-devel libtiff-devel libxml2-devel cairo-devel liblcms-devel elektra-devel xdg-utils cups-devel libqt4-devel compiz-devel libXcm-dev netpbm +BuildRequires: cairo-devel +BuildRequires: compiz-devel +BuildRequires: cups-devel +BuildRequires: doxygen +BuildRequires: elektra-devel +BuildRequires: fltk +BuildRequires: fltk-devel +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: graphviz +BuildRequires: libXcm-dev +BuildRequires: libjpeg-devel +BuildRequires: liblcms-devel +BuildRequires: libpng-devel +BuildRequires: libqt4-devel +BuildRequires: libtiff-devel +BuildRequires: libxml2-devel +BuildRequires: netpbm +BuildRequires: pkgconfig +BuildRequires: xdg-utils +BuildRequires: xorg-x11 +BuildRequires: xorg-x11-Mesa-devel +BuildRequires: xorg-x11-devel +BuildRequires: xorg-x11-libXext +BuildRequires: xorg-x11-libXext-devel +BuildRequires: xorg-x11-libXpm +BuildRequires: xorg-x11-libXpm-devel %endif - %description The Compiz ICC colour server, or short compicc, lets you colour manage your whole desktop at once and in hardware. Play movies, watch images on wide or @@ -90,7 +187,6 @@ make DESTDIR=%{buildroot} install-main rm -fr %{buildroot}/%{_datadir}/doc/%{name} - %post /sbin/ldconfig # enable the plugin @@ -114,5 +210,4 @@ %dir %{icondir}/ %{icondir}/plugin-compicc.svg - %changelog ++++++ compicc-0.8.5.tar.gz -> compicc-0.8.6.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compicc-0.8.5/ChangeLog new/compicc-0.8.6/ChangeLog --- old/compicc-0.8.5/ChangeLog 2011-05-06 14:31:59.000000000 +0200 +++ new/compicc-0.8.6/ChangeLog 2012-11-02 09:18:32.000000000 +0100 @@ -1,3 +1,57 @@ +Version 0.8.6 + +Kai-Uwe Behrmann (9): + * [docu]: update requirements to Oyranos >= 0.9.0 + * [core]: compile with oyranos:gsoc2011 branch + * [docu]: add wiki page + * [build]: use spdx.org format for spec file + * [core]: render outputs as well without profile + * [core]: initialise string once + * [build]: require ccsm in spec file + * [build]: require newer Xcm versions in spec file + * [conf]: bump version + +Version 0.8.5 + +Kai-Uwe Behrmann (34): + * [build]: minor spec fixes + * [core]: fix unused comment + * [core]: fix wrong variable access from #90d2df89 + * [build]: adapt to openSUSE spec file + * [build]: remove non existent file + * [core]: update to Xcm changes + * [core]: use module provided hash + * [core]: support colour correction to multi monitor + * [core]: count window region + * [core]: use GL_EQUAL in pluginDrawWindow + * [core]: update to x_color_region_target + * [core]: store stencil start per window + * [core]: compute stencil ID during drawing + * [core]: clean up to 200 monitors + * [core]: do not use context description hook + * [core]: tell Oyranos we are a display + * [core]: fix string length array + * [core]: move ICC setup inside + * [core]: omit EDID removal + * [docu]: update NET to ICC atoms prefix + * [conf]: prepare C++ builds + * [conf]: bump libXcm requirement to 0.5 + * [conf]: require libXcm during configure + * [core]: rename net-color spec + * [core]: support per region profiles + * [core]: make allocations fit for C++ + * [core]: modularise CLUT creation + * [core]: add PrivColorContext + * [core]: cache profiles in Oyranos + * [core]: fix debug messages + * [core]: clean unused cruft + * [core]: improve debug clut images + * [conf]: bump version + * [docu]: update ChangeLog + +Tomas Carnecky (1): + * [core]: remerge with old profile code + Version 0.8.4 Kai-Uwe Behrmann (36): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compicc-0.8.5/README new/compicc-0.8.6/README --- old/compicc-0.8.5/README 2012-01-09 09:18:51.000000000 +0100 +++ new/compicc-0.8.6/README 2012-11-02 07:59:20.000000000 +0100 @@ -42,8 +42,8 @@ Dependencies: - Compiz - Oyranos colour management system + Compiz 0.8.x + Oyranos colour management system >= 0.9.0 Debian: locales diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compicc-0.8.5/compicc.c new/compicc-0.8.6/compicc.c --- old/compicc-0.8.5/compicc.c 2012-02-18 23:20:49.000000000 +0100 +++ new/compicc-0.8.6/compicc.c 2012-10-22 13:53:54.000000000 +0200 @@ -39,9 +39,11 @@ #include <compiz-common.h> -#include <alpha/oyranos_alpha.h> -#include <alpha/oyranos_cmm.h> // oyCMMptr_New -#include <oyranos_definitions.h> /* ICC Profile in X */ +#include <oyranos_devices.h> +#include <oyConversion_s.h> +#include <oyFilterGraph_s.h> +#include <oyFilterNode_s.h> +#include <oyRectangle_s.h> #include <X11/Xcm/Xcm.h> #include <X11/Xcm/XcmEvents.h> @@ -104,7 +106,18 @@ #define END_CLOCK #endif +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +void* oyAllocateFunc_ (size_t size); +void oyDeAllocateFunc_ (void * data); +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +void* cicc_alloc (size_t size) { void * p = oyAllocateFunc_(size); memset(p,0,size); return p; } +void cicc_free (void * data) { oyDeAllocateFunc_(data); } typedef CompBool (*dispatchObjectProc) (CompPlugin *plugin, CompObject *object, void *privateData); @@ -150,7 +163,7 @@ /** * Output profiles are currently only fetched using XRandR. For backwards * compatibility the code should fall back to root window properties - * (OY_ICC_V0_3_TARGET_PROFILE_IN_X_BASE). + * (XCM_ICC_V0_3_TARGET_PROFILE_IN_X_BASE). */ typedef struct { char name[32]; @@ -293,7 +306,7 @@ oyPointer ptr = o->privates[index].ptr; o->privates[index].ptr = NULL; if(ptr) - free(ptr); + cicc_free(ptr); } @@ -334,10 +347,9 @@ */ static const char *md5string(const uint8_t md5[16]) { - static char buffer[33]; + static char buffer[33] = {0}; const uint32_t * h = (const uint32_t*)md5; - buffer[0] = 0; sprintf( buffer, "%x%x%x%x", h[0],h[1],h[2],h[3]); return buffer; @@ -496,7 +508,7 @@ for (unsigned long i = 0; i < count; ++i) { const char * hash_text = md5string(profile->md5); - entry = oyCacheListGetEntry_( cache, exact_hash_size, hash_text ); + entry = oyStructList_GetHash( cache, exact_hash_size, hash_text ); prof = (oyProfile_s *) oyHash_GetPointer( entry, oyOBJECT_PROFILE_S); /* XcolorProfile::length == 0 means the clients wants to delete the profile. */ if( ntohl(profile->length) ) @@ -532,14 +544,13 @@ oyProfile_s * profileFromMD5 ( uint8_t * md5 ) { uint32_t exact_hash_size = 0; - oyHash_s * entry; oyProfile_s * prof = NULL; oyStructList_s * cache = pluginGetPrivatesCache(); /* Copy the profiles into the array, and create the Oyranos handles. */ const char * hash_text = md5string(md5); - entry = oyCacheListGetEntry_( cache, exact_hash_size, hash_text ); - prof = (oyProfile_s *) oyHash_GetPointer( entry, oyOBJECT_PROFILE_S); + prof = (oyProfile_s *) oyStructList_GetHashStruct( cache, exact_hash_size, + hash_text, oyOBJECT_PROFILE_S ); return prof; } @@ -570,19 +581,19 @@ { oyProfile_Release( &pw->pRegion[i].cc[j]->dst_profile ); oyProfile_Release( &pw->pRegion[i].cc[j]->src_profile ); - if(ps->contexts[i].cc.glTexture) + if(&pw->pRegion[i].cc[j]->glTexture) glDeleteTextures( 1, &pw->pRegion[i].cc[j]->glTexture ); - free( pw->pRegion[i].cc[j] ); + cicc_free( pw->pRegion[i].cc[j] ); pw->pRegion[i].cc[j] = NULL; } else break; } - free( pw->pRegion[i].cc ); pw->pRegion[i].cc = 0; + cicc_free( pw->pRegion[i].cc ); pw->pRegion[i].cc = 0; } } if (pw->nRegions) - free(pw->pRegion); + cicc_free(pw->pRegion); pw->nRegions = 0; oyRectangle_Release( &pw->absoluteWindowRectangleOld ); @@ -597,7 +608,7 @@ if(data) count += XcolorRegionCount(data, nBytes + 1); - pw->pRegion = (PrivColorRegion*) calloc(count,sizeof(PrivColorRegion)); + pw->pRegion = (PrivColorRegion*) cicc_alloc(count * sizeof(PrivColorRegion)); if (pw->pRegion == NULL) goto out; @@ -619,7 +630,7 @@ if(memcmp(region->md5,n,16) != 0) { - pw->pRegion[i].cc = (PrivColorContext**)calloc( ps->nContexts + 1, + pw->pRegion[i].cc = (PrivColorContext**)cicc_alloc( (ps->nContexts + 1) * sizeof(PrivColorContext*)); if(!pw->pRegion[i].cc) { @@ -630,7 +641,7 @@ for(unsigned long j = 0; j < ps->nContexts; ++j) { - pw->pRegion[i].cc[j] = (PrivColorContext*) calloc( 1, + pw->pRegion[i].cc[j] = (PrivColorContext*) cicc_alloc( sizeof(PrivColorContext) ); if(!pw->pRegion[i].cc[j]) @@ -737,7 +748,7 @@ { char num[12]; Window root = RootWindow( s->display->display, 0 ); - char * icc_profile_atom = (char*)calloc( 1024, sizeof(char) ); + char * icc_profile_atom = (char*)cicc_alloc( 1024 ); Atom a; oyPointer data; unsigned long n = 0; @@ -746,10 +757,10 @@ snprintf( num, 12, "%d", (int)screen ); if(server) - snprintf( icc_profile_atom, 1024, OY_ICC_COLOUR_SERVER_TARGET_PROFILE_IN_X_BASE"%s%s", + snprintf( icc_profile_atom, 1024, XCM_DEVICE_PROFILE"%s%s", screen ? "_" : "", screen ? num : "" ); else - snprintf( icc_profile_atom, 1024, OY_ICC_V0_3_TARGET_PROFILE_IN_X_BASE"%s%s", + snprintf( icc_profile_atom, 1024, XCM_ICC_V0_3_TARGET_PROFILE_IN_X_BASE"%s%s", screen ? "_" : "", screen ? num : "" ); @@ -758,7 +769,7 @@ data = fetchProperty( s->display->display, root, a, XA_CARDINAL, &n, False); if(data) XFree(data); - free(icc_profile_atom); + cicc_free(icc_profile_atom); return (int)n; } @@ -768,17 +779,17 @@ { char num[12]; Window root = RootWindow( s->display->display, 0 ); - char * icc_profile_atom = (char*)calloc( 1024, sizeof(char) ); + char * icc_profile_atom = (char*)cicc_alloc( 1024 ); Atom a; if(!icc_profile_atom) return 0; snprintf( num, 12, "%d", (int)screen ); if(server) - snprintf( icc_profile_atom, 1024, OY_ICC_COLOUR_SERVER_TARGET_PROFILE_IN_X_BASE"%s%s", + snprintf( icc_profile_atom, 1024, XCM_DEVICE_PROFILE"%s%s", screen ? "_" : "", screen ? num : "" ); else - snprintf( icc_profile_atom, 1024, OY_ICC_V0_3_TARGET_PROFILE_IN_X_BASE"%s%s", + snprintf( icc_profile_atom, 1024, XCM_ICC_V0_3_TARGET_PROFILE_IN_X_BASE"%s%s", screen ? "_" : "", screen ? num : "" ); @@ -807,8 +818,8 @@ PrivScreen * ps = compObjectGetPrivate((CompObject *) s); char num[12]; Window root = RootWindow( s->display->display, 0 ); - char * icc_profile_atom = (char*)calloc( 1024, sizeof(char) ), - * icc_colour_server_profile_atom = (char*)calloc( 1024, sizeof(char) ); + char * icc_profile_atom = (char*)cicc_alloc( 1024 ), + * icc_colour_server_profile_atom = (char*)cicc_alloc( 1024 ); Atom a,da, source_atom, target_atom; oyPointer source; @@ -817,9 +828,9 @@ int updated_icc_color_desktop_atom = 0; snprintf( num, 12, "%d", (int)screen ); - snprintf( icc_profile_atom, 1024, OY_ICC_V0_3_TARGET_PROFILE_IN_X_BASE"%s%s", + snprintf( icc_profile_atom, 1024, XCM_ICC_V0_3_TARGET_PROFILE_IN_X_BASE"%s%s", screen ? "_" : "", screen ? num : "" ); - snprintf( icc_colour_server_profile_atom, 1024, OY_ICC_COLOUR_SERVER_TARGET_PROFILE_IN_X_BASE"%s%s", + snprintf( icc_colour_server_profile_atom, 1024, XCM_DEVICE_PROFILE"%s%s", screen ? "_" : "", screen ? num : "" ); a = XInternAtom(s->display->display, icc_profile_atom, False); @@ -858,12 +869,12 @@ target_atom, XA_CARDINAL, source, source_n ); } - XFree( source ); + if(source) XFree( source ); source = 0; source_n = 0; if(init) { - /* setup the OY_ICC_V0_3_TARGET_PROFILE_IN_X_BASE(_xxx) atom as document colour space */ + /* setup the XCM_ICC_V0_3_TARGET_PROFILE_IN_X_BASE(_xxx) atom as document colour space */ size_t size = 0; oyProfile_s * screen_document_profile = oyProfile_FromStd( oyASSUMED_WEB, 0 ); @@ -874,7 +885,8 @@ /* make shure the profile is ignored */ - source = oyProfile_GetMem( screen_document_profile, &size, 0, malloc ); + source = oyProfile_GetMem( screen_document_profile, &size, 0, cicc_alloc ); + oyProfile_Release( &screen_document_profile ); source_n = size; if(!updated_icc_color_desktop_atom) @@ -882,14 +894,14 @@ updateNetColorDesktopAtom( s, ps, 2 ); updated_icc_color_desktop_atom = 1; } + if(source_n) { changeProperty ( s->display->display, source_atom, XA_CARDINAL, source, source_n ); } - oyProfile_Release( &screen_document_profile ); - if(source) free( source ); source = 0; + if(source) cicc_free( source ); source = 0; } else { /* clear/erase the _ICC_DEVICE_PROFILE(_xxx) atom */ @@ -902,14 +914,13 @@ DBG_STRING"icc_colour_server_profile_atom already present %d size:%lu", DBG_ARGS, target_atom, target_n ); - if(icc_profile_atom) free(icc_profile_atom); - if(icc_colour_server_profile_atom) free(icc_colour_server_profile_atom); + if(icc_profile_atom) cicc_free(icc_profile_atom); + if(icc_colour_server_profile_atom) cicc_free(icc_colour_server_profile_atom); } void cleanDisplay ( Display * display ) { - int error = 0, - n; + int error = 0; oyOptions_s * options = 0; oyConfigs_s * devices = 0; char * display_name = 0, * t; @@ -928,11 +939,11 @@ "unset", OY_CREATE_NEW ); if(display_name) { - t = calloc(sizeof(char), strlen(display_name) + 8); + t = cicc_alloc( strlen(display_name) + 8 ); } else { display_name = strdup(":0"); - t = calloc(sizeof(char), 8); + t = cicc_alloc( 8); } if(t && display_name) @@ -959,7 +970,6 @@ "//" OY_TYPE_STD "/config/display_name", display_name, OY_CREATE_NEW ); error = oyDevicesGet( OY_TYPE_STD, "monitor", options, &devices ); - n = oyConfigs_Count( devices ); oyConfigs_Release( &devices ); oyOptions_Release( &options ); @@ -986,8 +996,8 @@ oyConfigs_Release( &devices ); oyOptions_Release( &options ); - free(display_name); display_name = 0; - free(t); t = 0; + cicc_free(display_name); display_name = 0; + cicc_free(t); t = 0; } static int getDeviceProfile ( CompScreen * s, @@ -1011,7 +1021,7 @@ DBG_STRING"monitor rectangle request failed", DBG_ARGS); return 1; } - r = (oyRectangle_s*) oyOption_StructGet( o, oyOBJECT_RECTANGLE_S ); + r = (oyRectangle_s*) oyOption_GetStruct( o, oyOBJECT_RECTANGLE_S ); if( !r ) { oyCompLogMessage( s->display, "compicc", CompLogLevelWarn, @@ -1020,10 +1030,10 @@ } oyOption_Release( &o ); - output->xRect.x = r->x; - output->xRect.y = r->y; - output->xRect.width = r->width; - output->xRect.height = r->height; + output->xRect.x = oyRectangle_GetGeo1( r, 0 ); + output->xRect.y = oyRectangle_GetGeo1( r, 1 ); + output->xRect.width = oyRectangle_GetGeo1( r, 2 ); + output->xRect.height = oyRectangle_GetGeo1( r, 3 ); device_name = oyConfig_FindString( device, "device_name", 0 ); if(device_name && device_name[0]) @@ -1085,17 +1095,24 @@ { oyConversion_s * cc; int error = 0; + oyProfile_s * dst_profile = ccontext->dst_profile, * web = 0; + + if(!ccontext->dst_profile) + dst_profile = web = oyProfile_FromStd( oyASSUMED_WEB, 0 ); - if (ccontext->dst_profile) { int flags = 0; + int ** ptr; - oyProfile_s * src_profile = ccontext->src_profile, - * dst_profile = ccontext->dst_profile; + oyProfile_s * src_profile = ccontext->src_profile; oyOptions_s * options = 0; oyPixel_t pixel_layout = OY_TYPE_123_16; + /* skip web to web conversion */ + if(!src_profile && web) + goto clean_setupColourTable; + if(!src_profile) src_profile = oyProfile_FromStd( oyASSUMED_WEB, 0 ); @@ -1129,7 +1146,7 @@ oyCompLogMessage( NULL, "compicc", CompLogLevelWarn, DBG_STRING "no conversion created for %s", DBG_ARGS, ccontext->output_name); - return; + goto clean_setupColourTable; } oyOptions_Release( &options ); @@ -1142,7 +1159,7 @@ oyCompLogMessage( NULL, "compicc", CompLogLevelWarn, DBG_STRING "oyConversion_Correct(///icc,%d,0) failed %s", DBG_ARGS, flags, ccontext->output_name); - return; + goto clean_setupColourTable; } oyFilterGraph_s * cc_graph = oyConversion_GetGraph( cc ); @@ -1159,7 +1176,7 @@ oyHash_s * entry; oyArray2d_s * clut = NULL; oyStructList_s * cache = pluginGetPrivatesCache(); - entry = oyCacheListGetEntry_( cache, exact_hash_size, hash_text ); + entry = oyStructList_GetHash( cache, exact_hash_size, hash_text ); clut = (oyArray2d_s*) oyHash_GetPointer( entry, oyOBJECT_ARRAY2D_S); oyFilterNode_Release( &icc ); oyFilterGraph_Release( &cc_graph ); @@ -1169,9 +1186,11 @@ DBG_STRING "clut from cache %s %s", DBG_ARGS, clut?"obtained":"", hash_text); if(clut) - memcpy( ccontext->clut, clut->array2d[0], + { + ptr = oyArray2d_GetData(clut); + memcpy( ccontext->clut, ptr[0], sizeof(GLushort) * GRIDPOINTS*GRIDPOINTS*GRIDPOINTS * 3 ); - else + } else { uint16_t in[3]; for (int r = 0; r < GRIDPOINTS; ++r) @@ -1199,10 +1218,11 @@ oyCompLogMessage( NULL, "compicc", CompLogLevelWarn, DBG_STRING "oyConversion_RunPixels() error: %d %s", DBG_ARGS, error, ccontext->output_name); - return; + goto clean_setupColourTable; } - memcpy( clut->array2d[0], ccontext->clut, + ptr = oyArray2d_GetData(clut); + memcpy( ptr[0], ccontext->clut, sizeof(GLushort) * GRIDPOINTS*GRIDPOINTS*GRIDPOINTS * 3 ); oyHash_SetPointer( entry, (oyStruct_s*) clut ); @@ -1210,7 +1230,7 @@ if(hash_text) { - free(hash_text); hash_text = 0; + cicc_free(hash_text); hash_text = 0; } @@ -1221,12 +1241,18 @@ cdCreateTexture( ccontext ); - } else { + } + + if(!ccontext->dst_profile) + { oyCompLogMessage( NULL, "compicc", CompLogLevelInfo, DBG_STRING "Output \"%s\": no profile", DBG_ARGS, ccontext->output_name); } + clean_setupColourTable: + if(web) + oyProfile_Release( &web ); } static int getDisplayAdvanced ( CompScreen * s, @@ -1287,7 +1313,7 @@ glDeleteTextures( 1, &ps->contexts[i].cc.glTexture ); ps->contexts[i].cc.glTexture = 0; } - free(ps->contexts); + cicc_free(ps->contexts); } } @@ -1301,6 +1327,10 @@ /* get number of connected devices */ error = oyDevicesGet( OY_TYPE_STD, "monitor", 0, &devices ); + if(error > 0) + oyCompLogMessage( NULL, "compicc", CompLogLevelWarn, + DBG_STRING "oyDevicesGet() error: %d", + DBG_ARGS, error); n = oyConfigs_Count( devices ); oyConfigs_Release( &devices ); @@ -1331,7 +1361,7 @@ { int i; ps->nContexts = n; - ps->contexts = (PrivColorOutput*)calloc( ps->nContexts, + ps->contexts = (PrivColorOutput*)cicc_alloc( ps->nContexts * sizeof(PrivColorOutput )); for(i = 0; i < n; ++i) ps->contexts[i].cc.ref = 1; @@ -1352,7 +1382,6 @@ { PrivScreen *ps = compObjectGetPrivate((CompObject *) s); int error = 0, - n, set = 1; oyOptions_s * options = 0; oyConfigs_s * devices = 0; @@ -1368,10 +1397,12 @@ error = oyOptions_SetFromText( &options, "//" OY_TYPE_STD "/config/device_rectangle", "true", OY_CREATE_NEW ); error = oyDevicesGet( OY_TYPE_STD, "monitor", options, &devices ); - n = oyOptions_Count( options ); + if(error > 0) + oyCompLogMessage( NULL, "compicc", CompLogLevelWarn, + DBG_STRING "oyDevicesGet() error: %d", + DBG_ARGS, error); oyOptions_Release( &options ); - n = oyConfigs_Count( devices ); if(colour_desktop_can) for (unsigned long i = 0; i < ps->nContexts; ++i) @@ -1379,12 +1410,17 @@ device = oyConfigs_Get( devices, i ); if(init) + { error = getDeviceProfile( s, ps, device, i ); + if(error > 0) + oyCompLogMessage( NULL, "compicc", CompLogLevelWarn, + DBG_STRING "getDeviceProfile() error: %d", + DBG_ARGS, error); + } if(ps->contexts[i].cc.dst_profile) { moveICCprofileAtoms( s, i, set ); - setupOutputTable( s, device, i ); } else { oyCompLogMessage( s->display, "compicc", CompLogLevelDebug, @@ -1392,6 +1428,7 @@ DBG_ARGS, i, ps->nContexts, &ps->contexts[i], ps->contexts[i].cc.dst_profile); } + setupOutputTable( s, device, i ); oyConfig_Release( &device ); } @@ -1450,25 +1487,25 @@ /* update for a changing monitor profile */ } else if( - strstr( atom_name, OY_ICC_V0_3_TARGET_PROFILE_IN_X_BASE) != 0/* && + strstr( atom_name, XCM_ICC_V0_3_TARGET_PROFILE_IN_X_BASE) != 0/* && strstr( atom_name, "ICC_PROFILE_IN_X") == 0*/ ) { if(colour_desktop_can) { int screen = 0; int ignore_profile = 0; - char * icc_colour_server_profile_atom = (char*)malloc(1024); + char * icc_colour_server_profile_atom = (char*)cicc_alloc(1024); char num[12]; Atom da; unsigned long n = 0; - if(strlen(atom_name) > strlen(OY_ICC_V0_3_TARGET_PROFILE_IN_X_BASE"_")) + if(strlen(atom_name) > strlen(XCM_ICC_V0_3_TARGET_PROFILE_IN_X_BASE"_")) sscanf( (const char*)atom_name, - OY_ICC_V0_3_TARGET_PROFILE_IN_X_BASE "_%d", &screen ); + XCM_ICC_V0_3_TARGET_PROFILE_IN_X_BASE "_%d", &screen ); snprintf( num, 12, "%d", (int)screen ); snprintf( icc_colour_server_profile_atom, 1024, - OY_ICC_COLOUR_SERVER_TARGET_PROFILE_IN_X_BASE"%s%s", + XCM_DEVICE_PROFILE"%s%s", screen ? "_" : "", screen ? num : "" ); da = XInternAtom( d->display, icc_colour_server_profile_atom, False); @@ -1516,7 +1553,7 @@ } } - if(icc_colour_server_profile_atom) free(icc_colour_server_profile_atom); + if(icc_colour_server_profile_atom) cicc_free(icc_colour_server_profile_atom); if(!ignore_profile && /* change only existing profiles, ignore removed ones */ @@ -1675,8 +1712,8 @@ { forEachWindowOnScreen(s, damageWindow, NULL); - if(w->serverWidth != pw->absoluteWindowRectangleOld->width || - w->serverHeight != pw->absoluteWindowRectangleOld->height) + if(w->serverWidth != oyRectangle_GetGeo1( pw->absoluteWindowRectangleOld, 2 ) || + w->serverHeight != oyRectangle_GetGeo1( pw->absoluteWindowRectangleOld, 3 )) updateWindowRegions( w ); oyRectangle_SetByRectangle( pw->absoluteWindowRectangleOld, rect ); @@ -1846,7 +1883,7 @@ /* Now draw the window texture */ UNWRAP(ps, s, drawWindowTexture); - if(c->dst_profile && c->glTexture) + if(c->glTexture) (*s->drawWindowTexture) (w, texture, &fa, mask); else /* ignore the shader */ @@ -1946,8 +1983,8 @@ if(!colour_desktop_can) return 1; - atom_colour_server_name = (char*)malloc(1024); - atom_capabilities_text = (char*)malloc(1024); + atom_colour_server_name = (char*)cicc_alloc(1024); + atom_capabilities_text = (char*)cicc_alloc(1024); if(!atom_colour_server_name || !atom_capabilities_text) { status = 3; @@ -2014,7 +2051,7 @@ if( (atom_time + 10) < icc_color_desktop_last_time || request == 2 ) { - char * atom_text = (char*)malloc(1024); + char * atom_text = (char*)cicc_alloc(1024); if(!atom_text) goto clean_updateNetColorDesktopAtom; sprintf( atom_text, "%d %ld %s %s", (int)pid, (long)cutime, @@ -2036,12 +2073,12 @@ colour_desktop_can = 0; } - if(atom_text) free( atom_text ); + if(atom_text) cicc_free( atom_text ); } clean_updateNetColorDesktopAtom: - if(atom_colour_server_name) free(atom_colour_server_name); - if(atom_capabilities_text) free(atom_capabilities_text); + if(atom_colour_server_name) cicc_free(atom_colour_server_name); + if(atom_capabilities_text) cicc_free(atom_capabilities_text); icc_color_desktop_last_time = cutime; @@ -2167,14 +2204,15 @@ PrivScreen *ps = privateData; int error = 0, - n, init = 0; oyConfigs_s * devices = 0; oyConfig_s * device = 0; error = oyDevicesGet( OY_TYPE_STD, "monitor", 0, &devices ); - - n = oyConfigs_Count( devices ); + if(error > 0) + oyCompLogMessage( NULL, "compicc", CompLogLevelWarn, + DBG_STRING "oyDevicesGet() error: %d", + DBG_ARGS, error); /* switch profile atoms back */ for(int i = 0; i < ps->nContexts; ++i) @@ -2275,7 +2313,7 @@ return 0; { - o->privates[index].ptr = malloc(size); + o->privates[index].ptr = cicc_alloc(size); if(!o->privates[index].ptr) return 0; memset( o->privates[index].ptr, 0, size); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compicc-0.8.5/compicc.spec.in new/compicc-0.8.6/compicc.spec.in --- old/compicc-0.8.5/compicc.spec.in 2012-02-23 21:19:51.000000000 +0100 +++ new/compicc-0.8.6/compicc.spec.in 2012-06-06 21:46:48.000000000 +0200 @@ -1,8 +1,8 @@ Summary: Compiz ICC Colour Management Name: compicc -License: BSD +License: BSD-3-Clause Group: Productivity/Graphics/Other -URL: http://sourceforge.net/projects/compicc +Url: http://sourceforge.net/projects/compicc Vendor: Kai-Uwe Behrmann BuildRoot: %{_tmppath}/%{name}-root Prefix: %{_prefix} @@ -10,11 +10,29 @@ # for mandriva; the compiz-devel package comes not with dependencies, so fit the compiz way %define _disable_ld_no_undefined 1 -BuildRequires: liboyranos-alpha-devel -Requires: liboyranos0-monitor compiz +BuildRequires: liboyranos-alpha-devel >= 0.4.0 +Requires: liboyranos0-monitor >= 0.4.0 +Recommends: oyranos-monitor +Recommends: oyranos-monitor-nvidia +Recommends: oyranos-qcmsevents +BuildRequires: compiz < 0.9 +Requires: compiz < 0.9 +Requires: compizconfig-settings-manager < 0.9 %if 0%{?suse_version} > 0 -BuildRequires: gcc-c++ doxygen graphviz pkgconfig libpng-devel libjpeg-devel xorg-x11-Mesa xorg-x11-Mesa-devel liblcms-devel xdg-utils compiz-devel libXcm-devel netpbm +BuildRequires: gcc-c++ +BuildRequires: doxygen +BuildRequires: graphviz +BuildRequires: pkgconfig +BuildRequires: libpng-devel +BuildRequires: libjpeg-devel +BuildRequires: xorg-x11-Mesa +BuildRequires: xorg-x11-Mesa-devel +BuildRequires: xdg-utils +BuildRequires: compiz-devel < 0.9 +BuildRequires: libXcm-devel >= 0.5.0 +BuildRequires: netpbm +BuildRequires: libtool %endif %if 0%{?suse_version} > 910 BuildRequires: bash binutils diffutils file filesystem findutils flex fontconfig fontconfig-devel freetype2 freetype2-devel gcc gcc-c++ gdbm gdbm-devel gettext gettext-devel glibc glibc-devel grep gzip make patch pkgconfig rpm sed tar util-linux zlib zlib-devel @@ -54,13 +72,13 @@ %post -ldconfig +/sbin/ldconfig # enable the plugin test -f /usr/share/compizconfig/global.xml && (if [ "`cat /usr/share/compizconfig/global.xml | grep compicc | wc -l`" = "0" ]; then cat /usr/share/compizconfig/global.xml | sed 's/<value>core<\/value>/<value>core<\/value>\n <value>compicc<\/value>/'> ccp_global.xml; mv -v ccp_global.xml /usr/share/compizconfig/global.xml; fi) exit 0 %postun -ldconfig +/sbin/ldconfig %files %defattr(-, root, root) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compicc-0.8.5/configure new/compicc-0.8.6/configure --- old/compicc-0.8.5/configure 2012-02-23 20:01:20.000000000 +0100 +++ new/compicc-0.8.6/configure 2012-03-08 21:53:05.000000000 +0100 @@ -35,7 +35,7 @@ VERSION_A=0 VERSION_B=8 -VERSION_C=5 +VERSION_C=6 VERSION_ABI_A=1 VERSION_ABI_B=0 RELEASE=0 @@ -852,7 +852,7 @@ test -n "$ECHO" && $ECHO "" >> $VERS_H test -n "$RPMECHO" && $RPMECHO "Version: $VERSION" >> $SPEC -test -n "$RPMECHO" && $RPMECHO "Source: $TARGET"-"$VERSION".tar.gz >> $SPEC +test -n "$RPMECHO" && $RPMECHO "Source: $TARGET"-"$VERSION".tar.bz2 >> $SPEC test -n "$RPMECHO" && $RPMECHO "Release: $RELEASE" >> $SPEC test -n "$RPMECHO" && $RPMECHO "%define icondir $icondir" >> $SPEC test -n "$RPMECHO" && cat $ROOT_DIR/"$SPEC.in" >> $SPEC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compicc-0.8.5/makefile.in new/compicc-0.8.6/makefile.in --- old/compicc-0.8.5/makefile.in 2012-02-23 20:51:14.000000000 +0100 +++ new/compicc-0.8.6/makefile.in 2012-03-08 21:20:34.000000000 +0100 @@ -238,7 +238,7 @@ rpmdir/SOURCES \ rpmdir/SRPMS \ rpmdir/RPMS/$(RPMARCH) - $(COPY) -f $(TARGET)-$(VERSION).tar.gz rpmdir/SOURCES + $(COPY) -f $(TARGET)-$(VERSION).tar.bz2 rpmdir/SOURCES rpmbuild --clean -ba $(build_dir)/$(TARGET).spec --define "_topdir $$PWD/rpmdir" @echo "============================================================" @echo "Finished - the packages are in rpmdir/RPMS and rpmdir/SRPMS!" -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
