so that it sorts correctly, and leave 1.18.1 available for a possible
future upstream bugfix point release.
Changes since 1.18:
incorporate the fix in our patch-aa
(No need to pull to pkgsrc-stable; this is the same as 1.18nb2)
From NEWS:
New in ver 1.18
===============
Changes in API
----------------------
*none*
Implementation
----------------------
All errors moved to fatal, since there is no easy recovery strategy
Vulnerability fixes on cmsio1.c
Status check, many functions now check the status when calling other functions. Improved robustness against ill-formed profiles.
_cmsSaveProfile didn't copy tags from a file based profile, fixed.
Utilities
----------
icctrans: CMYKcm support wrongly implemented, fixed.
icclink: linking 3 to 7 channels didn't work in some cases, fixed.
New in ver 1.16
===============
New features
two different types of black preservation on CMYK-> CMYK transforms
Ability to set adaptation state of observer on absolute colorimetric transforms.
A rather advanced feature. Actually it only allows No adaptation (d=0) and observer fully adapted (d=1)
lcms can now "fix" some broken 8-bit profiles that have gray axes misplaced.
icctrans can now read CGATS/IT8 files.
improved tifficc with tiff Lab8 support
icclink now supports colorant table tag.
New functions
double cmsSetAdaptationState(cmsHTRANSFORM hTransform, double d);
void cmsSetHeaderAttributes(cmsHPROFILE hProfile, DWORD Flags);
DWORD cmsTakeHeaderAttributes(cmsHPROFILE hProfile);
icInt32Number cmsGetTagCount(cmsHPROFILE hProfile);
icTagSignature cmsGetTagSignature(cmsHPROFILE hProfile, icInt32Number n);
int cmsSetCMYKPreservationStrategy(int n)
BOOL cmsIT8SaveToMem(LCMSHANDLE hIT8, void *MemPtr, size_t* BytesNeeded);
BOOL _cmsIsMatrixShaper(cmsHPROFILE hProfile);
BOOL _cmsAddDateTimeTag(cmsHPROFILE hProfile, icTagSignature sig, struct tm *DateTime);
BOOL _cmsAddColorantTableTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsNAMEDCOLORLIST nc);
double cmsEvalLUTreverse(LPLUT Lut, WORD Target[], WORD Result[], LPWORD Hint);
LPcmsNAMEDCOLORLIST cmsReadColorantTable(cmsHPROFILE hProfile, icTagSignature sig)
LPcmsGAMUTEX cmsReadExtendedGamut(cmsHPROFILE hProfile, int index);
void cmsFreeExtendedGamut(LPcmsGAMUTEX gex);
New tags supported
icSigColorantTableTag LPcmsNAMEDCOLORLIST
icSigColorantTableOutTag LPcmsNAMEDCOLORLIST
icSigCalibrationDateTimeTag const struct tm*
New flags:
cmsFLAGS_PRESERVEBLACK
cmsFLAGS_GRIDPOINTS(n)
And of course some bug fixing.
New features
Black preservation on CMYK-> CMYK transforms
Ability to set adaptation state of observer on absolute colorimetric transforms.
A rather advanced feature. Actually it only allows No adaptation (d=0) and observer fully adapted (d=1)
lcms can now "fix" some broken 8-bit profiles that have gray axes misplaced.
icctrans can now read CGATS/IT8 files.
improved tifficc with tiff Lab8 support
New functions
LCMSAPI double LCMSEXPORT cmsSetAdaptationState(cmsHTRANSFORM hTransform, double d);
LCMSAPI void LCMSEXPORT cmsSetHeaderAttributes(cmsHPROFILE hProfile, DWORD Flags);
LCMSAPI DWORD LCMSEXPORT cmsTakeHeaderAttributes(cmsHPROFILE hProfile);
LCMSAPI icInt32Number LCMSEXPORT cmsGetTagCount(cmsHPROFILE hProfile);
LCMSAPI icTagSignature LCMSEXPORT cmsGetTagSignature(cmsHPROFILE hProfile, icInt32Number n);
LCMSAPI BOOL LCMSEXPORT cmsIT8SaveToMem(LCMSHANDLE hIT8, void *MemPtr, size_t* BytesNeeded);
BOOL _cmsIsMatrixShaper(cmsHPROFILE hProfile);
BOOL _cmsAddDateTimeTag(cmsHPROFILE hProfile, icTagSignature sig, struct tm *DateTime);
BOOL _cmsAddColorantTableTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsNAMEDCOLORLIST nc);
double cmsEvalLUTreverse(LPLUT Lut, WORD Target[], WORD Result[], LPWORD Hint);
LPcmsNAMEDCOLORLIST LCMSEXPORT cmsReadColorantTable(cmsHPROFILE hProfile, icTagSignature sig)
LPcmsGAMUTEX cmsReadExtendedGamut(cmsHPROFILE hProfile, int index);
void cmsFreeExtendedGamut(LPcmsGAMUTEX gex);
New tags supported
icSigColorantTableTag LPcmsNAMEDCOLORLIST
icSigColorantTableOutTag LPcmsNAMEDCOLORLIST
icSigCalibrationDateTimeTag const struct tm*
New flags:
cmsFLAGS_PRESERVEBLACK
cmsFLAGS_GRIDPOINTS(n)
And of course some bug fixing.
* linux & windows packages are now joined into a single package.
* Improved (and now fast!) gamut checking.
* New virtual NULL profile for building gamut check transforms.
* CGATS.13/IT8 parser now supports multiple tables and other goodies like
specifying flot format.
* More python support.
* New Matlab wrapper
* Revamped icctrans
* Improved jpegicc
* jpegicc and tifficc now can save (grab) embedded profiles.
* tifficc now supports up to 15 channels.
* Improved Lab prelinearization.
* Fixed absolute intent on PostScript CRD
* Man pages for utilities.
* Access to creation & calibration date time.
* Lots of bug fixes
Changes:
Overall speedup
Full ICC v4 support
New CGATS.13/IT8 parser
8-bit transforms optimization
Improved named color -- lcms can now write such profiles as well
lcms can now write 8 bit profiles as well as 16 bit
softproof now honors proofing intent
Absolute colorimetric works fine on mixed v2/v4 transforms
Improved black point compensation
Several new utility functions
Black point compensation on PostScript CRD
Added support for HiFi (> 4 inks) on tifficc
Improved icclink
Add lcms.pc pkg-config file
(http://www.freedesktop.org/Software/pkgconfig).
USE_TETRAHEDRAL and USE_TRILINEAR no longer used -- engine now
chooses between interpolation methods
on depending on several heuristics.
Package changes:
The include files moved from $PREFIX/include/lcms to
$PREFIX/include. Support added to buildlink*.mk to provide
compatibility symlinks include/lcms/*.h in BUILDLINK_DIR.
No list of changes since the previously packaged version (1.06), I do not
even know if there was any versions in between... Anyway changes
in version 1.12 are (from the homepage):
- Brightness/Contrast/Hue/Saturation/WhitePoint modification across abstract
profile
- License changed to MIT
- pseq tag handling: cmsReadProfileSequenceDescription and cmsSEQ,
cmsPSEQDESC structures
- CRD generation now supports black point compensation, see
cmsGetPostScriptCRDEx
- cmsTakeManufacturer and cmsTakeModel for uncooked info on these tags
- Writing 8 bit profiles is now supported
- Named color profiles support. This turns lcms from a "wide subset" into
a "full implementation" of ICC 3.4, with some ICC 4.0 support.
- PostScript CSA, CRD generation
- Ink-Limiting capabilities for CMYK
- Devicelink profile generation.
- Gray scale virtual profiles
- Linearization virtual device link profiles
- New ICCLINK and ICC2PS utilities
- SWIG wrapper. This enables lcms from Python.
- Floating-point formats are now accepted as well.
- More ICC 4.0 compatibility. Some 4.0 profiles are now are fully understood
(still experimental)
- Profiles can now be saved to memory (thanks to Steven Greaves for providing
the code)
- Char Target data are now handled. Some profiles does store the data
profiler has used. This is all information needed to rebuild the profile
from scratch.
- New low-resolution flag cmsFLAGS_LOWRESPRECALC to save memory.
- User-defined encodings are now supported.
- cmsChangeBuffersFormat() to change the encoding of buffers on runtime
allows reuse of existing transforms.
- Gamma estimation routines cmsEstimateGamma() and cmsEstimateGammaEx()
- multilocalized unicode is now supported. Language and codepage is
selected via cmsSetLanguage() (ICC 4.0 only)
- LUT handling has been enhanced with enumerators. (SAMPLER_INSPECT)
- Improved TIFFICC, JPEGICC and ICCTRANS utilities.
- cmsOpenProfileFromMem() no longer creates temporary files.
- Transforms does accept now a maximum of 8 channels on input and 16 on
output. (last version did accept 6 on input)
- 8 <-> 16 bits per sample are now always computed accurately.
- Some minor bugs fixed
buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.