[MacPorts] #51287: Inkscape crashes on startup if enchant is installed with +applespell
MacPorts
noreply at macports.org
Tue May 3 12:39:42 PDT 2016
#51287: Inkscape crashes on startup if enchant is installed with +applespell
-------------------------------+----------------------
Reporter: jo.vanoost@… | Owner: devans@…
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: inkscape enchant |
-------------------------------+----------------------
Comment (by devans@…):
Replying to [comment:6 raimue@…]:
> Thank you for the analysis, David.
>
> The idea of switching to enchant +applespell as default was meant to
reduce the setup overhead for new users. As spell checking in the system
is already configured for local language, users do not need to install
extra dictionaries. Also, suggestions and custom additions would be
adopted automatically.
>
> It is interesting to see it actually crashes inside the call for
[[https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSSpellChecker_Class/#//apple_ref/occ/clm/NSSpellChecker/sharedSpellChecker|'[NSSpellChecker
sharedSpellChecker]']], which is provided by AppKit.framework. I don't
think we have any more influence on the underlying libraries. This crash
might even be specific to OS X 10.8.
>
> To add some data point, I cannot reproduce this crash on OS X 10.10.5
Yosemite:
> {{{
> $ port -q installed enchant inkscape
> enchant @1.6.0_4+applespell (active)
> inkscape @0.91_14+strict+x11 (active)
> }}}
Same here so it appears to be OS X version dependent. I can check 10.8+
but not earlier.
>
> For the inkscape issue, it looks like inkscape picks up aspell on build
time opportunistically without declaring a dependency. This functionality
should be disabled or the explicit dependency must be added.
Agreed. The current dependencies were based on the expectation that
enchant would configure with aspell by default (as it used to). The
problem is that inkscape does the spellchecking in two pieces. It uses
gtkspell -> enchant to transparently check spelling and underline spelling
errors on the contents the text widget used to display a text object but
then accesses aspell directly (not via enchant) to find suggested
spellings, add to the dictionary, etc. Basically everything that is done
in the spell checking dialog in the side pane. So for things to work
consistently, enchant needs to be configured with aspell. Not great.
In addition, during configuration they use the presence of aspell to
indicate that the spell checking item should be enabled in the text menu
but use an independent check for gtkspell to enable its use in the text
widget. So it will try to use gtkspell even if aspell isn't available.
A few things to think about upstream.
I can use require_active_variants to mandate enchant +aspell but that will
break the default build on the buildbots if enchant isn't configured with
aspell by default. As the port description says, enchant was originally
designed to use an aspell-like API. I believe this is generally the
default on most Linux platforms.
If applespell didn't break on 10.8, I'd suggest enchant +applespell
+aspell by default.
--
Ticket URL: <https://trac.macports.org/ticket/51287#comment:7>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list