Warnings after macport installation on Mac OS X

Bug #995561 reported by David Alessio on 2012-05-06
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Inkscape
Undecided
Unassigned

Bug Description

Hello,

I'd like to document the following warnings I saw on Mac OS X 10.7, Inkscape Inkscape 0.48.3.1 r9886, installed via mac port; and what I did to 'fix' them:

1) Recently Used warning:

(inkscape:32771): Gtk-WARNING **: Attempting to set the permissions of `/Users/dsa/.local/share/recently-used.xbel', but failed: No such file or directory

Solution:
    mkdir -p ~/.local/share

2) ICC profile not found Error:

** Message: lcms: Error 12288; File '/usr/share/color/icc/GRACoL2006_Coated1_GCR_bas.icc' not found

(inkscape:32933): Gtk-CRITICAL **: gtk_widget_get_visible: assertion `GTK_IS_WIDGET (widget)' failed
** Message: lcms: Error 12288; File '/usr/share/color/icc/GRACoL2006_Coated1_GCR_bas.icc' not found

Solution:

i) Download GRACoL2006_Coated1_GCR_bas.icc
ii) sudo mv Downloads/GRACoL2006_Coated1_GCR_bas.icc /Library/ColorSync/Profiles/
iii) sudo mkdir -p /usr/share/color
iv) sudo ln -s /Library/ColorSync/Profiles /usr/share/color/icc

3) Where to install Type 1 Fonts:
This is not an Error/Warning but rather a note.

Type 1 fonts for Inkscape can be installed to:
/opt/local/share/fonts/type1/MY-TYPE1-FONT-DIR/
a directory containing the AFM, INF, PFB, and PFM files.

Thank you for an AWESOME application and superb port to Mac OS X,
-david

su_v (suv-lp) wrote :

> 1) Recently Used warning:

> (inkscape:32771): Gtk-WARNING **: Attempting to set the permissions
> of `/Users/dsa/.local/share/recently-used.xbel', but failed: No such file or directory

Not really an inkscape bug: upstream Gtk+ decided some versions ago to no longer check whether '~/.local/share' exists before attempting to create 'recently-used.xbel' there (IIRC it happened with the change of location from '~/.recently-used.xbel' to '~/.local/share/recently-used.xbel' - a file share by all Gtk2 applications).

See for example upstream report
"671817 - GTK+ doesn't create ~/.local/share (path) and ~/.local/share/recently-used.xbel"
<https://bugzilla.gnome.org/show_bug.cgi?id=671817>

> 2) ICC profile not found Error:

At what point did Inkscape ask for this color profile?

Note: with a default installation, default new preferences and a new document based on the default template, inkscape does not load a specific ICC profile, nor prompt for a missing one. You either have migrated the preferences from a system with this profile installed, or maybe are working with SVG files created on a different system which have this profile linked to (in 'Document Properties > Color management').

Could you provide more background information under which circumstances you got prompted with this error message?

> iii) sudo mkdir -p /usr/share/color
> iv) sudo ln -s /Library/ColorSync/Profiles /usr/share/color/icc

Note: on systems where I regularly test Inkscape built via MacPorts (Mac OS X 10.5.8, OS X 10.7.3), I never encountered this error message, and don't have any profiles installed or linked to '/usr/share/color' either:

$ ls -al /usr/share/color
ls: /usr/share/color: No such file or directory

> 3) Where to install Type 1 Fonts:

Maybe you'd better file a trac ticket for MacPorts requesting to add a note displayed when installing Inkscape (the MacPorts port of Inkscape is not maintained by the Inkscape project).

ISTM that this is a question about fontconfig - not specific to Inkscape: you can add additional font directories with a user font configuration file ('~/.fonts.conf') or add them in the 'system' font configuration of MacPorts (/opt/local/etc/fonts) with a 'local.conf' file.

AFAICT none of these reported "issues" are actually Inkscape bugs -> proposing to close as 'Invalid' for Inkscape.

tags: removed: installation mac os
Download full text (5.1 KiB)

On May 6, 2012, at 11:02 AM, ~suv wrote:

>> 1) Recently Used warning:
>
>> (inkscape:32771): Gtk-WARNING **: Attempting to set the permissions
>> of `/Users/dsa/.local/share/recently-used.xbel', but failed: No such file or directory
>
> Not really an inkscape bug: upstream Gtk+ decided some versions ago to
> no longer check whether '~/.local/share' exists before attempting to
> create 'recently-used.xbel' there (IIRC it happened with the change of
> location from '~/.recently-used.xbel' to '~/.local/share/recently-
> used.xbel' - a file share by all Gtk2 applications).

Arrgh. someone has to create it, either Gtk or app. If Gtk is unwilling to revisit their decision, the responsibility of creating the dir then falls to to the app (Inkscape). Am I wrong?

>
> See for example upstream report
> "671817 - GTK+ doesn't create ~/.local/share (path) and ~/.local/share/recently-used.xbel"
> <https://bugzilla.gnome.org/show_bug.cgi?id=671817>
>
>> 2) ICC profile not found Error:
>
> At what point did Inkscape ask for this color profile?
When I loaded a file created in Inkscape on Linux (Xubuntu 11.10).

