Migrate OS X port of Inkscape to lcms2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
Color management in current trunk builds on OS X 10.7.4 (Xcode 4.3.2, MacPorts 2.1.1) is broken ever since libffi in MacPorts was upgraded to 3.0.11. This affects two independent build setups equally (one MacPorts tree with custom ${prefix} used for GTK+/X11, one for GTK+/Quartz).
$ port installed libffi
The following ports are currently installed:
libffi @3.0.10_2
libffi @3.0.11_0 (active)
$ port installed lcms*
The following ports are currently installed:
lcms @1.19_2
lcms @1.19_3+
lcms2 @2.2_0
lcms2 @2.3_0
lcms2 @2.3_1+
$ pkg-config --modversion lcms
1.19
$ pkg-config --modversion lcms2
2.3
$
Inkscape trunk links to both lcms and lcms2 (lcms2 pulled in via ImageMagick):
$ otool -L /Volumes/
/Volumes/
/Volumes/
$ otool -L /Volumes/
/Volumes/
/Volumes/
/Volumes/
$
As mentioned in related bug #682357, Inkscape "randomly" uses functions from either of the two linked lcms library versions (if ImageMagick was detected by configure). After the upgrade of libffi to 3.0.11, this triggers issues like
- unable to read profile info from installed ICC profiles (affects preferences for soft proofing as well as linking of color profiles into documents: the profile selectors in the preferences pane are empty, in the document properties it lists all available profiles with the generic label '{no name}')
- crashes when using the CMS tab in 'Fill and Stroke' (both with old files which use the correct profile name and new files which use the string '-no-name-' for the name of the linked color profile)
and probably others I simply haven't detected in my initial tests. I never experienced such issues with stable builds (they do not link directly to libffi, nor to both versions of lcms), and earlier trunk builds (linking to the previous version of libffi).
Steps to reproduce the crash:
1) open attached SVG file in current trunk build on 64bit OS X
2) select the rectangle
3) open 'Fill & Stroke'
--> crash
The attached backtrace (both lcms versions had been installed with debug symbols)
indicates that the crash in
> cmsSetAlarmCodes (NewAlarm=0xff) at cmsxform.c:56
> 56 Alarm[i] = NewAlarm[i];
is happening in lcms2, despite the configure magic to disable lcms2 on Mac OS X:
a) cmsxform.c:56 in lcms v1.19
<http://
b) cmsxform.c:56 in lcms2 v 2.3
<http://
or
<https:/
Only workaround I'm aware of at the moment:
use the patch from bug #682357 and configure Inkscape without ImageMagick++
(not really an acceptable solution IMHO)
Related branches
no longer affects: | inkscape/0.91.x |
Changed in inkscape: | |
status: | Fix Committed → Fix Released |
no longer affects: | inkscape/experimental |
Note: link to color profile uses hardcoded absolute path to DATA_HOME/ color/icc/ Fogra27L. icm
$XDG_
Please adjust as needed for testing on other systems.