>
> Note: with a default installation, default new preferences and a new
> document based on the default template, inkscape does not load a
> specific ICC profile, nor prompt for a missing one. You either have
> migrated the preferences from a system with this profile installed, or
> maybe are working with SVG files created on a different system which
> have this profile linked to (in 'Document Properties > Color
> management').
>
> Could you provide more background information under which circumstances
> you got prompted with this error message?

OK, it's in the .svgz file:
   name="GRACoL2006_Coated1_GCR_bas.icc"
   xlink:href="/usr/share/color/icc/GRACoL2006_Coated1_GCR_bas.icc"
where the full path is hard-coded.

It'd be nice if Inkscape could devise a platform-independant file structure where the default system paths are checked for "system files" like ICC profiles, etc. The objective would be to make a truly portable drawing file (i.e. JPEGs and PNGs just work anywhere).

>
>> iii) sudo mkdir -p /usr/share/color
>> iv) sudo ln -s /Library/ColorSync/Profiles /usr/share/color/icc
>
> Note: on systems where I regularly test Inkscape built via MacPorts (Mac
> OS X 10.5.8, OS X 10.7.3), I never encountered this error message, and
> don't have any profiles installed or linked to '/usr/share/color'
> either:
>
> $ ls -al /usr/share/color
> ls: /usr/share/color: No such file or directory
>
>> 3) Where to install Type 1 Fonts:
>
> Maybe you'd better file a trac ticket for MacPorts requesting to add a
> note displayed when installing Inkscape (the MacPorts port of Inkscape
> is not maintained by the Inkscape project).
>
> ISTM that this is a question about fontconfig - not specific to
> Inkscape: you can add additional font directories with a user font
> configuration file ('~/.fonts.conf') or add them in the 'system' font
> configuration of MacPorts (/opt/local/etc/fonts) with a 'local.conf'
> file.

Quite right.

>
>
> AFAICT none of these reported "issues" are actually Inkscape bugs -> proposing to close as 'Invalid' for Inkscape.

...

Read more...

su_v (suv-lp) wrote :

>>> 1) Recently Used warning:
>>
>>> (inkscape:32771): Gtk-WARNING **: Attempting to set the permissions
>>> of `/Users/dsa/.local/share/recently-used.xbel', but failed: No such file or directory
>>
>> Not really an inkscape bug: upstream Gtk+ decided some versions ago to
>> no longer check whether '~/.local/share' exists before attempting to
>> create 'recently-used.xbel' there (IIRC it happened with the change of
>> location from '~/.recently-used.xbel' to '~/.local/share/recently-
>> used.xbel' - a file share by all Gtk2 applications).
>
> Arrgh. someone has to create it, either Gtk or app. If Gtk is unwilling
> to revisit their decision, the responsibility of creating the dir then
> falls to to the app (Inkscape). Am I wrong?

IMHO though it's up to Gtk+ to fix this in the GtkRecentManager component (instead of patching various Gtk+ applications to work around this upstream bug):

A) Application-specific files
Applications which store application-specific files in '$XDG_DATA_HOME/foo' check whether the directory 'foo' exists, and create it if needed - including intermediate directories as required (confirmed examples are GIMP/Gegl, Geeqie, Diffuse)

GIMP 2.8 (as well as 2.6) for example is not affected because of Gegl creating '.local/share/gegl-0.2/plug-ins/Makefile' on first launch (even before a new entry for recently-used.xbel is created).

Inkscape does not store application-specific files in $XDG_DATA_HOME, and therefor does not create if not present.

B) Shared files
'recently-used.xbel' is not an application-specific file - it is managed by Gtk+ (or one of its components), and stores data for all Gtk+ applications which make use of 'GtkRecentManager'.

Other Gtk2 applications installed via MacPorts (or locally from source) produce the same error messages like Inkscape after renaming '~/.local': confirmed for Evince, Gedit, Gnumeric, SynfigStudio, MyPaint, KeepNote, Xournal, and there are probably lots of others out there.

su_v (suv-lp) wrote :

>> Could you provide more background information under which circumstances
>> you got prompted with this error message?
>
> OK, it's in the .svgz file:
> name="GRACoL2006_Coated1_GCR_bas.icc"
> xlink:href="/usr/share/color/icc/GRACoL2006_Coated1_GCR_bas.icc"
> where the full path is hard-coded.
>
> It'd be nice if Inkscape could devise a platform-independant file
> structure where the default system paths are checked for "system files"
> like ICC profiles, etc. The objective would be to make a truly portable
> drawing file (i.e. JPEGs and PNGs just work anywhere).

Keep in mind that the notation of the link to the external resource (ICC profile) is based in SVG specification:
<http://www.w3.org/TR/SVG11/color.html#ColorProfileProperty>

A "relative" path in the xlink:href property would resolve to the current directory of the SVG file. An "absolute" IRI refers to a specific resource file e.g. in the local file system.

Inkscape's roadmap is to fully implement the SVG specification - parsing the available ICC profile information (abs path + file name) differently from other SVG renderers (and load an arbitrary profile which happens to have the same file name, from one of the known locations of color profiles on the current system) might not be desirable (no need to repeat the 'Flowed Text' experience).

I would recommend to file a separate feature request for support of the attribute 'local' of <color-profile>, as described in the SVG 1.1 specification (AFAICT this aims to implement such a 'platform-independant' load mechanism based on locally installed profiles):
«The unique ID for a locally stored color profile. <string> is the profile's unique ID as specified by International Color Consortium. If both the ‘xlink:href’ and the ‘local’ attributes are specified, then the user agent shall search the local system for the locally stored color profile first, and, if not available locally, then attempt to use the resource identified by the ‘xlink:href’ attribute. (Note: Profile description fields do not represent a profile's unique ID. With current ICC proposals, the profile's unique ID is an MD5-encoded value within the profile header.)»
<http://www.w3.org/TR/SVG11/color.html#ColorProfileElementLocalAttribute>

Note: I did not take the time to search for information details about planned enhancements for color management in SVG 2.0:
<http://www.w3.org/Graphics/SVG/WG/wiki/Roadmap>

<off-topic>
Please do not mix several unrelated issues in a single report: this makes it unnecessarily difficult to properly triage and track progress for each confirmed item, and tends to leave open reports linger in the bug tracker because it has not been determined and rechecked whether all mentioned items have been addressed).
</off-topic>

su_v (suv-lp) wrote :

Closing as 'Invalid' for Inkscape (see comments #1 und #3).

The feature request - do not link color profiles based on absolute path names, instead implement a platform-independant method to load profiles from known local locations based on a unique identifier for the profile - should be filed separately (see comment #4).

Changed in inkscape:
status: New → Invalid
su_v (suv-lp) wrote :

> 1) Recently Used warning:
>
> (inkscape:32771): Gtk-WARNING **: Attempting to set the permissions of
> `/Users/dsa/.local/share/recently-used.xbel', but failed: No such file
> or directory

JFTR: The upstream bug in GTK+ has been acknowledged and fixed (in git master):
<https://bugzilla.gnome.org/show_bug.cgi?id=671817>
<http://git.gnome.org/browse/gtk+/commit/?id=3d7a2d788312c10c1e953cf6af794a1cc3c71e18>

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.